AWSSNSはシンプルな通知サービスです。 Cloudwatchがアラートメールを送信するために使用できます。 まず、SNSトピックを作成してから、エンドポイントをサブスクライブする必要があります。
この記事では、Cloudformationを使用してSNSトピックを作成し、Eメールエンドポイントをサブスクライブします。 また、Cloudformationスタック自体を使用してSNSトピックとサブスクリプションを削除する方法についても説明します。 SNSの基本を理解し、機能していることを前提としています。 この記事は、Cloudformationスタックを使用したSNSの作成に焦点を当てています。
前提条件
- AWSアカウント(作成する お持ちでない場合)。
- SNSの基本的な理解。
- Cloudformationの基本的な理解。
何をしたらいいでしょう?
- AWSにログインします。
- テンプレートを作成します。
- スタックを作成します。
- サブスクリプションを確認します。
- スタックを削除します。
AWSにログインします
クリック ここに AWSログインページに移動します。 ユーザーの認証情報を入力して、AWSアカウントにログインします。
アカウントに正常にログインすると、AWS管理コンソールが次のように表示されます。
テンプレートを作成する
スタックの作成に進む前に、次のCloudformation構成を使用して、ローカルマシンにテンプレート「create-sns-topic.template」を作成しましょう。
CloudformationテンプレートをGithubリポジトリからダウンロードすることもできます。以下はテンプレートへのリンクです。
--- AWSTemplateFormatVersion: '2010-09-09' Description: The SNS Topic Parameters: SubscriptionEndPoint: Type: String Description: The endpoint that receives notifications. SubscriptionProtocol: Type: String Description: The subscription protocol AllowedValues: - http - https - email - email-json - sms - sqs - application - lambda Default: email Mappings: {} Conditions: {} Resources: SNSTopic: Type: AWS::SNS::Topic Properties: {} SNSSubscription: Type: AWS::SNS::Subscription Properties: Endpoint: Ref: SubscriptionEndPoint Protocol: Ref: SubscriptionProtocol TopicArn: Ref: SNSTopic Outputs: QueueName: Description: Name of the SNS Topic we created Value: Fn::GetAtt: - SNSTopic - TopicName TopicARN: Description: ARN of the SNS Topic we created Value: Ref: SNSTopic
Cloudformationスタックを作成する
ローカルマシンにテンプレートを作成したら、Cloudformationスタックを作成する準備が整います。
画面の左上にある[サービス]をクリックして、管理とガバナンスの下でCloudformationを検索します。
スタックを作成するには、画面の右側に[スタックの作成]オプションが表示されますので、それをクリックします。 2つのオプションが表示されます。これらの2つのオプションのうち、[新しいリソースを使用(標準)]をクリックします。「delete2」は、選択したリージョンの下のアカウントの既存のスタックであり、アカウントには表示されません。
「テンプレートファイルのアップロード」をクリックして、ローカルマシンからテンプレートを選択します。 「次へ」ボタンをクリックしてください。
スタック名、サブスクリプションエンドポイント、サブスクリプションプロトコルなどのスタックの詳細を指定します。 SubscriptionProtocolオプションの下のドロップダウンリストからプロトコルを選択できます。 SubscriptionProtocolとして「email」を選択しました。SubscriptionProtocolが「email」の場合は、SubscriptionEndpointとして電子メールアドレスを指定する必要があります。 「次へ」ボタンをクリックして続行します。
タグはオプションであり、このページでタグを指定することは必須ではありません。[次へ]ボタンをクリックして先に進みます。
ページの最後で下にスクロールして、[スタックの作成]ボタンをクリックします。 これによりスタックが作成され、サブスクリプションエンドポイントとしてEメールを使用してSNSトピックが作成されます。
リソースの作成には数分かかります。リソースが作成されると、スタックのステータスが「CREATE_COMPLETE」と表示されます。
SNSトピックを確認する
SNSにアクセスして、トピックが作成されているかどうかを確認できます。 SNSコンソールに移動するSNSを検索します。
ここで、左側のパネルの「トピック」をクリックして、作成されたトピックを選択します。 SNSトピックには、Cloudformationスタック名のプレフィックスが付いたトピック名があります。[サブスクリプション]タブの下に、エンドポイントも作成されていることがわかりますが、ステータスは[確認待ち]です。
サブスクリプションが作成されると、指定されたエンドポイントに確認リンクが送信されます。 ここでは、エンドポイントとしてメールアドレスを指定しているため、確認リンクが記載されたメールを受信している必要があります。
サブスクリプションのエンドポイントとして指定した電子メールの受信ボックスに移動します。 電子メールを開くと、「サブスクリプションの確認」ハイパーリンクが表示されますので、それをクリックします。
サブスクリプションが確認されると、次のようなメッセージが表示されます。
ここで、トピックに戻り、[サブスクリプション]タブでエンドポイントを確認すると、ステータスが[確認済み]として表示されます。 これで、SNSトピックとそのエンドポイントの作成が完了しました。 これで、指定されたエンドポイントにメッセージを送信するメッセージをこのSNSに公開する準備が整いました。
スタックを削除します
アカウントにSNSとサブスクリプションが不要になった場合は、スタックを削除できます。これにより、スタックが作成したリソースが削除されます。 スタックに移動し、「削除」ボタンをクリックします。
「スタックの削除」ボタンをクリックして、削除アクションを確認します。 スタックが削除されると、スタックが作成したすべてのリソースも削除され、復元できなくなります。 組織またはクライアントのAWSアカウントを処理している場合は、削除操作を実行する際に注意してください。
削除には数分かかります。スタックが削除されると、ステータスが「DELETE_COMPLETE」と表示され、スタックは使用できなくなります。
結論
この記事では、Cloudformationスタックを使用してSNSトピックとトピックへのサブスクリプションを作成するのがいかに簡単であるかを見ました。 サブスクリプションプロトコルとして電子メールを使用しました。 使用可能なリストから選択したプロトコルを選択し、トピックへのエンドポイントを指定できます。 また、スタックを削除すると、作成したリソースがどのように削除されるかについても説明しました。
Hope this helps!