Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Frontend applications

    • S3

    • ECS

    • Cloudfront

    • VMs (EC2)

    • EKS

  • Backend applications

    • ECS

    • VM

    • EKS

    • Lambda

    • Lightsail / Elastic Beanstalk

  • Backend applications - non public accessible

    • Just like the BE list above

With this list, we went through a process of elimination to remove products that we thought are not suitable or not possible due to the time constraints or skills within the team. With that in mind, the following was removed for the following reasons:

  • Cloud front: requires a backing service to initially serve the content

  • VM’s: the current solution, requires too much moving parts and requires a lot of time and management

  • EKS: managed kubernetes cluster, although good we don’t have to skills in the team. It’s also possible “overkill” for the service we provide

  • LightSail/Elastic Beanstalk: to simplistic for our needs, would be a good usecase for basic landing page like products

So that leaves us with: S3 + ECS for the frontend and ECS + Lambda for the backend. We don’t know what is the best choice for each type so spikes will be created to investigate each option

Infrastructure as code

Like all other forms of infrastructure, AWS is prone to configuration drift (where configuration differ’s from environment to environment) and flakey highly customised unique resources that are treated like pets (See: The history of Pets and Cattle). To circumnavigate these issues, we already use tools such as Terraform and Ansible to build and manage infrastructure as well as configure them in a uniform way.

...

There will be times where creating infrastructure as code won’t be possible as constraints such as time or knowledge may force a developer to experiment using the AWS web console. This is ok as long as the developer takes those changes/learning and brings it back into code so that other can reuse and share

Other

With all this now “down on paper” we now have some guidance of where to do next. We’ll need to do several spikes and create a large set of tickets to enable the migration to AWS