Closed5

バッチ処理に最適なAWSサービスを選定する

kenryokenryo

Lambda
Batch
ECS Task
EC2
がまず考えられるサービス

kenryokenryo
  • 開発のしやすさ
    • 学習コスト
    • ローカルでの開発
  • コスト
    • 従量課金
    • RI
    • 保守運用
kenryokenryo

学習コスト

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にクローズされました