AWS Systems Managerのパラメータストアの値を手動管理からCloudFormation管理に変えてみた
AWS Systems Managerにパラメータストアがあります。 この管理を手動でやっていたのですが、CloudFormationを使った管理に切り替える実験をしてみました。
- 変更前: パラメータストアの値を人間が手動で設定する
- 変更後: パラメータストアの値をCloudFormationで設定する
おすすめの方
- CloudFormationでSNSトピックを作りたい方
- CloudFormationでパラメータストアを設定したい方
- パラメータストアの管理を手動からCloudFormation管理に変えてみたい方
事前準備: パラメータストアに値を手動で追加する
SNSトピックを追加する
適当にSNSトピックを作成し、このトピック名を手動でパラメータストアに設定します。
AWSTemplateFormatVersion: "2010-09-09" Description: Sample Stack Resources: ReplaceSampleTopic: Type: AWS::SNS::Topic Properties: TopicName: replace-sample-topic
デプロします。
aws cloudformation deploy \ --template-file sns.yaml \ --stack-name Replace-Ssm-Sample-Stack \ --capabilities CAPABILITY_NAMED_IAM
SSMパラメータストアにSNSトピック名を手動で追加する
aws ssm put-parameter \ --type 'String' \ --name '/Replace/Sample/SampleTopicName' \ --value 'replace-sample-topic'
追加できました。
実験: CloudFormationでパラメータストアの値を設定する
CloudFormationテンプレートを更新して、パラメータストアにSNSトピック名を設定する
AWSTemplateFormatVersion: "2010-09-09" Description: Sample Stack Resources: ReplaceSampleTopic: Type: AWS::SNS::Topic Properties: TopicName: replace-sample-topic ReplaceSampleTopicParameter: Type: AWS::SSM::Parameter Properties: Name: /Replace/Sample/SampleTopicName Type: String Value: !GetAtt ReplaceSampleTopic.TopicName
デプロイします。
aws cloudformation deploy \ --template-file sns.yaml \ --stack-name Replace-Ssm-Sample-Stack \ --capabilities CAPABILITY_NAMED_IAM
パラメータストアを確認する
同じ値のため、更新自体は行われませんでした。
SNSトピック名を変更して、再デプロイする
AWSTemplateFormatVersion: "2010-09-09" Description: Sample Stack Resources: ReplaceSampleTopic: Type: AWS::SNS::Topic Properties: TopicName: replace-sample-aaa-topic ReplaceSampleTopicParameter: Type: AWS::SSM::Parameter Properties: Name: /Replace/Sample/SampleTopicName Type: String Value: !GetAtt ReplaceSampleTopic.TopicName
デプロイします。
aws cloudformation deploy \ --template-file sns.yaml \ --stack-name Replace-Ssm-Sample-Stack \ --capabilities CAPABILITY_NAMED_IAM
パラメータストアを確認する
変更されていました!!
さいごに
パラメータストアの値を手動からCloudFormation管理に変えてみました。 初回デプロイ時に手動設定するのは大変なので、最初からCloudFormationなどで管理しておくと楽ですね。