Both of them offer Linux VMs. So, what's the difference except the pricing?
Amazon lightSail provides simple un-managed VM instances, where you can do whatever you want. Lightsail is for small developers / SME that doesn't need complex functionality.
While, EC2 is a service which provides managed VM instances with Amazon "web service interface" which allows you to manage every aspect of your VM from single point. EC2 are meant for large organisations and SME's. EC2 are more secure, robust and easily scaleable. You can manage all your EC2 instances from EC2 interface.
There is no such "web service interface" with light sail VM's they are plain linux VM's with root access.
Sébastien Portebois
Software architect at Ubisoft
Let's explain what is Lightsail by doing a recap of all you have to do with EC2 if you want a simple nodejs server exposed to the public web.
EC2 is just compute: the core of EC2 is the VM you'll get (choose a family from all the DRMCGFTPIX families, each letter is a family which is specialized in something, then choose which one of the family you want (and which generation), for instance a t2.micro. Then you need to choose your storage: EBS with SSD or magnetic storage, EFS if you have multiple instances. Then you need to choose your base image, a classic Amazon Linux AMI, or one of the thousands of available ones. Then you need to give him ssh key it will use to allow ssh in.
But before to spin up that instance, you need to setup some network to put that instance into. The easiest solution is to use the default VPC (if your account is not too old, you have a default one in each region). Check the security groups for the subnet you plan to use, allow ssh, http, https, ... |
Ok, you can now use that subnet and that security group to start that instance. Either you provided some cloudinit script to provision what has to be run for provisioning, or you ssh into your instance and do it manually because it's a one-time thing. There you install nodejs. Almost done!
Hmm, if you also want to have a clean dns name, and not just a public IP (which will change when you restart the instance) so you now go to Route53, setup some dns to that IP, or if you want to not have to deal with the changes, you first created an ELB (which might cost as much as your instance if it's a small one) and point your route53 recordset to that elb, which serves your instance.
Done!
Well almost... you haven't setup any log aggregator so your logs are only available on that instance for now (then you look into cloudwatch logs, ...)
And now you try to figure out how much this will cost every month, which is not trivial, because you have the cost of your vm, of the storage, of the traffic, ... ad as this awesome diagram show, estimating the cost of traffic in aws is complex (it's cheap, but hard to estimate!)
source: AWS open guide
You can see Lightsail as a nice UI which provides you many pre-built provisioning packages to automate some common use cases for you, and to do all that setup for you. and for a single monthly price you know before hand what will be covered (they sized it to be enough to not have any extra in common use cases).
So it's not cheaper than doing it all by yourself. But it's much easier. If all you want is a single server up and running and correctly setup, it's great.
You can see that as a Digital Ocean droplet. But within your AWS VPC (which could be awesome if you have other AWS resources, to be able to interconnect them in a secure fashion, and benefit the low-latency (and cost) for transfers
Finally, Lightsail is helpful to bootstrap, provision and easily have something up and running with a known cost.
This doesn't saves you from managing your instance.
Both with EC2 and Lightsail, you have to apply security patches or any update. Lightsail do the initial setup, but then you got a VM you have to manage.