#111 Fargate入門 (オレゴン編)

ハンズオンの概要

以下を構築します。

  1. ECSクラスタ
  2. ECSサービス

事前作業: ハンズオン環境の構築

作業開始前

本編 (構築)

2. 実行用IAMロールの作成

コンテナ実行用のIAMロールを作成します。

3. タスク用IAMロールの作成

タスク用のIAMロールを作成します。

3.1. タスク用IAMロールの作成

3.2. タスク用IAMロールの更新

(今回は省略します。)

5. ECSサービスの構築

5.2. ECSタスク定義の作成 (Fargate)

本編 (構築完了確認)

変数の設定:

export AWS_DEFAULT_REGION='us-west-2'

変数の設定:

ELBV2_LB_NAME='handson-cli-alb'

コマンド:

ELBV2_LB_DNS_NAME=$( \
  aws elbv2 describe-load-balancers \
    --name ${ELBV2_LB_NAME} \
    --query 'LoadBalancers[].DNSName' \
    --output text \
) \
  && echo ${ELBV2_LB_DNS_NAME}

結果(例):

handson-cli-alb-xxxxxxxxxxxx.us-west-2.elb.amazonaws.com

変数の設定:

URL_CHECK="http://${ELBV2_LB_DNS_NAME}/handson-cli/" \
  && echo ${URL_CHECK}

本編 (破棄)

1. ECSサービスの停止

1.1. ECSサービス desired count更新

変数の設定:

ECS_CLUSTER_NAME='handson-cli-cluster'

変数の設定:

ECS_SERVICE_NAME='handson-cli-service'

コマンド:

ECS_SERVICE_ARN=$( \
  aws ecs list-services \
    --cluster ${ECS_CLUSTER_NAME} \
    --query "serviceArns[?contains(@,\`${ECS_SERVICE_NAME}\`)]" \
    --output text \
) \
  && echo ${ECS_SERVICE_ARN}

結果(例):

arn:aws:ecs:us-west-2:XXXXXXXXXXXX:service/handson-cli-service

コマンド:

aws ecs update-service \
  --desired-count 0 \
  --service ${ECS_SERVICE_ARN} \
  --cluster ${ECS_CLUSTER_NAME}

コマンド:

aws ecs describe-services \
  --cluster ${ECS_CLUSTER_NAME} \
  --services ${ECS_SERVICE_ARN} \
  --query 'services[].desiredCount' \
  --output text

結果(例):

0

1.2. ECSサービスの削除

コマンド:

aws ecs delete-service \
  --service ${ECS_SERVICE_ARN} \
  --cluster ${ECS_CLUSTER_NAME}

コマンド:

aws ecs list-services \
  --cluster ${ECS_CLUSTER_NAME} \
  --query "serviceArns[?contains(@,\`${ECS_SERVICE_NAME}\`)]" \
  --output text

結果(例):

(出力なし)

3. タスク用IAMロールの破棄

3.1. タスク用IAMロールの更新

(今回は省略します。)

3.2. タスク用IAMロールの削除

4. 実行用IAMロールの破棄

作業完了後: