いつも忘れないように、コンセプトから。
###コンセプト
・お金かけてまでやりたくないのでほぼ無料でAWSを勉強する
→ちょっとしたサービスを起動すると結構高額になりやすい。
・高いレベルのセキュリティ確保を目指す
→アカウントを不正に使われるととんでもない額を請求されるので防ぐ
今回はセキュリティの話ではないですが、昨日の続きというか、流れで調べていたのでその備忘というかメモです。昨日はアメリカ国防総省のAWSセキュリティを参考にお勉強について書いてました。
今日は、アメリカ国防総省のクラウドベストプラクティス
(Best Practices Guide for Department of Defense
Cloud Mission Owners)を読んでみました。一番面白かったのは、可用性を高めるための方法です。P.18にAchieving High Availabilityという項目があります。
###アメリカ国防総省の可用性に対する考え方
中段くらいから、「クラウド上で発生しうるシステムやアプリケーションの5つのシステムトラブルを考えてみよう」と書かれています。
- アプリケーション障害
- サーバー障害
- データセンター障害
- クラウド全体の障害
- ネットワーク障害
これらが5つの分類になるんですが、個人的に興味深かったのは3のデータセンター障害と、4のクラウド全体の障害についてです。
まず、データセンターの障害についてですが、1つのソリューションとして異なったゾーンに分割するようにと書かれています。AWSの場合はAZ(Availability Zones)で、Azureの場合はリージョンで分けると書かれています。よく勘違いしている人がいますが、AWSのリージョンと、Azureのリージョンは違います。AWSのAZ=Azureのリージョンが正しいです。また、他のクラウドサービスでは違う名前かもしれないけど、コンセプトはみんな同じだと記載されています。要はどういうレベルで冗長化されているかを確認すべき、ということなんです。
続いて面白いのがクラウド全体の障害についてです。この場合は別のクラウドにデータのバックアップをするようにと書かれています。当たり前すぎじゃん、って思うのですが、こうやって明示的に書いてくれるのは助かる部分が多いと思います。いちいちいろいろ聞かれると回答が面倒なこともありますが、アメリカ国防総省の名前を出すと、良く知らない人をけむに巻くことが可能です(笑)。水戸黄門の印籠みたいなもんで、便利に使っていきましょう。
ちなみに、ポイントはデータのバックアップなので、必ずしもシステムをマルチクラウドで冗長に組むようにとは書いていないところです。まあ、AWSでマルチAZで組んでいて全ダウンしたからといって、他のクラウドで同じように動かすのは事実上困難でしょうね。そもそもS3もなければLambdaなどの連携方法も違うので、別物になってしまいます。非常に発生率の低い障害に対して二重投資するのは賢明な判断とは言えないでしょう。
まあ、ここまで読んで、当たり前のことしか書いてないじゃんと思うかもしれませんが、経験上その当たり前を当たり前として説明するのに苦労したことが何度もあります。そういう時にはこういう文章やホワイトペーパーを出すと、すんなり話が進むこともあるので、困った時に使ってみるといいかもしれません。