はじめに
AWS Elastic Container Service (ECS)は、Docker コンテナを簡単に実行できるようにするためのフルマネージド型のコンテナオーケストレーションサービスです。ここでは、ECSをEC2インスタンスと一緒に使用する方法を紹介します。特に、Fargateとは異なり、EC2を使用する場合はEC2インスタンスをECSに登録する必要があります。本記事ではその登録手順を記載しいます。
IAMロール作成
まず始めに、任意のIAMロールを作成し、以下の2つのポリシーをアタッチします。
- AmazonEC2ContainerServiceforEC2Role
- AmazonSSMFullAccess
※EC2インスタンスにセッションマネージャーで接続したくAmazonSSMFullAccessを設定しています。
EC2インスタンスの作成
Amazon ECS最適化 AMIを使用して、EC2インスタンスを作成します。
最新のAMIの設定
以下のコマンドをCloudShell等で実行して、最新のAMIを取得します。ここでは、x86_64アーキテクチャのみをフィルタリングしています。
aws ec2 describe-images --owners amazon --filters "Name=name,Values=amzn2-ami-ecs-hvm-*" "Name=architecture,Values=x86_64" --query 'reverse(sort_by(Images, &CreationDate))[0].ImageId' --output text --region ap-northeast-1
IAMロールの設定
先ほど作成したIAMロールをEC2インスタンスに紐付けます。
ユーザーデータの設定
EC2インスタンスが起動時にECSクラスターに自動的に登録されるように、ユーザーデータを設定します。
/etc/ecs/ecs.config
#!/bin/bash
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
以上の設定を行った上で、EC2インスタンスを起動します。
参考URL