I am trying to learn different options to deploy a website/APIs using AWS. I am planning to use FastAPI going forward to create new APIs. I have some experience with Spring Boot. I like to write in Go as well. But, at this point, my focus is on FastAPI.
I like to go with:
- Python & FastAPI
- Docker
- Kubernetes (EKS)
- GitHub Actions
Options I am going to explore
- Static website using S3
- Python, FastAPI, Uvicorn, Guricorn, EC2, Route53, Let's Encrypt (For TLS certificate)
- Docker, ECS Fargate, ALB, ACM, Route53, ACM
- Docker, ECS using EC2 Instances, ALB, ACM, Route53
- Docker, EKS, ACM, Route53
- API Gateway, Lambda
1. Static website using S3
My website https://ryandam.net is hosted on S3. It is also using CloudFront.
2. ECS Fargate
I followed this course https://testdriven.io/courses/scalable-fastapi-aws/ to learn CI/CD using GitLab, Terraform.
3. ECS + EC2 Instances
4. Running a web server on EC2
- This time I will not use Docker images.
- I will directly run the code on EC2
- Python, FastAPI, Uvicorn, EC2, Route53
- Deployment script - https://ryandam.net/blog/1900/01/01/deploy-https-api-on-ec2/index.html
Top comments (0)