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).