Amazon ECS 起動タイプ
タスク定義の起動タイプは、タスクを実行できる容量を定義します。例: AWS Fargate
起動タイプを選択すると、Amazon ECS は、設定したタスク定義パラメータが起動タイプで機能することを確認します。
Fargate
Fargate はサーバーレスの従量制料金計算エンジンであり、サーバーを管理することなく、アプリケーションの構築に集中できます。Fargate を選択する場合、EC2 インフラストラクチャを管理する必要はありません。必要なのは、コンテナイメージを構築し、アプリケーションを実行するクラスターを定義することだけです。Fargate は、次のような AWS サービスとネイティブに統合されています。
-
Amazon VPC
-
Auto Scaling
-
Elastic Load Balancing
-
IAM
-
Secrets Manager
アプリケーションが必要とする正確な CPU とメモリを選択できるため、ユーザーは EC2 よりも Fargate でより多くの制御を行えます。Fargate が容量のスケールアウトを処理するため、トラフィックの急増を心配する必要はありません。つまり、Fargate では運用上の労力が少なくて済みます。
Fargate は、PCI、FIPS 140-2、FedRAMP、HIPAA などのコンプライアンスプログラムの基準を満たしています。詳細については、「コンプライアンスプログラムによる対象 AWS サービス
Fargate は、次のワークロードに適しています:
-
運用上で低いオーバーヘッドを必要とする大規模なワークロード
-
時折バーストが発生する小さなワークロード
-
小さなワークロード
-
バッチワークロード
Fargate をサポートするリージョンの情報については、「AWS Fargate で使用する Amazon ECS でサポートされているリージョン」 を参照してください。
次の図に、一般的なアーキテクチャを示します。
Fargate の Amazon ECS の詳細については、「Amazon ECS の AWS Fargate」を参照してください。
EC2
EC2 起動タイプは、料金を最適化する必要がある大規模なワークロードに適しています。
EC2 起動タイプを使用してタスク定義とサービスをモデル化する方法を検討する際には、一緒に実行する必要があるプロセスはどれか、また、各コンポーネントをどのようにスケーリングするかについて検討することをお勧めします。
例えば、以下のコンポーネントで構成されるアプリケーションがあるとします。
-
ウェブページに情報を表示するフロントエンドサービス
-
フロントエンドサービスに API を提供するバックエンドサービス
-
データストア
この例では、共通の目的で使用されるコンテナをまとめてグループ化するタスク定義を作成します。異なるコンポーネントは、複数の個別なタスク定義に分割します。以下の例のクラスターでは、3 つのコンテナインスタンスにより、3 つのフロントエンドサービスコンテナ、2 つのバックエンドサービスコンテナ、さらに 1 つのデータストアサービスコンテナを実行しています。
一緒に実行する必要のあるリンクされたコンテナなど、関連するコンテナをタスク定義にグループ化できます。例えば、フロントエンドサービスに追加するログストリーミングコンテナは、同じタスク定義に含めることができます。
タスク定義を作成したら、それらの定義からサービスを作成して、使用可能なタスクの必要数を維持できます。詳細については、「コンソールを使用した Amazon ECS サービスの作成」を参照してください。サービスでは、コンテナを Elastic Load Balancing ロードバランサーに関連付けることができます。詳細については、「ロードバランサーを使用して Amazon ECS サービストラフィックを分散する」を参照してください。アプリケーションの要件が変更された際には、サービスを更新してタスクの必要数を増減できます。あるいは、サービスを更新して、タスクに新しいバージョンのコンテナをデプロイすることも可能です。詳細については、「コンソールを使用した Amazon ECS サービスの更新」を参照してください。
外部
External 起動タイプは、コンテナ化されたアプリケーションを Amazon ECS クラスターに登録してリモートで管理するオンプレミスサーバーまたは仮想マシン(VM)で実行するために使用されます。詳細については、「外部起動タイプ用の Amazon ECS クラスター」を参照してください。