【AWS】コンピューティングサービスの選択フローチャート
AWSでアプリケーションを実行するとき、選択肢が多く何のサービスを使えば良いか迷うシーンが多々あります。
以前Azureのコンピューティングサービスを選択するときに参照したフローチャートがわかりやすかったので、AWSでも同様の選択ができるようなフローチャートを作ってみました。
誤記やより良い選択肢があればコメントいただけるとありがたいです。
Contents
選択フロー
説明
Amazon EC2
ソフトウェアライセンスによるハードウェア構成の制約がある場合や、パッケージの都合で複数のソフトウェアが同居する制約があるアプリケーションで使用します。
サーバ構成に制約があるレガシーアプリケーションの場合も同様です。
AWS Batch
実行時間が長く、大量のデータを処理したり、複数ジョブの制御が必要なバッチアプリケーションで使用します。
AWS Lambda
実行時間が短く、軽量なアプリケーションの場合に選択します。他のAWSサービスと組み合わせて、イベント駆動で実行します。
AWS Amplify Hosting
Webフレームワークが対応しているフロントエンドアプリケーションのホスティングに使用します。
エッジロケーションでサーバサイドレンダリング処理を行うアプリケーションにも最適です。
AWS App Runner
コンテナ化したアプリケーションをシンプルにホスティングしたい場合に使用します。
App Runnerのサービス仕様では要件を満たせない場合は後述のコンテナオーケストレーションの選択肢へ進みます。
Amazon ECS
Kubernetesマニフェストによるコンテナオーケストレーションが不要な場合はECSを選択します。
サービス構成が複雑で、クラスター内外通信インフラやCronJob、Jobを一元的にマニフェストで管理したい場合は後述のKubernets系サービスの選択肢に進みます。
アンマネージドKubernetes
コントロールプレーン、データプレーンともに自前で管理したい場合は、EC2インスタンス上にKubernetesクラスタを構築します。
既に別システムでKubernetesを使用している場合は、それに合わせたディストリビューションを選択します。
VMware Cloud with Tanzu Services
VMware SDDC環境の既存システムがありハイブリッド構成を組みたい場合は、VMware Cloud on AWSの機能であるVMware Cloud with Tanzu Servicesを選択します。
Red Hat OpenShift Service on AWS (ROSA)
Red Hat OpenShiftを使用した既存システムとハイブリッド構成を組みたい場合は、Red Hat OpenShift Service on AWS (ROSA) を選択します。
Amazon Elastic Kubernetes Service (EKS)
Kubernetesが必要かつ前述のどの選択肢にも当てはまらない場合は、Amazon Elastic Kubernetes Service (EKS)を選択します。
参考文献
Amazon EC2
AWS Lambda
AWS Batch
AWS App Runner
Amazon ECS
VMware Cloud on AWS
AWS での Red Hat OpenShift
Amazon Elastic Kubernetes Service (EKS)
VMware Cloud with Tanzu Services とは?
AWS Batch, Lambda, ECS Task 比較:バッチやジョブにはどれを使う?
AWS EKSとECSの比較と選択基準