My first experience with getting a website up and running was probably about 12 years ago. At that time I went to Godaddy bought a shared hosting account and got my PHP site setup there. Over the next couple years you started to hear about the "Cloud" and how it was a magical place where you could move your servers to. I didn't really have a need or desire to do anything with the cloud, so I ignored it for quite a while. Shared hosting worked ok and VPS with places like Godaddy or Hostgator or other hosting options at the time were super expensive.
Around 2013 I heard about a new service called Digital Ocean that was a new super cheap way of getting your own VPS. Digital Ocean even had a cost per minute to run servers, so I figured I would give it a try, spin up a server for a few pennies and shut it down. So I spun up a Ubuntu Server server and realized it was actually worth $5 / month to keep it running. So I setup my server with Apache2, PHP and MySQL and started to migrate all my sites from GoDaddy to my own server. Eventually I was able to get all my sites moved and then transferred all my domain registration to Namecheap.com. I was so happy to finally be free of GoDaddy completely, over the years their service degraded in my opinion. Eventually I hosted a few sites for friends and family and had to upgrade from a $5 / month server to a $10 / month server to get some more memory for the database.
Around 2015 I started working for a company that had their entire infrastructure setup in AWS. At first AWS felt very clunky to me, they had way more options than just virtual private servers, the dashboard alone was enough to intimidate anyone and it has only gotten worse over the years. However, over the next few years I started to get comfortable with AWS and started to love all the configuration options and the additional security. I started using quite a few of the service AWS offered including EC2, S3, RDS, Elastic Beanstalk, Cloudwatch, Cloudfront and more.
So what are the differences between the two? Well 5 years ago the differences were huge. Digital Ocean gave you a server and nothing more. So basically it was a low level EC2 option. However, EC2 gave you options like backups, firewalls, elastic IPs, etc... However over the last 5 years Digital Ocean continues to add more features. First I remember them adding an option to automatically backup your server, then I remember them adding Floating IPs which were like Elastic IPs with AWS. Next they added Networking options like firewalls and load balancers. Then they started adding more services like Spaces which is object storage like S3, and Kubernetes. At this point the one thing I thought Digitial Ocean really needed that I loved about AWS was a competitor to RDS, a managed database option. Sure enough Digital Ocean now offers that option also.
So which would I use? Well at this point both services are great options. AWS still has way more services and options than Digital Ocean. However, I feel like Digital Ocean has got to the point where it is a viable option to get a full scale web app up and running and scale to a very large size. AWS still has the edge though with a lot of enterprise level options, like user access management for teams, pre-built options like elastic beanstalk that combine services like EC2, Load Balancing, and Cloudwatch together. I actually have a personal servers running on both services and probably 5-10 sites running on each server. Not sure if I will ever fully migrate to AWS or not, it is kind of nice to have two options.