AWS

小ネタ:AWSを使用する案件の設計書に"○○リージョンのみ使用する"と記載しない方がいい

us-east-1リージョンを意識していますか

2年目の小僧がすこし語ります。

AWSもいまやエンタープライズ層でも当然のように使用されていると思いますが(たかが2年で何を知った口を←)そんな中SIerの方は基本設計書をどのように記載していますでしょうか。

私がいまいる案件には詳細設計フェーズから参画しています。

基本設計書が一応存在していますがそこには

"本システムでは東京リージョンのみ使用する"の記載がありました。

基本設計書のインプット資料にも複数記載が見受けられましたが、これは使用するAWSサービスによっては後々面倒ごとになる可能性が高いので書き方を工夫した方がよいですぞ!という小ネタです。

グローバルサービス

AWSには大きく3つのレベルでサービスを分類できると思っています。

1.グローバルサービス
2.リージョンレベルサービス
3.アベイラビリティゾーン(AZ)レベルサービス

よく使用されるAWSサービスを当てはめると

1.グローバルサービス : Route53 CloudFront IAM
2.リージョンレベルサービス : CloudWatch DynamoDB S3
3.アベイラビリティゾーン(AZ)レベルサービス : EC2 EBS RDS

このようになります。
※S3は迷いましたが、クロスリージョンの概念があるのでリージョンレベルに分類しました。
マネジメントコンソールはグローバル扱いですが。。。
※2018/03/11 :IAMは誤解を招きそうなので消しました。しかしCLoudWatchイベント等でIAMのイベントをターゲットに通知するには同じですのでご注意あれ

このうち「1.グローバルサービス : Route53 CloudFront IAM」を使用する想定がある場合に、

Route53 CloudFrontを使用しつつ"本システムでは東京リージョンのみ使用する"がセットでついてくると面倒です。

運用設計も考えてますか?

適当にRoute53とCloudFrontを使用するシステム構成図を書いてみました。

image.png

WEBコンテンツをCloudFrontで提供! 静的なコンテンツはS3をオリジンにして動的なものはEC2からだ!! みたいな構成とします。

運用となれば監視は当然ハッピーセットでついてくると思いますが、
AWSサービスオンリーで監視。CloudWatchアラームを設定してSNSから運用担当チームのメーリングリストに通知すればOK。だとして

image.png

このようになると思った方少なからずいるのではないでしょうか。

残念!!!!!!!!!!!!

グローバルリージョンのCloudWatchメトリクスはus-east-1にあるぞ

正解はこうです。

image.png

グローバルリージョンのAWSサービスのCloudWatchメトリクスはバージニアリージョンにしかありません
これ大事。

ついでにCloudWatchアラームは、アクションとして「通知」「AutoScaling」「EC2アクション」を選べますが同一リージョンに存在するリソースを対象に取れます。
つまり今回であればRoute53とCloudFrontのメトリクスを元にSNSへ通知を飛ばしたい場合は
SNSトピックももれなくバージニアリージョンに作成する必要があります。

きっと日本国内にしか顧客データを保管しないというユーザ企業のポリシーがあったりして○○リージョンしか使いませんという宣言をしていると思いますが、この記載がかえって面倒を起こします。

たしかに顧客データはCloudWatchには残らないと思いますが、こういうことを気にするお客さんであれば「バージニア」の文字が見えようものなら脊髄反射で喰ってかかってくることでしょう:imp:

最悪経営層が出席して会議開催なんてことになってざわざわするので記載する文言は選んだ方が無難ですよというネタでした。

請求アラーム

さらに小ネタです。

AWSではCloudWatchアラームを使用して、月の請求額に応じてメール通知したりできます。

image.png
東京リージョンで設定しようとするとこうなります。

以上です。