CloudWatchアラームのアラーム名を日本語にすると、SNSの通知メールがおかしくなる
CloudWatchアラームのアラーム名を日本語にすると、SNSの通知メールがおかしくなる件について調査しました。
背景
システム監視でCloudWatchアラームを使い、問題があった時にSNS経由でアラートメールを飛ばしています。
基本的に英語でメールしていますが、あるとき運用メンバーの要望で、通知する文面が日本語になるよう、CloudWatchアラームのアラーム名と説明を変えたところ、文字化けしたような変なメールが届いたことがありました。
Webで調べたところ、意外と同じ問題に関する記事がなかったので、自分で調べてみました。
結論
CloudWatchアラームのアラーム名:英語のみ
CloudWatchアラームのアラームの説明:日本語もいけそう
ただ、結局アラームの説明に関する制限の記載は明記がなかったので、本当に日本語OKかは運用してみてになりそうです。
調べた情報
まず、CloudWatchのアラーム名ですが、 ASCII 文字のみを使用するという制限がありました。
アラーム名には ASCII 文字のみを使用する必要があります。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html
CloudWatchのアラーム名は、SNSの件名になります。SNSの件名の制限を調べてみると、こちらもASCIIのみでした。
これは、各SNSトピック > [メッセージの発行] > [件名]から分かります。
一方、Body部にはマルチバイトが使えそうです。
ASCII エンコーディングを使用するメッセージには、最大 140 文字を含めることができます。UCS-2 エンコーディングを使用するメッセージには、最大 70 文字を含めることができます。
こちらは少し昔の記事になりますが、Body部にはUnicodeが使えることが書いてあり、もともとこういう仕様になっていたことが分かります。
SubjectはASCII文字列にしてください。Body部は8KBまでのUTF-8文字列を設定できます。
以上から、アラート名は英語、説明を日本語にすることで、日本人メンバーにも優しいアラートメールが発行できそうです。