Well-Architected Frameworkについて
Well-Architected Framework
AZの選択
1つのリージョンにつき2つのAZを利用してアーキテクチャーを設計することが基本(3つ以上はコスト効率が下がる)
VPC
◾️1つのVPC ・可用性が低下するため、アイデンティティ管理やハイパフォーマンスコンピューティングなどその用途は限られる ・1人などの小規模で利用する場合は2つ以上VPCを利用するのが面倒なケースもある
◾️2つ以上のVPC ・2つ以上のVPCで可用性を確保するのが適切なAWSアーキテクチャ設計となる
5つの設計原則
Reliability:信頼性
障害による中断、停止と障害復旧による影響を軽減するinfrastructureを構成する
【設計事項】 ・インフラストラクチャサービスの障害復旧の自動化など軽減設計 ・復旧手順のテストによる検証 ・需要変化に応じた水平方向へのスケーラビリティに高可用性の確保 ・キャパシティの推測をやめる ・モニタリングと自動化を進める
信頼性の主要サービス
◾️基盤 ・IAM、VPC、AutoScaling、ELB、CloudFormation
◾️変更管理 ・CloudTrail、AWSConfig
◾️障害管理 ・CloudWatch
Performance Efficiency:パフォーマンス効率
システム要件のリソース最適化によるインフラの効率化
【設計事項】 ・システム要件を満たすためのコンピューティングリソースを効率化する ・システム要件やAWSサービスの進化に応じてAWSインフラの効率化を推進する 先端技術の一般化 グローバル化を即座に達成 サーバレスアーキテクチャの利用 より頻繁な実験
パフォーマンス効率の主要サービス
◾️コンピューティング ・AutoScaling、Lambda
◾️ストレージ ・EBS、S3、Glacier、EFS
◾️データベース ・RDS、DynamoDB、Elastic serach、Aurora、Redshift
◾️容量と時間のトレードオフ ・CloudFront、ElasticCache
Security:セキュリティ
AWS内のデータ / システム / アセットの保護とモニタリングによりセキュリティを高める
【設計事項】 ・全てのレイヤーでのセキュリティを適用 ・アクセス追跡、モニタリングを確実な実施 ・条件ドリブンのアラートをトリガーとしてセキュリティイベントへの応答を自動化 ・AWS責任共有モデルに基づく対象範囲の保護に集中する ・セキュリティのベストプラクティスの自動化 ソフトウェアベースのセキュリティ設定を使用し、迅速でコスト効率のいいスケーリングを安全に実行する 仮想サーバーのカスタムベースラインイメージによる新サーバーへの適用自動化 インフラストラクチャ全体のテンプレ化による管理
セキュリティの主要サービス
◾️データ保護 ・ELB、EBS、S3、RDS、KMS
◾️権限管理 ・IAM、MFA
◾️インフラ保護 ・VPC
◾️検出制御 ・CloudTrail、CloudWatch、AWSGuardDuty、AmazonInspector
Cost Optimization:コスト最適化
不必要なリソースの削減や最適な料金選択によりコストを削減
【設計事項】 ・不必要なリソース削減 ・透明性のある費用ぶか ・マネージド型サービスの利用によるコスト削減 ・固定の償却コストを変動コストへと転換 ・スケールによるコストメリット ・データセンターへの投資不要化
コスト最適化の主要サービス
◾️需要と供給の一致 ・AutoScaling
◾️コスト効率の高いリソース ・EC2購入方式、Trusted Advisor
◾️支出の認識 ・Cloud Watch、見積もりツール
◾️継続した最適化 ・AWS最新情報、TrustedAdvisor
Operational Excellence:運用上の優秀性
運用上の優秀性とは計画変更が起こった場合や予期せぬイベントの発生時において、自動化された運用実務および文書化されテストされレビューされた手順があること
【設計事項】 ・コードに基づく運用実施 ・ビジネス目的に沿った運用手順 ・定期的かつ小規模で増加的な変更実施 ・予期せぬイベントへの応答テスト ・運用イベントと障害からの学習 ・運用手順を最新のものに保持すること
## 運用上の優秀性の主要サービス ◾️準備 ・CloudFormation、Codeシリーズ、RunbookPlaybook
◾️運用 ・SystemManager、ServiceCatalog、CloudTrail、AWSArtifact、AWSGuardDuty、CloudWatch、AWSConfig、APIGateway
◾️進化 ・継続的かつ段階的な改善のために時間とリソースを割り当て、運用の有効性と効率性を向上させる
AWSベストプラクティス
◾️スケーラビリティの確保 ◾️環境の自動化 ◾️使い捨てリソースの使用 ◾️コンポーネントの疎結合 ◾️サーバーではなくサービス ◾️最適なデータベース選択 ◾️増大するデータ量対応 ◾️単一障害点の排除 ◾️コスト最適化 ◾️キャッシュの利用 ◾️セキュリティの確保
①スケーラビリティの確保 需要の変化に対応できるアーキテクチャを設計する ・EC2 Auto Recovery、EC2 Auto Scaling、Cloud Watch、RDS、DynamoDB
②環境の自動化 システムの安定性、整合性及び組織の効率性を改善するため主要プロセスを自動化する ・CloudFormation、Codeシリーズ、ECS、ElasticBeanstalk、OpsWorks、CloudWatch
③使い捨てリソースの使用 サーバーなどのコンポーネントを一時的なリソースとして利用、設計する ・EC2、AutoScaling
④コンポーネントの疎結合 コンポーネント間の相互依存を減らした構成とすることで、1つのコンポーネント変更や障害の影響を削減する ・ELB、SNS、SQS
⑤サーバーではなくサービス(サーバレス) マネージド型サービスとサーバーレスアーキテクチャにより効率的な設計と運用を実現 ・Lambda、SNS、SQS、ELB、SES、DynamoDB、AmazonAPIGateway、AmazonCognito
⑥最適なデータベース選択 ワークロードに応じた最適なデータベース技術を利用する ・RedShift、RDS、DynamoDB、Aurora、ElasticSearch
⑦増大するデータ量対応 Iot / ビックデータなどで絶えず増加するデータの保持を効率的に実施する ・S3、Kinesis、Glacier
⑧単一障害点の排除 AWSのサービスの多くは高可用性が保証されているものが多いものの、以下の主要サービスはELBなどによる高可用性設計が必要 ・アーキテクチャで高可用性を実現すべきサービス EC2、DirectConnect、RDS
・利用する主要サービス ELB
⑨コスト最適化 リソースが最適なサイズから必要に応じたスケールアウト、スケールインの実施と最適な料金プランの選択 ◾️需要と供給の一致 ・AutoScaling
◾️コスト効率の高いリソース ・EC2購入方式、Trusted Advisor
◾️支出の認識 ・Cloud Watch、見積もりツール
◾️継続した最適化 ・AWS最新情報、TrustedAdvisor
⑩キャッシュの利用 繰り返し取り出すデータやコンテンツについてはキャッシュを利用する構成とする ・CloudFront、EastiCache
⑪セキュリティの確保 全てのレイヤー、境界、リソース内 / 外においてセキュリティを実装する ◾️データ保護 ・ELB、EBS、S3、RDS、KMS
◾️権限管理 ・IAM、MFA
◾️インフラ保護 ・VPC
◾️検出制御 ・CloudTrail、CloudWatch、AWSGuardDuty、AmazonInspector