Closed5
バッチ処理に最適なAWSサービスを選定する
開発のしやすさ
コスト
サービスクォータ
の面から選定する
Lambda
Batch
ECS Task
EC2
がまず考えられるサービス
- 開発のしやすさ
- 学習コスト
- ローカルでの開発
- コスト
- 従量課金
- RI
- 保守運用
学習コスト
Lambda
- 列挙しているサービスの中で最も学習コストが低い
- サーバレスなのでサーバを意識する必要がなく、コードをアップロードするだけで簡単に実行ができる
- ベストプラクティスやクォータは注意すべきだが、それを除けば開発は楽に感じる
ECS Task
- Fargateを使用すればサーバ管理が不要になり、意識する必要がなくなる
- コンテナ(Docker)の知識が必要
- ECSのサービスやタスク定義に関する学習が必要
- Lambdaよりはコストがかかる
AWS Batch
- Fargateを使用することができる。サーバを意識する必要がなくなる
- AWS BatchはECSを利用しているため、ECS Taskと同様の学習が必要
Q: Amazon ECS Agent とは何ですか? また、AWS Batch ではどのように使用されますか?
AWS Batch では、コンテナジョブを実行するために Amazon ECS を使用します。そのため、ECS Agent
を利用する AWS Batch コンピューティング環境内のコンピューティングリソースにインストールする必要
があります。ECS Agent は、Managed Compute Environments にはプレインストールされています。 - AWS Batchに関する学習も別途必要(ジョブなど)
- Batchの機能だけではなくECSのも必要であるため、ECSより学習コストが高い
EC2
- 上記サービスと異なり、サーバレスではないため、EC2に関する知識が必要(OSコマンド、設定、インスタンスタイプとか)
- 負荷分散、同時実行制御などをする場合、ELB、QSQなど別サービスを学習する必要がある。
- 上記サービス特有の機能は学習する必要ない
- LambdaやECSよりはコスト高に感じる。
以上から
Lambda < ECS Task < EC2 < AWS Batch
の順に学習コストが高いと判断した。
このスクラップは2021/12/04にクローズされました