SAA学習-信頼性設計-高可用性の確保
今回のテーマ:高可用性の確保
概要
高可用性
cf)アーキテクチャ:構想、方式など
方式①:高可用なサービスを利用
AWSサービスの多くはAWS側で高可用に設計されてります。
具体的なサービスは以下などになります。
- S3/Glacier
- DynamoDB
- SWF
- SQS/SNS/SES
- Route53
- ELB/AutoScaling
- Lambda
- IAM
- Data Pipeline
- Kinesis
- EFS
- CloudFormation
- Directory Service
- EBS
- CloudWatch など
方式②:高可用なアーキテクチャ設計
基本機能はユーザー側で高かような設計をする必要があります。
具体的なサービスは以下になります。
- EC2
- RDS
- Direct Connect
高可用性の非機能要件
- 目標復旧時間(RTO:Recovery Time Objective):いつまでにシステムが復旧するかという目標時間を表す指数
- 目標復旧辞典(RPO:Recovery Point Objective):システム障害などでデータが破損した際、復旧するバックアップデータの古さの目標
- 耐障害性:アプリケーションコンポーネントに組み込まれた冗長性の確保。
- 復元可能性:システム障害/災害発生時におけるサービス復旧に係る機能とプロセスやポリシーを含めた整備。例:運用体制、復旧方法など文書管理
- 拡張性:既存設計・構成において、アプリケーションの拡張性を確保する能力
高可用性のトレードオフ
- 可用性を向上することにより、コストアップや構成の煩雑さも併せて上がるため、考慮する必要があります。
高可用性の実現する考え方
AWSを利用する際は、配置構成や高可用性を達成するサービスを組み合わせて高可用性を実現します。
AWSのサービス配置による高可用性の向上
AWSサービスの利用
- Route53によるフェイルオーバー
- ELBによるロードバランシング
- ClouWatchによるモニタリング
- Auto-Scalingによるスケーラビリティの確保
- Lambdaによるスケーリング処理
- ElastiCacheを利用したキャッシュアクセス
単一障害点の排除
アーキテクチャが高可用性を実現できてないものはELBなどによる高可用性設計が必要になります。
対象となるAWSサービスは以下になります。
- EC2
- Direct Connect
- RDS
上記の対応で利用する主要サービスは以下となります。
- ELB
- Route53
単一障害点の排除に関する基本的な事例
- EC2を使用する場合、基本はELBを利用しマルチAZまたはマルチVPC構成を採用すること
- RDSを使用する場合、マルチAZでマスタースレーブ構成を取って自動フェイルーバーで切り替え可能にし、参照はリードレプリカで負荷を軽減すること
- ElasticIPをインスタンスへ適用する場合、同じパブリックIPを持つ別のインスタンスへIPをフローティングすること(制御はRoute53で実装します。)
今回のテーマは以上です。