AWS Services - DevOpsCloud2024/DevOpsCloud GitHub Wiki
Essential
Deploying Docker containers
We have 3 options:
- ECS (Elastic Container Service): Container orchestration platform that integrates well with other AWS services.
- EKS (Elastic Kubernetes Service): Based on Kubernetes. Worse integration with other AWS services. This is probably overkill, and quite difficult without Kubernetes experience.
- Fargate: Serverless. You give up some control, but have to do minimal server management. More expensive than ECS.
Hosting database
This is relatively simple with RDS (Relational Database Service).
Storing documents
An S3 bucket is the best option. It integrates well with Laravel.
Security measures
For example, there must be an upload limit for users. We can configure such rules with IAM (Identity and Access Management).
Optional
Sending emails
For sending emails when a user forgets their password or when the admin should be notified of an event, we can use SES (Simple Email Service). Laravel has integration for SES.
Notifications
We can use SNS (Simple Notification Service) to send notifications to the admin.
Improved content delivery
CloudFront is a service for content delivery that might improve the delivery of documents.
Search engine
If we only search on courses and labels, we probably do not need this, but if we want a more enhanced search engine that can search in the content of documents, we can use Elasticsearch (Amazon OpenSearch Service).