Well Architected Framework

  • AWSの提唱する設計原則

アーキテクチャの基礎

AZの選択

  • 1リージョン2つのAZを利用して設計することが基本

    • 3つ以上はコスト効率が低下する。

  • マルチAZでEC2やDBを冗長構成

  • S3でDBのバックアップを取得する。

VPC

  • 2つ以上のVPCが基本

    • 1つのVPCでは可用性が低下する。

      • HPCなどその用途は限られる。

    • 小規模な場合は1つでもOK。

  • VPCを組織やシステム単位で分割

    • 本番と開発で分割

  • VPC以外では、システム毎にアカウントを準備するマルチアカウント方式もありうる。

サブネット分割

  • CIDRで分割したネットワークセグメント。

  • publicとprivateに分割することが基本。

  • 基本的にはWebアクセスの要否が基準となる。

  • /24以上の大きいサブネットの使用を推奨。

  • 1つのAZにpublic, privateが一つずつ。これが2つ分のAZにあるのが望ましい。

  • privateに多くのIPを割り当てる。

    • 例: publicは/24、privateは/23など

VPC間接続

  • VPC peeringで設定

  • それぞれがPeering設定が必要。

Well-Architected Framework

設計原則

  • 6つの原則

    • 信頼性 Reliability

    • パフォーマンス Peformance Efficiency

    • 安全性 Security

    • コスト最適化Cost Optimization

    • 運用上の優秀性 Operational Excellence ※SAA範囲外

    • 持続可能性 Sustainability

WAFの3つの内容

  • WAFのホワイトペーパー

  • 認定パートナーによる支援制度

  • セルフチェック向けの Well-Architedted Tool

ベストプラクティス

  • ベストプラクティスを利用することで、最適解や改善点を把握する。

  • あくまで参考であり絶対というものではない。

  • 使い方

    • システム要件を検討する材料として要件検討に利用する。

    • 設計における適切な設計方式の検討

    • リリース前に構成に改善点がないか。

    • 運用中にWHに沿ったレビューを実施し、リスクや改善点がないか確認する。

Reliability

  • 障害による中断・停止と障害復旧の影響を軽減するインフラを構成する。

  • ポイント

    • 障害復旧の自動化

    • 復旧手順ののテストによる検証

    • 需要変化に応じた水平方向へのスケーラビリティ

      • AutoScalingの設定によるスケーリング自動化

    • キャパシティの推測をやめる

      • 自動で察知しモニタリングしてスケーリングさせる。

    • モニタリングと自動化を進める。

  • 3つのポイントと主要なサービス

    • 基盤(IAM, VPC, AutoScaling, ELB, Cloud Formation)

    • 変更管理(CloudTrail, AWS Config)

    • 障害管理(CloudWatch)

Performance Efficiency

  • リソース最適化によるインフラ効率化

  • システム要件を満たすためのコンピューティングしろーすを効率化する。

  • システム要件やAWSサービスの変化に応じてインフラの効率化を推進

    • 先端技術の一般化

    • グローバル化

    • サーバレスアーキテクチャの利用

    • より頻繁な実験

  • ポイントと主要なサービス

    • コンピューティング(AutoScaling, Lambda)

    • ストレージ(EBS, S3, Glacier, EFS)

    • データベース(RDS, DynamoDB, ElasticSearch, Aurora, Redshift)

    • 容量と時間のトレードオフ(CloudFront, ElastiCache)

Security

  • AWS内のデータ、システム、アセットの保護と監視によりセキュリティを高める。

  • すべてのレイヤーでセキュリティを適用

  • アクセス追跡、モニタリングを確実な実施

  • 条件ドリブンのアラートをトリガーとしてセキュリティイベントへの応答を自動化。

  • AWS責任共有モデルに基づき対象範囲の保護に集中する。

  • セキュリティのベストプラクティスの自動化。

    • ソフトウェアベースのセキュリティ設定を使用し、迅速でコスト効率の良いスケーリングを安全に実行する。

    • 仮想サーバーのカスタムベースラインイメージによる新サーバーへの適用自動化

    • インフラストラクチャ全体のテンプレートによる管理。

      • CloudFormationやCodePipelineなど

  • ポイントと主要なサービス

    • データ保護(ELB, EBS, S3, RDS, KMS)

    • 権限管理(IAM, MFA)

    • インフラ保護(VPC)

    • 検出制御(CloudTrail, CloudWatch, AWS GuardDuty, Amazon Inspector)

Cost Optimization

  • 不必要なリソース削減、最適な料金選択

    • 不要なリソース削減

    • 透明性のある費用賦課

    • マネージド型サービスの利用

    • 固定のコストを変動コストへ変換

    • スケールによるコストメリット

    • データセンターへの投資不要化

  • ポイントと主要なサービス

    • 需要と供給の一致(AutoScaling)

    • コスト効率の高いリソース(EC2購入方式, Trusted Advisor)

    • 支出の認識(CloudWatch, 見積ツール)

    • 継続した最適化(AWS最新情報, Trusted Advisor)

