AWS Well-Architected フレームワークとは?
AWSを最適に使用するためには、AWSのベストプラクティスを参考にするのが良い方法です。AWSでは、現在まで多種多様な企業がAWSシステムを構築したときのベストプラクティスを「AWS Well-Architected フレームワーク」としてまとめています。今回はAWS Well-Architected フレームワークの基本と、フレームワークの5本の柱について解説します。
AWS Well-Architected フレームワークとは?
AWS Well-Architected フレームワークとは AWSを導入した企業のAWSシステムを評価するための一貫したベストプラクティスや、企業のAWSシステムが AWSのベストプラクティスにどれだけ準拠しているのかを評価するための質問集をまとめたものです。
AWS Well-Architected フレームワークの目的は、AWSでシステムを構築する際のメリットとデメリットをAWSを導入した企業担当者が理解し、AWSシステムを安全で、効率よく、かつ費用対効果が高く利用できるようにサポートすることです。
AWSの設計が進化していく過程で、顧客がAWSを実際に活用する事で、AWSのシステムが実際にどのくらいのパフォーマンスを発揮するのか、AWSを活用するために最も効率の良い方法は何かが分かってきます。そんなベストプラクティスをまとめたものがAWS Well-Architected フレームワークなのです。
AWS Well-Architected フレームワークはホワイトペーパーが公開されていて、AWSの設計の原則とベストプラクティスを確認できます。さらに、用意された質問に答えることで、自社の現在のAWSの設計・仕様がAWSを活用するために最も効率の良い方法に従っているのかを評価することができます。
フレームワークの5本の柱
AWS Well-Architected フレームワークを活用する事で、自社の現在のAWSの設計・仕様を評価して、自社の現在のAWSの設計・仕様が自社のビジネスに最適かどうか確認することができ、改善に向けて検討することができます。
AWS Well-Architected フレームワークは5本の柱でベストプラクティスをまとめています。5本の柱とは、システムを作成するときの基礎として必ず必要である、「運用上の優秀性」「セキュリティ」「信頼性」「パフォーマンス効率」「コスト最適化」です。
この5本の柱が疎かになっていると、意図した要件に従って稼働するシステムの構築が難しくなります。5本の柱が、AWSの設計・仕様に組み込まれることで、「運用上の優秀性」と「セキュリティ」がトレードオフにならず安定して効率的に動くシステムがつくられます。
2020年7月にAWS Well-Architected フレームワークが更新されました。ここでは『AWS Well-Architected フレームワーク2020年7月』のホワイトペーパーの中からフレームワークの5本の柱それぞれの、設計原則を紹介します。
設計原則とは、AWSをクラウド上で最適に設計するための原則になります。
運用上の優秀性
AWSクラウドでの「運用上の優秀性」には下記の5つの設計原則があります。
- 運用をコードとして実行する
運用手順をコード化することでコードをトリガーとしてイベントが自動的に実行されます。その結果、ヒューマンミスが抑制されシステムが効率的に運用されます。
- 小規模かつ可逆的な変更を頻繁に行う
変更は失敗した場合に元に戻すことができるように、小規模で行います。可能であれば、顧客には影響がないようにします。
- 運用手順を定期的に改善する
運用手順が最適であるかどうかを常に考えます。運用手順は定期的に改善できるように計画を立て、決まった日程ですべての運用手順が効果的に運用され、チームメンバーが運用手順を十分に理解していることを確認します。
- 障害を予想する
障害が考えられる原因を取り除いたり軽減できるように、原因を特定するための演習を実施します。具体的には障害が起こる予測シナリオに基づいてテストを実行してその影響を検証します。
障害に対する対応手順をテストして、手順が効果的であることを確認し、チームメンバーが対応手順を十分に理解していることを確認します。障害のシミュレーションに対してチームメンバーが対応できるかどうかを確認する日を定期的に設定します。
- 運用上のすべての障害から学ぶ
運用上のすべてのイベントと障害から教訓を学び、改善を促進し、チーム間だけでなく組織全体で教訓を共有します。
セキュリティ
AWSクラウドでの「セキュリティ」には下記の7つの設計原則があります。
- 強力なアイデンティティ基盤の実装
アイデンティティ管理を一元化して強力なアイデンティティ基盤を実装します。
- トレーサビリティの実現
使用環境に対して、リアルタイムで監視、アラート、トレーサビリティを実現します。ログとメトリクスの収集をシステムに統合して、自動的に調査します。
- 全レイヤーでセキュリティを適用する
複数のセキュリティコントロールを使用して深層防御アプローチを適用します
- セキュリティのベストプラクティスを自動化する
自動化されたソフトウェアベースのセキュリティメカニズムにより、より速く、より費用対効果の高いスケールが可能になります。
- 伝送中および保管中のデータの保護
データを機密性レベルに分類し、暗号化、トークン分割などによって伝送中および保管中のデータの保護を行います。
- データに人の手を入れない
データに直接アクセスしたりデータを手動で処理したりする必要を減らし、機密性の高いデータを扱う際の誤処理、変更、ヒューマンエラーのリスクを軽減します。
- セキュリティイベントに備える
組織の要件に合わせたインシデント管理および調査によってインシデントに備えます。インシデント対応シミュレーションを実行し、検出、調査、復旧のスピードを上げます。
信頼性
AWSクラウドでの「信頼性」には下記の5つの設計原則があります。
- 障害から自動的に復旧する
障害を発見するために主要指標をモニタリングし、しきい値を超えた場合にオートメーションをトリガーにします。これにより自動的に障害を通知および追跡することができ、障害を回避または修正する復旧プロセスも自動化できます。より複雑な自動化を使用すると、障害が発生する前に修正を予期できます。
- 復旧手順をテストする
クラウドでは、どのようにシステム障害が発生するかをテストでき、復旧の手順も検証できます。このアプローチでは、実際の障害シナリオが発生する前にテストおよび修正できる障害経路が公開されるため、リスクが軽減されます。
- 水平方向にスケールしてワークロード全体の可用性を高める
1つの大規模なリソースを複数の小規模なリソースに置き換えることで、単一の障害がワークロード全体に与える影響を軽減します。
- キャパシティーを推測することをやめる
クラウドでは、需要と使用率をモニタリングし、リソースの追加と削除を自動化することで、最適なレベルを維持できます。
- オートメーションで変更を管理する
インフラストラクチャに対する変更は、オートメーションを使用して実行する必要があります。
パフォーマンス効率
AWSクラウドでの「パフォーマンス効率」には下記の5つの設計原則があります。
- 最新テクノロジーの標準化
クラウドベンダーに委託して最新のテクノロジーを標準化できるようにします。専門知識が必要な高度で複雑なテクノロジーでも、クラウドではITチームメンバーが専門的に機械学習することなく、サービスとして使用できるかたちで提供されます。そうすることで、ITチームメンバーのリソースをテクノロジーの管理ではなく、製品の開発に使うことができるようになります。
- わずか数分でグローバル展開する
AWSでの作業は、最小限のコストで、遅延することなく使うことができます。AWSのサービスセンターは世界各地にあるので、世界中で快適に使用できます。
- サーバーレスアーキテクチャを使用する
サーバーレスアーキテクチャを使用することで、システムに必要な容量を、システム稼働時のみのコストで利用する事ができるため、サーバー容量を意識せず必要なサービスを利用でき、コストも削減できます。
- より頻繁に実験する
仮想的で自動化できるリソースを使うことで、異なるタイプの設定を使用した比較テストをより頻繁に実行できます。
- システムに対する精通の程度を考慮する
クラウドサービスの使用法を理解し、常にワークロードの目標に最適なテクノロジーアプローチを使用します。
コスト最適化
AWSクラウドでの「コスト最適化」には下記の5つの設計原則があります。
- クラウド財務管理の実装
コスト効率の高い組織になるには、セキュリティまたはオペレーションの能力と同様、知識を積み上る必要があります。そのためには、クラウド財務管理・コスト最適化に投資する必要があります。
- 消費モデルを導入
AWSでは、必要な費用のみを支払い、複雑な予測をすることなく、ビジネス要件に応じて使用量を増減できます。
- 全体的な効率を測定する
ビジネス成果とその実現にかかったコストを測定し生産性を向上させコストを削減することで得られる利点を把握します。
- 差別化につながらない高負荷の作業に費用をかけるのをやめる
AWSは、サーバー運用の高負荷作業を行うことでオペレーティングシステムやアプリケーションの管理に伴うオペレーション上の負担も解消されます。この結果、顧客やビジネスプロジェクトに集中できるようになります。
- 費用を分析および属性化する
システムの使用状況とコストを正確に特定し、分析することで、投資収益率(ROI)を把握できるため、リソースを最適化してコストを削減する機会が得られます。
まとめ
AWS Well-Architected フレームワークは、AWSを設計・構築するときや、運用している期間で活用する事ができます。AWS Well-Architected フレームワークを使って定期的にチェックすることで、自社のAWSシステムを最善に保つための課題を見つけることができます。AWS Well-Architected フレームワークを活用してベストプラクティスを理解した上での「ビジネス的な判断」をするために使ってほしいと思います。