AWS CloudFormation で Amazon SNS の配信ステータスのログ記録を有効化できるようになりました
こんにちは、森田です。
以下のアップデートで、AWS CloudFormation で Amazon SNS の 配信ステータスのロギングを有効化できるようになりました。
本ブログでは、実際に AWS CloudFormation を使って、Amazon SNS の 配信ステータスのログ記録を有効化してみます。
Amazon SNS の 配信ステータスのログ
Amazon SNS の 配信ステータスのログには、詳細な配信ステータス情報が含まれており、運用時のトラブルシューティングの際などにログを活用することができます。
また、以下のブログでも紹介してありますが、AWS基礎セキュリティのベストプラクティスにも含まれていますので、基本は有効化すると良いです。
やってみる
CloudFormationテンプレート
使用するテンプレートは以下となります。
Parameters: TopicName: Type: String Default: TestTopic DisplayName: Type: String Default: Test # 成功した配信の内、どれくらいをログに残すか(0~100%) SuccessFeedbackSampleRate: Type: Number MaxValue: 100 MinValue: 0 Resources: MySNSTopic: Type: AWS::SNS::Topic Properties: TopicName: !Ref TopicName DisplayName: !Ref DisplayName SignatureVersion: 2 DeliveryStatusLogging: - Protocol: sqs SuccessFeedbackSampleRate: !Ref SuccessFeedbackSampleRate SuccessFeedbackRoleArn: !GetAtt FeedbackRole.Arn FailureFeedbackRoleArn: !GetAtt FeedbackRole.Arn FeedbackRole: Type: 'AWS::IAM::Role' Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - sns.amazonaws.com Action: - 'sts:AssumeRole' Path: '/' Policies: - PolicyName: 'MyPolicy' PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - 'logs:*' - 'logs:CreateLogGroup' - 'logs:CreateLogStream' - 'logs:PutLogEvents' - 'logs:PutMetricFilter' - 'logs:PutRetentionPolicy' Resource: '*'
上記のパラメータにしているSuccessFeedbackSampleRate
ですが、これは、成功した配信の内、どれくらいをログに残すかを指定します。
失敗したログは全て残すので、0を指定すると、失敗した配信のみのログを取得できます。
100を指定すると、失敗した配信と成功した配信の全てのログを取得できます。
CloudFormation スタックの作成
では、実際に CloudFormation テンプレートから、スタックの作成を行います。
コンソールを開き、作成した CloudFormation テンプレートを選択します。
今回は、全てのログを残すように、SuccessFeedbackSampleRate
を100とします。
あとは、そのまま作成完了まで進め、しばらく待つと以下のようにCREATE_COMPLETE
となります。
実際にリソースから SNS Topicを確認すると、配信ステータスのログ記録
も有効化されていることが確認できます。
最後に
今までは、CloudFormation で SNS Topic を作成する場合は、後から手動等で設定する必要がありましたが、今回のアップデートで配信ステータスのログ記録の有効化を CloudFormation 一撃でできるようになりました。
便利なアップデートですので、ぜひ試してみてください。