LoginSignup
0
0

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-01-22

前提条件

・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 クラスター名
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0