業務でAWSを使う機会が多くなってきたことで、色々なリソースの経験値が溜まってきたと感じる今日この頃。
使用したことがあるリソースは以下。
・S3
・EventBridge
・Lambda
・EC2(Fargate)
・ECS/ECR
・SES(メール)
この中で特にEC2(Fargate)は初めてだったので勉強になった。
AWS Fargateは、Amazon Web Services(AWS)が提供するサーバーレスなコンテナ実行環境です。
コンテナを実行するために、自分でEC2インスタンス(仮想サーバー)を管理する必要がありません。
Fargate は、以下の2つのコンテナオーケストレーションサービスと一緒に使います:
Amazon ECS(Elastic Container Service)
Amazon EKS(Elastic Kubernetes Service)
これらで定義したタスクやポッドを、Fargateが自動的に適切なコンピューティングリソースに割り当てて実行してくれます。
マイクロサービスアーキテクチャ
定期実行バッチ
開発・テスト環境(素早く立ち上げ・破棄できる)
サーバー管理を最小限にしたいとき
高速なストレージアクセスが必要なアプリ
特殊なハードウェア設定が必要なケース
コストを極限まで抑えたい大規模処理(長時間稼働など)
Docker イメージを作成し、ECR(Elastic Container Registry)にアップロード
ECS クラスターを作成
タスク定義(使用するDockerイメージ、CPU・メモリなど)を作成
サービス定義(オートスケーリング、ロードバランサー連携など)
Fargate を選択してデプロイ
サービス | 管理の柔軟性 | スケーリング | コスト管理 | 学習コスト |
---|---|---|---|---|
EC2 + ECS/EKS | 高い | 手動〜自動 | 安価〜中程度 | やや高い |
Fargate | ほぼ不要 | 自動 | 中〜高 | 低い |
Lambda(関数型) | 不要 | 自動 | 安価 | 低い(用途が限定的) |