AWS - how many services does it take to get a web application up and running?

It so happened that until 2020, I did not deal with clouds. When I finally delved into this topic, I got a little lost from the abundance of services offered in AWS.



It was necessary to create an application with the following features:



  • Login via facebook or google.
  • The ability to download and display media files.
  • Receiving events from the server in real time.


This article describes the services that I needed to implement the project and feel the process.

image



Application architecture



Web service



- - -. AWS Fargate Elastic Beanstalk.



Fargate



PaaS ECS EKS (EKS-Elastic Kubernetes Service, ECS-Elastic Container Service — kubernetes). — (Task), .



Elastic Beanstalk



Fargate. (EC2). -. — , . — . Elastic Beanstalk .



EC2 Fargate
t2.micro 10% $0.0134 1vCPU,1GB $0.05167 3.85
t2.medium 20% $0.0536 2vCPU,4GB $0.11356 2.12
t2.xlarge 22.5% $0.2144 4vCPU,16GB $0.268 1.25


Elastic Beanstalk — . Fargate .



Application Load Balancer



Fargate, Elastic Beanstalk . . , . Fargate Task Definition, Elastic Beanstalk Auto Scaling Group.



Application Load Balancer HTTP. HTTPS, , CloudFront, . ALB HTTP.





.



DynamoDB



NoSql . ( 10–20 ). , .



S3



. . . .



Parameters Store



. .





, , , , . , , - S3.



.



Route53



DNS AWS.



CloudFront



CDN AWS. CloudFront - S3, api- -. Http Https ( S3 bucket ).



AppSync



AppSync — — AWS Amplify. serverless- no-code-. “”, AppSync, AWS, .



Cognito



aws . User Pool c Google, Amazon, Facebook .



DevOps



.

image

IAM-Identity and Access Management.



CloudFormation, , , SDK. .



:



  • CodeCommit — git-, github.
  • CodeBuild — . ECR-Elastic Container Repository.
  • CodeDeploy — , Fargate Elastic Beanstalk.
  • CodePipeline — .


CloudWatch. , , .





, , -, 9 AWS, , — 8 .



AWS, , — , 17 !



When I started out, I didn't think I might like it. I resisted. So, for example, I coded the jwt-authentication mechanism myself, instead of using Cognito.



But I changed my mind. Still, it's nice to shrug off the burden of infrastructure code and focus on business logic. After getting a little more comfortable, I began to experience the feelings of a child in an amusement park. Each new service brings new fun. I am glad that this park has not yet been fully explored. For myself, I made a decision that I am here for a long time.




All Articles