更新されたAWS Well-Architected Frameworkを読んでみた

AWS運用自動化サービス「Cloud Automator」

はじめに

PS課OJT中の谷内です。

2018年11月にAWS Well-Architected Frameworkホワイトペーパー(日本語版)の内容が更新・公開されました。
早速、新卒を含む有志メンバーにて社内輪読会を行いましたので、今回はその内容について簡単に報告したいと思います。

AWS Well-Architected Frameworkについて

AWS Well-Architected Frameworkは、AWS上の設計や運用に関するベストプラクティス集です。
長年の経験から導かれたベストプラクティスと比較することで、よりセキュアで信頼性・効率・コスト効果が高いクラウドシステムを設計・運用することができます。

具体的には、互いにトレードオフの関係にある以下のの5つの柱から構成されており、それらの設計の原則およびベストプラクティスを学ぶことができます。
また、それぞれの柱に関する質問・解答も用意されており、自身のシステムがベストプラクティスに沿うかどうか効率的に確認することができます。

  1. 運用上の優秀性
  2. セキュリティ
  3. 信頼性
  4. パフォーマンス効率
  5. コスト最適化

このホワイトペーパーですが、AWS入門編に分類されていることもあり、基本的な内容が目立ちます。
もちろん、理解しづらい箇所も多少ありますが、全く手が出せないほど難しいという訳ではないため、新卒メンバーが勉強するには非常に良い教材だと思いました。

それでは、簡単にではありますが5つの柱について以下にまとめます。
(ボリュームが多くなりすぎるため、設計の原則に関する説明は割愛しております)

運用上の優秀性

2016年11月版のホワイトペーパーでは、『運用性』は5つの柱の最後に位置付けられていましたが、今回の更新でホワイトペーパーの構成が変更され、一つ目の柱となりました。
クラウド利用が世界的に拡大したことで、現在はクラウドシステム導入というよりもむしろ導入後の運用をAWSが重要視し始めたことが伺えます。

本セクションでは、クラウドシステムの運用、具体的にはシステムのモニタリングやそれらをサポートするプロセスの継続的な改善に焦点を当てています。
主要なトピックとして、システムの標準化と変更管理、運用自動化、障害予測と対応手順のテストが挙げられます。

運用に関する6つの設計の原則と3つの分野におけるベストプラクティスは以下となります。

# 設計の原則

  • 運用のコード化
  • ドキュメントへの注釈
  • 高頻度で小規模な可逆的変更
  • 運用手順の頻繁な更新
  • 障害の予測
  • 運用上の失敗の改善

# ベストプラクティス

  • 準備 
    • AWS CloudFormationによるテンプレートベースな方法、AWS Configを用いたシステム標準に準拠しているかのチェック等、運用の優秀性を実現するための効果的な準備方法が説明されています。
  • 運用
    • 適切なシステム運用方法や効果的な運用イベントの管理について述べられており、特にAmazon CloudWatchを利用したシステムの運用状態のモニタリング、CloudTrail等によるロギング等が重要視されています。
  • 進化
    • 運用上の優秀性を維持するために重要な運用進化の方法について述べられています。運用進化にとって不可欠なログ分析には、Amazon Elasticsearch Serviceを利用することができます。

セキュリティ

本セクションでは、情報・システム保護に焦点を当てています。
主要なトピックとして、アクセス権限の管理、システムに対する変更等の監視、データ保護、セキュリティイベントに対する準備・対応が挙げられます。

セキュリティに関する7つの設計の原則と5つの分野におけるベストプラクティスは以下となります。

# 設計の原則

  • 強固な認証基盤の整備
  • 追跡可能性の実現
  • 全レイヤーへのセキュリティ適用
  • セキュリティのベストプラクティス自動化
  • 転送中および保管中のデータの保護
  • データに人を近づけない
  • セキュリティイベントに対する準備

# ベストプラクティス

  • アイデンティティとアクセス管理
    • IAMによるAWSサービス・リソースへのアクセスコントロールが重要となります。
  • 発見的統制
    • CloudTrailを用いたAPIコールの記録やAmazon GuardDutyによる不正操作の検出等により発見的統制を実現することができます。
  • インフラストラクチャ保護
    • インフラストラクチャの保護には、多層防御が重要となります。DDos攻撃を緩和するAWS ShieldとAmazon CloudFrontとの統合、AWS WAF等が紹介されています。
  • データ保護
    • データ暗号化機能(Amazon EBS・S3・RDS等)、機密データの自動検出・保護サービス(Amazon Macie)、暗号化キーの作成・管理サービス(AWS KMS)等が重要となります。
  • インシデント対応
    • 効果的なインシデント対応を促進するための方法、例えばロギング機能の使用、APIと連携した自動処理、AWS CloudFormationによるテスト・検証用の環境構築等が紹介されています。

