CloudWatch Alarmの更新(CloudFormation)
前回作成したCloudWatch Alarmがインスタンスタイプ変更でアラームが聞かなくなったのでCloudFormationを用いて更新します。
今回はインスタンスタイプ変更に伴い、テンプレートを修正します。
テンプレートの修正
vi cloudwatch-alarm-v2.yaml以下のように、InstanceType の値を変更します。
Parameters:
TargetInstanceId:
Type: AWS::EC2::Instance::Id
Default: i-02cadded2fbe4a7b9
InstanceType:
Type: String
Default: t3.small # ← ここを変更
SnsTopicArn:
Type: String
Default: arn:aws:sns:ap-northeast-1:215398796763:miotk-sns現在のテンプレート取得
現在CloudFormationに登録されているテンプレートを取得します。
aws cloudformation get-template \
--stack-name CloudWatch-Alarm-1 \
--query 'TemplateBody' \
--output text \
> current-template.yaml
差分確認
変更前後のテンプレートを比較し、差分を確認します。
diff current-template.yaml cloudwatch-alarm-v2.yaml👉 InstanceType のみ変更されていることを確認します。
変更セットの作成
変更内容を事前に確認するため、変更セットを作成します。
aws cloudformation create-change-set \
--stack-name CloudWatch-Alarm-1 \
--template-body file://cloudwatch-alarm-v2.yaml \
--change-set-name cw-alarm-update
変更内容の確認
Cfnのダッシュボードに移動し「CloudWatch-Alarm-1」スタックに先ほど作成した変更セットができていることを確認します。
リソースの変更タブより今回の変更箇所を確認します。
テーブルビューより、インスタンスタイプの値のみ変更になっていることを確認します。
今回アクションがModifyで、期待値以外の箇所のみ変更が確認できましたので、デプロイに進みます。
下記コマンドを実行
aws cloudformation execute-change-set \
--stack-name CloudWatch-Alarm-1 \
--change-set-name cw-alarm-update
今回変更したCloudWatch AlarmのInstance Typeが変更にしていることを確認します。
動作確認
CloudWatchコンソールにて、以下を確認します。
- CloudWatch Alarmのディメンションが更新されていること
- InstanceType が変更後の値になっていること
- タグ:
- CloudWatch