LoginSignup
1
0

More than 3 years have passed since last update.

AWS CodeDeploy で Auto Scaling グループ に複数のターゲットグループを紐づける

Posted at

お疲れ様です。
タイトルの通り備忘録です。
どこかの記事を参考にしたと思ったのですが、見つからなかったので知っている方がいれば教えてください🙇‍♂️

用意するもの

  • appspec.yml
  • 紐づけ処理用のシェルスクリプト(before_allow_traffic.sh)

以上

appspec.yml

このファイルは、デプロイを管理するために CodeDeploy によって使用されるファイルです。

appspec.yml
version: 0.0
os: linux
...中略...
hooks:
  BeforeAllowTraffic:
    - location: scripts/before_allow_traffic.sh
      timeout: 300
      runas: root

トラフィックを許可する処理で before_allow_traffic.sh を実行します。

before_allow_traffic.sh

スクリプト内にTODOコメントが書いてありますが、
ターゲットグループを直接指定しています。
もしオリジナルのAuto Scalingグループから取得する方法があれば教えてください🙇‍♂️

before_allow_traffic.sh
#!/usr/bin/env bash

# Blue/Greenデプロイ時にAutoScalingGroupのターゲットグループが空になるので、引き継ぐ
query "TargetGroups[*].TargetGroupArn" --output text)
autoscalingGroupName=$(aws deploy get-deployment --deployment-id ${DEPLOYMENT_ID} --query "deploymentInfo.targetInstances.autoScalingGroups" --output text)

if [[ "$autoscalingGroupName" != "None" ]]
then
  # TODO ターゲットグループは直接指定ではなくオリジナルから取りたい
  if [[ "${DEPLOYMENT_GROUP_NAME}" == "***DEPLOYMENT_GROUP_NAME***" ]]
  then
    aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name "$autoscalingGroupName" --target-group-arns "arn:aws:elasticloadbalancing:ap-northeast-1:**********:targetgroup/***TARGET_GROUP_NAME***/*********" "arn:aws:elasticloadbalancing:ap-northeast-1:**********:targetgroup/***TARGET_GROUP_NAME***/*********"
  fi
fi

1
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
1
0