[AWS] Architecture Patterns - Containers and PaaS
Company plans to deploy Docker containers on AWS at lowest cost?
Use ECS with a clsuter of SPot instances and enable Spot instance draining.
Company plans to migrate Dokcer containers to AWS and does not want to manage operating system?
Migrate to ECS using the Fargate launch type
Fargate task is launched in a private subnet and fails with error "CannotPullContainer"?
Disable auto-assignment of public IP addresses and configure a NAT gateway.
Application will be deployed on ECS and must scale based on memory?
Use service auto-scaling and use the memory utilization. (For EC2, otherwise, you need to use CloudWatch Agent to collect custom mertic, but EC2 has memory utilization metric)
Application will run on ECS tasks across multiple hosts and needs access to an S3 bucket?
Use a task execution IAM role to provide permissions to S3 bucket.
Company requires standard Docker container automation and management service to be used across multiple environments?
For multiple environments, Deploy Amazon EKS.
Company needs to move many simple web apps running on PHP, Java and Rudby to AWS. Utilization is very low?
Deploy to single instance Elastic Beanstalk environments.
Business critical application running on Elastic Beanstalk must be updated. Requrie zero downtime and quick and complete rollback?
Update using an immutable update with a new ASG and swap traffic.
A development application running on Elastic Beanstalk needs a cost-effective and quick update. Downtime is acceptable?
Use an all-at-once update.
Need a managed environmnet for running a simple web application. App processes incoming data which can take several minutes per task?
Use an Elastic Beanstalk environment with a web server for the app front-end and a decoupled SQS tier for the long running process.