Operational Excellence

  • 計画変更や予期せぬイベントが発生した際に、自動化された運用実務および文書化されレビューされた手順があること。

    • コードに基づく運用実施

    • ビジネス目的に沿った運用手順

    • 定期的かつ小規模で増加的な変更実施

    • 予期せぬイベントへの応答テスト

    • イベントと障害からの学習

    • 運用手順を最新のものに保持すること

  • ポイントと主要なサービス

    • 準備(CloudFormation, Codeシリーズ, Runbook, Playbook)

    • 運用(System Manager, Service Catalog, CloudTrail, AWS Artifact, AWS GUardDuty, CloudWatch, AWS config, API Gateway)

    • 進化(継続的かつ段階的な改善のため、時間とリソースを割り当てて、運用の有効性と効率性を向上させる)

Sustainability

  • 追加の原則。今後試験範囲になる可能性がある。

  • 環境負荷のないクラウドサービスの活用

  • 責任共有モデルにより、ユーザーとAWS側の連携によって推進される

  • AWS側のおもな対応

    • サーバーの使用率

    • 電力と冷却の効率化

    • カスタムデータセンターの設計

    • 2025年までに100%再生可能エネルギーでAWSを運用

  • ユーザー側の主な対応

    • 効率的なストレージ技術の使用

    • コード効率化

    • 効率的なインフラのデプロイとスケーリング

    • 効率的なアプリケーションデザイン

    • データの効率的なデザイン活用

  • 設計原則

    • 影響を把握する

    • サスティナビリティ目標の設定

    • 使用率の最大化

    • 効率的な新しいHWとSWの提供を予測して、採用する

    • マネージドサービスの使用

    • クラウドワークロードのダウンストリームの影響を軽減

  • サスティナビリティのベストプラクティス

    • ユーザーの所在地に合わせてワークロードの地理的配置を最適化

    • 時間やリソースを最も多くコード領域を最適化

    • ユーザのデバイスへの影響を最適化。

    • データ分類ポリシーを実装

    • ライフサイクルポリシーを使用して不要なデータを削除

    • ネットワーク間でのデータ移動を最小化

    • GPU使用の最適化

    • 潜在的なサステナビリティの改善を迅速に導入できる開発方法とテスト方法の採用

    • ビルド環境の使用率を向上。

AWSベストプラクティス

  • 11の原則を定義している

    • スケーラビリティの確保

    • 環境の自動化

    • 使い捨てリソースの使用

    • コンポーネントの疎結合

    • サーバーではなくサービス(サーバレス)

    • 最適なデータベース選択

    • 増大するデータ量対応

    • 単一障害点の排除

    • コスト最適化

    • キャッシュの利用

    • セキュリティの確保

スケーラビリティ

  • 需要の変化に対応できるアーキテクチャを設計する。

  • 主要サービス

    • EC2 Auto Recovery, EC2 Auto Scailing, CloudWatch, RDS, DynamoDB

環境の自動化

  • システムの安全性・整合性および組織の効率性を改善するための主要プロセスを自動化する。

  • 主要サービス

    • Cloud Formation, Codeシリーズ(CodeBuild, CodeTest, CodePipeline), ECS, ElasticBeanstalk, OpsWorks, CloudWatch

使い捨てリソースの仕様

  • 一時的なリソースを使用して構築する。

  • 主要サービス

    • EC2, AutoScaling

コンポーネント疎結合

  • コンポーネントの相互依存を減らし、変更や障害の影響を削減する。

  • 主要サービス

    • ELB, SNS, SQS

サーバーではなくサービス(サーバレス)

  • マネージド型サービスとサーバレスアーキテクチャにより効率的な設計と運用を実現。

  • 主要サービス

    • Lambda, SNS, SQS, SES, ELB, DynamoDB, API Gateway, Cognito

最適なデータベース選択

  • ワークロードや目的に応じた最適なデータベース技術を利用する。

  • 主要サービス

    • RedShift, RDS, DynamoDB, Aurora, Elastic Search

増大するデータ量対応

  • IoT,ビッグデータで絶えず増加するデータの保持を効率的に実施

  • 主要なサービス

    • S3, Kinesis, Glacier

単一障害点の排除

  • 高可用性が保証されているものもあるが、ELBによる高可用性設計が必要。

  • 高可用性を考慮すべきサービス

    • EC2(ELBなどによる設計), DirectConnect, RDS

コスト最適化

  • 需要と供給の一致

    • AutoScaling

  • コスト効率の高いリソース

    • EC2購入方式, Trusted Advisor

  • 支出の認識

    • CloudWatch, SNS

  • 継続的な最適化

    • AWS最新情報, Trusted Advisor

キャッシュの利用

  • 繰り返し取り出すデータ、コンテンツはキャッシュを利用する。

  • 主要なサービス

    • CloudFront, Elasti Cache

セキュリティの確保

  • データ保護

    • ELB, EBS, S3, RDS, KMS

  • 権限管理

    • IAM, MFA

  • インフラ保護

    • VPC

  • 検出制御

    • CloudTrail, CloudWatch, AWS GuardDuty, Amazon Inspector

ケーススタディ

Last updated