信頼性

本セクションでは、インフラ障害からの迅速な復旧、設定ミスやネットワーク問題等の障害の軽減・防止に焦点を当てています。
主要なトピックとして、自動的に復旧可能なシステム設計、復旧計画の検証、復旧プロセスの自動化と変更管理が挙げられます。

信頼性に関する5つの設計の原則と3つの分野におけるベストプラクティスは以下となります。

# 設計の原則

  • 復旧手順のテスト
  • 障害からの自動的な復旧
  • 水平方向のスケールによる総合的なシステム可用性の向上
  • キャパシティを勘に頼らない
  • 自動化の変更管理

# ベストプラクティス

  • 基盤
    • AWSが十分なネットワーク帯域やコンピューティング性能を用意する責任を負っていること、過剰なプロビジョニングを防ぐため各AWSリソース数の制限を設定していること等が説明されています。
  • 変更管理
    • AWS CloudTrailによるAPIコールの記録と監査用ログファイルの送信、AutoScalingを用いたワークロードの需要管理の自動化、CloudWatchにおけるアラート送信機能等が変更管理に関連するサービスとして紹介されています。
  • 障害管理
    • モニタリングデータに対して自動化されたアクションの設定ができること、新しいリソースに置き換えることにより本番環境外で障害を分析できること等が説明されています。

パフォーマンス効率

本セクションでは、コンピューティングリソースの効率的な使用とその維持に焦点を当てています。
主要なトピックとして、システムに最適なソリューションの選択、パフォーマンスのモニタリングと効率の改善が挙げられます。

パフォーマンス効率に関する5つの設計の原則と4つの分野におけるベストプラクティスは以下となります。

# 設計の原則

  • 最新テクノロジーの標準化
  • 迅速なグローバル化の実現
  • サーバーレスアーキテクチャの使用
  • 実験頻度の増加
  • 適合したテクノロジーアプローチ

# ベストプラクティス

  • 選択
    • 主要な4つのリソースタイプ(コンピューティング、ストレージ、データベース、ネットワーク)のパフォーマンス効率について説明されています。
  • レビュー
    • AWSでは、新しいリージョン、サービス、機能等の定期的なリリースによるパフォーマンス効率の改善が期待できます。
  • モニタリング
    • CloudWatchのモニタリングとアラーム送信機能を用いたパフォーマンス効率の改善について説明されています。
  • トレードオフ
    • Amazon ElastiCacheやCloudFrontを利用することでパフォーマンス効率が向上する一方で、システムはより複雑になります。このトレードオフを考慮した最適なアプローチの選択が重要となります。

コスト最適化

本セクションでは、最もコストを抑えたシステムによるビジネス価値の実現に焦点を当てています。
主要なトピックとして、コスト削減、発生する費用の把握と分析が挙げられます。

コスト最適化に関する5つの設計の原則と4つの分野におけるベストプラクティスは以下となります。

# 設計の原則

  • 消費モデルの導入
  • 全体的な効率の評価
  • データセンター運用費の排除
  • 支出の分析と帰属
  • 所有コストを削減するためのマネージドサービスとアプリケーションサービスの使用

# ベストプラクティス

  • コスト効率に優れたリソース
    • 最適なインスタンスとリソースを使用したシステム設計がコスト削減には不可欠です。ここでは、Trusted Advisorを用いたAWS環境の最適化、Amazon Auroraを使用したライセンスコストの排除等が紹介されています。
  • 需要と供給の一致
    • 需要に合ったリソースを自動的にプロビジョニングすることが、コストを最小限に抑える上で重要となります。AWSでは、AutoScalingを用いることで需要の変動に自動的に対応することが可能です。
  • 費用の把握
    • 費用を明確に把握することは、効率的なリソース使用を促し、無駄の削減に役立ちます。AWSでは、Cost Explorerにより支出の追跡と内訳を把握できます。また、AWS Budgetsを用いることでコストが閾値を超えた場合の通知を受け取ることができます。
  • 継続した最適化
    • AWSの新しいサービス・機能のリリースにより、コスト効率を改善することができます。特に、大幅なコスト削減が可能になるケースがよくあるため、新たなマネージドサービスの確認が推奨されています。

さいごに

今回はかなり簡略化した内容をお届けしましたが、いかがでしたでしょうか?

ホワイトペーパーを全て読むのはなかなか大変だと思いますので、今回のブログが少しでも役立てば、嬉しく思います。
もう少し詳しく知りたいと思う方は、まずはホワイトペーパーに記載されている各セクションの質問とその解答を見てみると良いかもしれないですね。

AWS運用自動化サービス「Cloud Automator」