AWSを用いた耐障害性の高いアプリケーションの設計

23,045 views
22,555 views

Published on

2011年5月17日のWebinar資料

Published in: Technology
0 Comments
35 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
23,045
On SlideShare
0
From Embeds
0
Number of Embeds
1,092
Actions
Shares
0
Downloads
399
Comments
0
Likes
35
Embeds 0
No embeds

No notes for slide

AWSを用いた耐障害性の高いアプリケーションの設計

  1. 1. AWSを用いた耐障害性の高いアプリケーションの設計 2011年5月17日 玉川 憲 (@KenTamagawa ), エバンジェリスト 荒木 靖宏 (@ar1), ソリューション アーキテクト
  2. 2. AWSアーキテクチャセンターのご紹介aws.amazon.com/jp/architecture/ Webinarのご案内 ホワイトペーパー 「耐障害性の高い アプリケーションの構築」 日本語版、本日公開!! ベストプラクティスの共有 Copyright © 2011 Amazon Web Services
  3. 3. Overview 耐障害性に関係するAWSの機能 AWSアーキテクチャのガイダンス ヒントとTIPS Q&A Copyright © 2011 Amazon Web Services
  4. 4. 耐障害性に関係する AWSの機能 Copyright © 2011 Amazon Web Services
  5. 5. AWSにおける耐障害性を高める構成要素本質的に耐故障性、耐障害性の高いAWSのサービス: • Amazon Simple Storage Service (S3) • Amazon Simple Queue Service (SQS) • Amazon SimpleDB • Amazon Relational Database Service (RDS)EC2では耐故障性、耐障害性を高めるツールや機能を提供  Availability Zone、Elastic IP Address、EBS等  予算 vs 耐障害性のトレードオフの間で柔軟に選択 Copyright © 2011 Amazon Web Services
  6. 6. Amazon S3の場合 バケット S3 データ置くと、 東京リージョン 東京リージョン 内で、物理的に3 あらゆる か所以上にコ データを ピーされる 保存 データセン ター 自動複製 高い耐久性で データ失わない: 99.999999999%
  7. 7. AWSにおける耐障害性を高める構成要素本質的に耐故障性、耐障害性の高いAWSのサービス: • Amazon Simple Storage Service (S3) • Amazon Simple Queue Service (SQS) • Amazon SimpleDB • Amazon Relational Database Service (RDS)EC2では耐故障性、耐障害性を高めるツールや機能を提供  Availability Zone、Elastic IP Address、EBS等  予算 vs 耐障害性のトレードオフの間で柔軟に選択 Copyright © 2011 Amazon Web Services
  8. 8. Amazon EC2 アーキテクチャ Amazon Region Machine Availability Zone Image (AMI) Ephemeral Storage EC2 Instance Elastic CloudWatch Block Storage Security Group Auto Amazon S3 Scaling Elastic IP EBS EBS Address Snapshot Snapshot Load BalancingCopyright © 2011 Amazon Web Services
  9. 9. EC2の機能 AMI (Amazon Machine Image)  サーバーのコピーをとりテンプレート化することで、再利用可能  障害から迅速に回復するための第一歩 ストレージの形式  インスタンスストレージ  寿命はインスタンスと同じ  年間故障率(AFR)は通常のハードディスクと同程度(5%前後)  EBSボリューム  寿命はインスタンスとは独立  データを冗長化 →AFR は 0.1% から 0.5%  EBSスナップショットでバックアップできる  EC2インスタンスが故障した際には、 新しいEC2インスタンスに、EBSと取り付ければ良い Copyright © 2011 Amazon Web Services
  10. 10. EC2の機能 Elastic IP Address  リージョン内で任意のEC2インスタンスにマッピングできる  故障したインスタンスから取り外して、代替インスタンスへ付け替え可能 Auto Scaling  2種類の使い方: • CloudWatchの測定結果に基づくインスタンス数の追加と終了 • インスタンス数を固定した使い方:故障/状態の悪くなったインスタン スを交換 Reserved Instances  キャパシティの保証 Copyright © 2011 Amazon Web Services
  11. 11. EC2の機能 CloudWatch Alarms Copyright © 2011 Amazon Web Services
  12. 12. EC2の機能 Elastic Load Balancing  入ってくるトラフィックを、複数インスタンス、複数ゾーンに 分散して転送  正常動作しているインスタンスにのみ転送 Copyright © 2011 Amazon Web Services
  13. 13. Amazon EC2: Regions と Availability Zones 米国東 (Northern Virginia) 東京リージョン Availability Availability Zone A Zone B Availability Availability Zone A Zone B Availability Availability Zone C Zone DAmazon EC2 Regions:US East (Northern Virginia) / US West (Northern California) /EU (Ireland) / Asia Pacific (Singapore) / Asia Pacific (Tokyo) Copyright © 2011 Amazon Web Services
  14. 14. Availability Zoneの特徴とポイント 特徴  物理的に異なるロケーション  AZ間は低レイテンシのネットワークで接続  独立した電源、空調、ネットワーク、セキュリティ アーキテクチャ設計のポイント  ELBは複数AZのインスタンスを使用できる  アプリケーションスタック毎に、複数AZで分離しておく Copyright © 2011 Amazon Web Services
  15. 15. 典型的な複数AZの利用法 Availability Zone A Availability Zone B データベースサーバ/ データベースサーバ/ RDS DBインスタンス RDS DBインスタンス App サーバー App サーバー Web サーバー Web サーバー リクエストとヘルスチェック Elastic Load Balancer 入ってくるリクエストCopyright © 2011 Amazon Web Services
  16. 16. リージョンの特徴と利用ポイント特徴  リージョンは、機能的に分離されている(しかしそれぞれ同じ設計)  各リージョンが、2つ以上のAZで構成  リージョン間は、パブリックなインターネットで接続使用リージョンの選択  利用できるサービス、機能があること  利用者に近いリージョンを選ぶ  法律や慣行に合致すること  DR戦略にあわせてアーキテクチャ設計のポイント  利用ポイント耐障害性の高いアプリケーションを作成するには、 リージョン内の複数のAvailability Zoneを用いる
  17. 17. AWS アーキテクチャ ガイダンス Copyright © 2011 Amazon Web Services
  18. 18. Design For Failure – 基本原則 単一障害点(single points of failure)の排除 全てが故障すると仮定して、保守的に設計する Goal: 物理ハードウェアが故障して、消失したり交換されて もアプリケーションは機能する 障害からの復旧を計画する ビジネスニーズと高可用性実現コストのトレードオフ Copyright © 2011 Amazon Web Services
  19. 19. Design For Failure – AWSの場合 Elastic IPを固定したアクセス手段として使う 複数のアベイラビリティゾーン(AZ)を使う データを複数AZに複製する  例:Amazon RDSのMulti-AZモードの使用 常時監視する(Amazon CloudWatch) 永続するファイルシステムはEBSを使う EBSスナップショットをとって、S3にバックアップ Copyright © 2011 Amazon Web Services
  20. 20. Amazon EC2上での耐障害性アーキテクチャ YourWebsite.com EC2 Instance A EC2 Instance B Replication MASTER MASTER SLAVE EBS Data EBS Log EBS Data Volume Volume VolumeCopyright © 2011 Amazon Web Services
  21. 21. アベイラビリティゾーンの利活用 YourWebsite.com EC2 Instance A EC2 Instance B Replication MASTER MASTER SLAVE Logs EBS Data EBS Data Volume Amazon Volume Simple DBCopyright © 2011 Amazon Web Services
  22. 22. Copyright © 2011 Amazon 疎結合なシステムの構築 Web Services 独立したコンポーネントの使用 ブラックボックスとして全て設計 負荷分散とスケールを意識したクラスタ 適切な縮退をも意識Amazon SQS をバッファ使う 密結合 Controller Controller Controller A B C Q Q Q キューをつかった Controller Controller Controller 疎結合 A B C
  23. 23. Elasticityの実現 コンポーネントの正常稼働やロケーションの固定を前提としない 再起動や再配置で回復できる設計の採用 自力でブートする  名前や役割を自己解決する 動的な設定を有効にする ブート時の設定内容保持にSimpleDBを使う オートスケールの使用 ELBをそれぞれの段階で使用 Copyright © 2011 Amazon Web Services
  24. 24. ヒントとTips Copyright © 2011 Amazon Web Services
  25. 25. 抽象化を行うサーバー  レシピからサーバーを構築する (PuppetやChefを利用)システム  全体のシステムをテンプレートから構築す る (CloudFormation) Copyright © 2011 Amazon Web Services
  26. 26. 自己管理するEC2インスタンスの構築TagあるいはUserDataを読み込んでインスタンス起動Startupコードに、コンフィグデータをチェックさせる上記の動的な情報を基にして、インスタンスの役割をセットするパッケージをインストール/アップデートするサービスを開始するアプリケーションのコードをインストール/アップデートする必要なEBSボリュームをCreate/attachするElastic IPアドレスを付加する追加のTagをセット最後にヘルスチェックを実施して、オンラインにする Copyright © 2011 Amazon Web Services
  27. 27. 故障は役に立つ???あらゆるソフトウェアシステムが、長期間使うと品質が低下する  メモリリーク、ファイルのフラグメント、ハードウェアの品質 低下従来のIT環境では、ハードウェアを定期的に保守するが →更新は大変、金銭的にも厳しいAmazon EC2を用いれば、任意のタイミングで入れ替え可能むしろ、定期的なリフレッシュと考えられる Copyright © 2011 Amazon Web Services
  28. 28. Copyright © 2011 Amazon WebChaos Monkeyを用いる Services Netflixブログを参照 Simple monkey:  AWSのアカウント内のインスタンスを落とす(kill) Complex monkey:  特定のタグを持ったインスタンスを落とす  他の障害を追加 (例: セキュリティグループでの接続性) Human monkey:  AWS Management Consoleからインスタンスを落とす http://techblog.netflix.com/2010/12/5-lessons-weve-learned-using-aws.html
  29. 29. AWSプレミアムサポート アーキテクチャ設計に関するガイダンス、ベストプラク ティスも日本語でご案内できます aws.amazon.com/jp/premiumsupport/ ブロンズ シルバー ゴールド プラチナ初回応答時間 12時間 4時間 1時間 15分サポート連絡先 1人 2人 3人 無制限24/365対応 なし なし あり ありTEL可能 不可 不可 可能 可能専任スタッフ なし なし なし あり特別サポート なし なし なし あり AWS利用総額の AWS利用総額の $0~$10K: 10% AWS利用総額の 10%料金 $49 5% $10K~$80K: 7% $80K~: 5% (最低$15K) (最低$400) Copyright © 2011 Amazon Web Services
  30. 30. Q&ACopyright © 2011 Amazon Web Services
  31. 31. ご参加ありがとう ございました Copyright © 2011 Amazon Web Services

×