AWSのホワイトペーパーの「AWSを用いた故障耐障害性の高いアプリケーションの構築】を読んだので興味深かったこと、重要そうなことをまとめてみます。
元ネタのホワイトペーパーはこちら
https://d36cz9buwru1tt.cloudfront.net/jp/wp/AWS_WP_Fault_Tolerant_JP_v20110517.pdf
故障は関心を集めるべきではない
いままでのオンプレ環境ではサーバの故障は一大事で、データセンターの担当者が迅速に故障したサーバの交換を既存のサービスに影響の出ないように実施する必要があった。
AWS環境で適切なプラットフォームでサービスを構築した場合には、故障は自動的に対処され、特に重要ではないイベントになる
AMI(Amazon Machine Images)
耐障害性の高いアプリケーションを構築する最初のステップは、自社のサービスに特化したAMIライブラリの構築。
AMIを構築すると、故障したインスタンスの交換はとてもかんたんで、そのAMIを使用して代わりのインスタンスを起動するだけで対応できる。
EBS(Elastic Block Store)
EBSは特にデータベース、ファイルシステム、ブロックレベルストレージへの直接アクセスが必要なアプリケーションに適している。
EBSはデータを冗長に保管し、通常のハードドライブよりさらに耐久性を高めている。EBSの年間平均故障率は0.1-0.5%(商用のハードディスクは4%ほど)
Elastic IP
一度取得するとそれを取得したAWSアカウントに関連することになり、特定のインスタンスやインスタンスの寿命には関連しない。
また、ElasticIPアドレスを新しいインスタンスに再度マッピングするだけで代替インスタンスまたはスペアのインスタンスに容易にフェイルオーバーが可能。
Auto Scalling
Auto Scallingを使用して、メモリリークや品質の劣化がアプリケーションに影響しないことを確認するため、定期的にインスタンスを入れ替えるべき。(インスタンスに失効日を設定し常にフレッシュに保つ)
Elastic Load Balancing
ELBは不具合のあるインスタンスを検出し、不具合が修復されるまでとトラフィックを健全なインスタンスへ自動的にルート変更する。
ELBとAutoScallingは理想的な組み合わせ。ELBとは単一のDNS名を提供し、AutoScallingはリクエストを受けるインスタンスが常に必要な数存在することを保証してくれる。
リージョンと利用可能なゾーン
耐障害性を高めるのに鍵となる要素はアプリケーションを地理的に分散すること。地理的に遠方のデータセンターで同時に実行して、アプリケーションを保護することが可能。
Amazon Sinple Queue Service
SQSは受信メッセージを最高4日間保管している。
Amazon Sinple Storage Service
S3はリージョンの複数の施設にある複数のデバイスに冗長にオブジェクトを保管するため、データセンターが故障した場合でもデータにアクセスできる。
S3はURLでアクセスするため、インターネット接続があるあらゆるコンピューティングリソースからS3を利用できる。
Amazon Reletional Database Service
RDSではデータベースとトランザクションログを自動的にバックアップするため、データベースインスタンスを任意の時点に復旧できる。
結論
従来のハードウェアと同様の方法でAWSを利用するのでは耐障害性、パフォーマンス、コストの大幅な改善は期待できない。
AWSの利点はAWS製品を統合するときに発揮される。
使用した分だけの支払いなのでAWSでは事前投資の必要がなく、実証事件が可能になる。
AWSはパワフルで洗練されたサービス、その経済的な透明性を提供する。耐障害性の高いソフトウェアを構築するという観点では最適なプラットフォームである。
Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-
- 作者: 荒木靖宏,大谷晋平,小林正人,酒徳知明,高田智己,瀧澤与一,山本教仁,吉羽龍太郎
- 出版社/メーカー: マイナビ出版
- 発売日: 2016/06/10
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る