Help us understand the problem. What is going on with this article?

ECS-CLIを使用してFargateタスクのクラスターを作成する

前提条件

・AWSアカウントをセットアップしてある
・タスク実行IAMロールを作成してある (ECSコンテナエージェントはユーザに変わってAWS APIを呼び出すのでIAMポリシーとロールが必要
・Amazon ECS CLIのインストールしてある
・AWS CLIをインストールして設定してある

クラスター設定

ECS CLIで使用するクラスター名、リージョン、リソース作成プレフィックスを定義してクラスター設定を作成します。

ecs-cli configure --cluster クラスター名 --default-launch-type FARGATE --config-name チュートリアル  --region  ap-northeast-1

クラスターとセキュリティを作成

1. ecs-cli up コマンドでECSクラスタを作成

このコマンドの出力に作成されたVPCとサブネットIDは後で使うのでメモっておく。

--vpc VPC_IDで既存のVPCを指定することができます。
その場合、そのVPC内の既存サブネットのリストを--subnetsで指定する必要があります。

ecs-cli up --capability-iam --cluster-config クラスター名

2. AWS CLIを使用してVPCのデフォルトのセキュリティグループIDを取得する

前の出力のVPC IDを使用する
このコマンドの出力には次のステップで使用するセキュリティグループIDが含まれる

aws ec2 describe-security-groups --filters Name=vpc-id,Values=VPC_ID --region ap-northeast-1

3. AWS CLIを使ってセキュリティグループルールを追加し、ポート80でインバウンドアクセスを許可する

aws ec2 authorize-security-group-ingress --group-id SECURITY_GROUP_ID --protocol tcp --port 80 --cidr 0.0.0.0/0 --region ap-northeast-1

構成ファイルを作る

デプロイ用のdocker-compose.ymlを作成
ここでは例としてWEBアプリケーションを作成するdocker-compose.ymlを作成します。
ECS CLIではバージョン1, 2, 3がサポートされています。ここでは3を使用する。

docker-compose.yml
version: '3'
services:
    web:
        image: イメージ
        ports:
            - '80:80'
        logging:
          driver: awslogs
          options:
            awslogs-group: test
            awslogs-region: ap-northeast-1
            awslogs-stream-prefix: web

ECS固有のパラメータをecs-params.ymlを作成する

さっきメモったサブネット、セキュリティグループIDを書き込む

ecs-params.yml
version: 1
task_definition:
  task_execution_role: ecsTaskExecutionRole
  ecs_network_mode: awsvpc
  task_size:
    mem_limit: 0.5GB
    cpu_limit: 256
run_params:
  network_configuration:
    awsvpc_configuration:
      subnets:
        - "subnet ID 1"
        - "subnet ID 2"
      security_groups:
        - "security group ID"
      assign_public_ip: ENABLED

クラスターに設定ファイルをデプロイする

ecs-cli compose service up でクラスターにデプロイする。デフォルトは現在ディレクトリで
docker-compose.ymlecs-params.ymlを検索します。--fileオプションを使用して別構成ファイルを指定することや、--ecs-paramsオプションで別のECS Paramsファイルを指定することもできます。

ecs-cli compose --project-name タスク名 service up --create-log-groups ロググループ名 --cluster-config クラスター名
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした