皆様こんにちは。
今回はCLIを利用して高可用性アーキテクトの構築をしていきます。
この記事ではCLIよりSNSの設定を行います。
このブログはCLIによるSNSの設定をする上での知識を記事としてまとめ再確認し、皆様と共有するため作成します。

1.高可用性アーキテクト構築目次

目次はこちら

2.SNSとは

Amazon Simple Notification Service (Amazon SNS) は、配信者から受信者 (または生産者から消費者) へのメッセージ配信を提供するマネージドサービスです。発行者は、論理アクセスポイントおよび通信チャネルであるトピックにメッセージを送信することで、受信者と非同期的に通信します。クライアントは、Amazon Kinesis Data Firehose、Amazon SQS、AWS Lambda、HTTP、E メール、モバイルプッシュ通知、モバイルテキストメッセージ (SMS) などのサポートされたエンドポイントを使用して SNS トピックにサブスクライブし発行されたメッセージを受信できます。
引用:Amazon SNS とは

エンドポイント

エンドポイントは通知の配信対象のことです。
EメールやAmazon Kinesis Data Firehose、Amazon SQS、AWS Lambda等といったAWSサービスも指定できます。

SNSトピック

SNSトピックは、複数のエンドポイントを一つのグループとしてまとめたものです。
トピックに通知メールを発行すると、登録しているエンドポイントに通知を配信することができます。

サブスクリプション

サブスクリプションは指定したエンドポイントをSNSトピックにサブスクライブ(登録)するデータです。

今回はCloudWatchAlarmのアラームの通知を自分のメールアドレスに配信したいためSNSを使用します。

類似サービスとして「Amazon SQS」があげられます。

3.フロー図

file
カスタムメトリクスを含むCloudWatchAlarmのアラームの通知を自分のメールアドレスに配信するには上記の図の構成でします。

今回はSNS設定のフローを以下で紹介します。

  1. CloudWatchAlarmのアラームの通知を受け取るSNSトピックを作成します。
  2. SNSトピックにエンドポイントを登録するためサブスクリプションの作成をします。

4.SNS設定

まずは通知メールの配信先となるSNSトピックを作成します。
SNSトピック作成のため、[aws sns create-topic]コマンドを使用します。

使用するオプション 設定値 説明
--name umemoto-SNS 設定したいトピックネームを入力
--tags Key=Name,Value=umemoto-SNS 設定したいタグを指定

入力

aws sns create-topic `
    --name umemoto-SNS `
    --tags Key=Name,Value=umemoto-SNS

出力

{
    "TopicArn": "arn:aws:sns:ap-northeast-2:xxxxx:umemoto-SNS"
}

これでSNSトピックを作成できました。

次にエンドポイントに自分のメールアドレスを指定するためにサブスクリプションを作成します。
作成のため、[aws sns subscribe]コマンドを使用します。

使用するオプション 設定値 説明
--topic-arn arn:aws:sns:ap-northeast-2:xxxxx:umemoto-SNS  先ほど作成したSNSトピックのARNを指定
--protocol email 使用するプロトコルを指定します
--notification-endpoint [自分のメールアドレス] 配信先に自分のメールアドレスを設定します。

入力

aws sns subscribe `
    --topic-arn arn:aws:sns:ap-northeast-2:xxxxx:umemoto-SNS `
    --protocol email `
    --notification-endpoint [自分のメールアドレス]

出力

{
    "SubscriptionArn": "pending confirmation"
}

指定したメールアドレスにメールが届きますのでconfirmしてください。
file

サブスクリプションを有効化できました!
file

これでSNSの設定は完了しました。

5.感想

設定自体は躓くことなくできましたが、サブスクリプションの言葉の意味を理解するのに少し時間がかかりました。
次回もよろしくお願いします。

6.参照

AWS CLI Command Reference
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/index.html#cli-aws-sns

Last modified: 2022-05-27

Author