SimpleLogin is a startup working on open-source products to protect users’ online privacy. Our main product is an email alias service that allows you to use an “email alias” instead of your personal email address. All emails sent to an alias will be forwarded to your personal inbox. You can also send emails from an alias, making aliases to function like normal addresses for email delivery.
As a French startup, we initially chose the AWS Paris data centre. The choice was largely due to the proximity and our belief that working with a large provider such as AWS would save us time and effort. As it turns out, this could not have been further from the truth. We ended up spending way too much time and effort to have our EC2 instances handle email delivery correctly:
- Setting up PTR (or rDNS) record on AWS is only achievable via a request ticket and requires several exchanges. In comparison, on UpCloud this could be done directly on the dashboard.
- AWS Elastic IP addresses have a bad reputation. After attempts to whitelist our IPs, we tested other data centres hoping for better results. Unfortunately, all Elastic IPs we tried were blacklisted by several email providers.
- On top of all, AWS suddenly decided to block our port 25 claiming our email server had become an open relay which was simply not the case.
Of course, we could have created removal requests to the blacklist maintainers for these IPs but such tasks are a continuous time-waster. By our experience, AWS doesn’t have in place a good enough mechanism to stop spammers from using their Elastic IPs, leading to their bad network reputation.
Finding a new provider
Because of the earlier difficulties, we decide it’s maybe better to just manage the cloud servers ourself. UpCloud was our first choice due to several reasons:
- They came highly recommended by our friend who has more than 100 cloud servers on UpCloud and he seems to be pretty happy with their quality & support.
- The cloud servers are not throttled and able to achieve full performance.
- Port 25 is not open by default and unlocking it requires a careful examination which helps to maintain the network reputation.
We decided to move our infrastructure from AWS to UpCloud, starting with our staging environment. The hardest part was to replace the Relational Database Service (RDS), the managed database service we had used on AWS. We decided to take on managing our database ourself using Docker along with some monitoring and backup scripts. Other components were easy to move as they were already based on Docker.
After extensively testing the staging environment we took the plunge to migrate the rest of our cloud environment. Our entire infrastructure is now running on UpCloud. Despite our cautious expectations that the migration would be a rough journey, in the end, the move was smooth and downtime less than 10 minutes. After deploying all components on UpCloud, the longest step was actually just waiting for the DNS changes to propagate.
Now our service has run on UpCloud for some time and our users report having much better success with email delivery. Time will tell, but so far we are pretty happy with UpCloud.