AWS

AWS Well-Architected Framework の変更(2023年10月3日版)のまとめ

kame

こんにちは!
最近インフルに罹って以降体がギクシャクする、かめでございます。
このたび、2023年10月3日にAWS Well-Architected Frameworkが改訂されました。
今回は、この変更に関して見ていきたいと思います。

改訂履歴について

こちらのAWSの改訂履歴には、以下のアップデートについての記載がありました。

  • パフォーマンス効率の柱・・・大幅に再構築、ベスト プラクティス領域の数が5つとなった
  • セキュリティの柱・・・セキュリティインシデントを想定したプロセスに関わるSEC10が大幅に更新された
  • オペレーショナルエクセレンスの柱・・・OPS04, 05, 06, 08, 09の大幅な変更と統合が実施された
  • コスト最適化の柱、信頼性の柱・・・全体にわたってガイダンスが更新された
  • 持続可能性の柱・・・リスクレベルのマイナーアップデート

今回も、勉強がてら新旧AWS Well-Architected Frameworkの変更点を調査してみました。

ちなみに AWS Well-Architected Frameworkって何?って方は、前回ブログで軽く説明しているので、ご覧になってみてください。

それでは、次から各柱個別に変更点を見ていきたいと思いますが、今回は大きく変更のあった「パフォーマンス効率の柱」「セキュリティの柱」「オペレーショナルエクセレンスの柱」に対して変更点を見ていきたいと思います。

※なお、私の解釈で旧版と新版を紐付けて記載している物もありますが、必ずしも一致するものではないため、ご了承くださいませ。

変更点

パフォーマンス効率の柱

PERF01-BP01

小さな更新があります。

実装ガイダンスとして、サービスの理解に役立つコンテンツに関する解説が追加されています。

PERF01-BP02(旧版:PERF01-BP05)

小さな更新が有ります。

旧版に対応するものはPERF01-BP05で、順番が入れ替わっています。

実装ガイダンスとして、AWSやAWSパートナーにより提供されるガイダンスに参加し、ベストプラクティスを学ぶことについての具体的な方法に関して追記されています。

PERF01-BP03

小さな更新が有ります。

実装ガイダンスとして、コストをケアするための手順に関する解説が追加されています。

PERF01-BP04(旧版:PERF08-BP03)

小さな更新があります。

内容に関しては、ワークロードの要件やSLAを元に、概念実証(PoC)の実施も行いつつ、アーキテクチャに対するパフォーマンス、コスト、信頼性などのトレードオフ要因を評価すべし、という内容となっています。

具体的な実装ガイダンスと実装手順が追記され、わかりやすく整理されています。

一般的には、設計工程におけるトレードオフの判断は難易度が高い分野では有りますが、そういった点に関しても考慮することが求められています。

PERF01-BP05(旧版:PERF01-BP04)

小さな更新が有ります。

旧版に対応するものはPERF01-BP04で、順番が入れ替わっています。

実装ガイダンスとして、リファレンスアーキテクチャを利用して検証を行うための実装手順に関する解説が追加されています。

PERF01-BP06

小さな更新が有ります。

旧版新版とも、ワークロードのベンチマークに関する内容と言うことは変わらないのですが、旧版はベンチマークの実施自体にフォーカスが当たっていたのに対し、新版ではベンチマークの結果に応じてアーキテクチャ上の決定を行い、ワークロードへの調整、および再テストの実施を行うような記載となっています。

PERF01-BP07

新規追加されています。

タイトルは「アーキテクチャの選択にデータ駆動型のアプローチを使用する」となっています。

内容としては、ワークロードのパフォーマンスの評価に役立つパフォーマンス指標としての各種メトリクス(応答時間やスループット等)を可観測とした上で、実際のワークロードの実力値ベースでのアーキテクチャのパフォーマンスを正続的に改善していくようなものとなっています。

PERF02-BP01

記載が改訂されています。

内容の方向性としては旧版新版ともに「ワークロードに最適なコンピューティング オプションを選択する」方法についての記載となっていますが、新版では、そのコンピューティングオプションとしてAWS BatchとLightsailの利用に関する例が追加されており、また、CloudWatchやCompute Optimizerを利用して継続的に最適化する旨の内容となっています。

PERF02-BP02

大きな更新があります。

内容の方向性としては「利用可能なコンピューティング構成の理解」に関する物で大きく変わらないのですが、旧版はEC2/コンテナ/Lambdaワークロードそれぞれのボトルネックを特定するような実装ガイダンスの記載であったのに対し、新版ではより簡素な記載となり、インスタンスタイプの見直し、オートスケーリングの利用等に関することのみ触れられています。

旧版のほうが詳しくパフォーマンス効率の向上に関してのノウハウが記載されているようには見受けられますが、新版ではCompute Optimizerの利用に関する記述が追記されており、旧版では人力で判断していた部分を新版ではCompute Optimizerに任せるように更新された、という風にも見えます。

PERF02-BP03

小さな更新が有ります。

実装ガイダンスとして、コンピューティング関連のメトリクスを取得する方法として、メトリクスフィルターの利用や、メトリクスのアラームの利用に関する内容が追加されています。

PERF02-BP04

小さな更新が有ります。

内容としては、コンピューティングリソースのサイジングに関するもので大きな変更は有りませんが、実装ガイダンスとしてCloudWatch等の監視ツールを利用した上で適切にコンピューティングリソースの適正なサイジングを行うような記載に変更されています。

PERF02-BP05

記載が改訂されています。

内容としては旧版新版ともにコンピューティングリソースの動的な拡張(ようはオートスケール)に関する物ですが、新版では、オートスケーリングに関してどういったアプローチでスケールアップ/ダウンさせるか、の記載g熱い気されています。

PERF02-BP06

新規追加されています。

(旧版のBP06「メトリクスに基づいてコンピューティングのニーズを継続的に評価する」は先述のPERF01-BP07やPERF02-BP02にマージされているようです)

タイトルは「最適化されたハードウェアベースのコンピューティング アクセラレータを使用する」となっており、要件に応じてGPUやFPGA、機械学習用インスタンスの利用を検討すること、およびそれらの利用に関する実装・運用手順が記載されています。

PERF03-BP01

小さな更新が有ります。

内容の方向性としては、旧版新版共にストレージに関するものとなっていますが、新版では「データアクセス」に関する領域まで拡張されています。具体的には従来から解説のあったS3やEFS等のストレージサービスに加え、各種データベースに関しても要件の特性に応じた利用に関する解説が追加されています。

旧版のPERF04-BP01でデータベースの利用に関する同党の考慮事項が述べられており、それがこちらのBPにマージされているように見えます。

PERF03-BP02

小さな更新があります。

内容としてはストレージの利用オプションに関するベストプラクティスが述べられていますが、こちらもPERF03-BP01同様、各種データベースの利用時のオプションに関するベストプラクティス(キャッシュやスケーリングに関するもの等)が記載されています。

旧版のPERF04-BP02でデータベースの利用に関する同等の考慮事項が述べられており、それがこちらのBPにマージされているように見えます。

PERF03-BP03

小さな更新が有ります。

内容としてはストレージのパフォーマンスメトリクスの利用に関する物ですが、PERF03-BP01/PERF03-BP02同様、データベースの利用に関する領域まで拡張されています。

旧版のPERF04-BP03でデータベースの利用に関する同等の考慮事項が述べられており、それがこちらのBPにマージされているように見えます。

PERF03-BP04

新規となります。

タイトルは「データ ストアのクエリ パフォーマンスを向上させる戦略の実装」となっており、データストア利用時のクエリパフォーマンスを向上させるための実装手順、具体的にはデータのパーティショニングやインデックスの利用に関するもの、が記載されています。

PERF03-BP05

新規となります。

タイトルは「キャッシュを利用したデータ アクセス パターンを実装する」となっており、タイトルの通りキャッシュを利用する際の実装ガイダンス、実装手順が記載されています。

PERF04-BP01(旧版:PERF05-BP01)

実装ガイダンスの文章構成が変わっていますが、述べられている内容としては大きな変更は無いように見受けられます。

内容としては各種ネットワークサービスの特性とそれらのパフォーマンス要件に関する物です。

PERF04-BP02(旧版:PERF05-BP02)

実装ガイダンスの文章構成が変わっていますが、述べられている内容としては大きな変更は無いように見受けられます。

内容としては各種サービスのネットワーク関連の構成オプションに関する物です。

PERF04-BP03(旧版:PERF05-BP03)

小さな更新が有ります。

内容としては専用線接続もしくはVPN利用時のパフォーマンスに関する物ですが、実装手順おつぃて、DirectConnectやVPNの利用時のオプションの利用に関する内容と、それらの利用時の継続的な改善に関する内容が追記されています。

PERF04-BP04(旧版:PERF05-BP04)

実装ガイダンスの文章構成が変わっていますが、述べられている内容としては大きな変更は無いように見受けられます。

内容としてはロードバランサーの利用に関する物です。

PERF04-BP05(旧版:PERF05-BP05)

実装ガイダンスの文章構成が変わっていますが、述べられている内容としては大きな変更は無いように見受けられます。

内容としては利用するネットワークプロトコル(TCP/UDP/SRD等)に関する物です。

PERF04-BP06(旧版:PERF05-BP06)

実装ガイダンスの文章構成が変わっていますが、述べられている内容としては大きな変更は無いように見受けられます。

内容としてはエッジサービスやキャッシュ機構、AWS Outpostの利用に関する物です。

PERF04-BP07(旧版:PERF05-BP07)

実装ガイダンスの文章構成が変わっていますが、述べられている内容としては大きな変更は無いように見受けられます。

内容としてはネットワークに関するロギングサービスや監視サービスの利用に関する物です。

PERF05-BP01(旧版:PERF07-BP03)

小さな更新が有ります。

内容としてはワークロードのパフォーマンスに関連するKPIを確立すると行った内容ですが、実装手順において、よりワークロードの実情に沿った形でのKPIに関する運用となるよう、手順が改められているように見えます。特に、CloudWatchやConfig等のサービスを利用してKPIを測定するように明記されていることで、わかりやすさも向上しています。

PERF05-BP02(旧版:PERF08-BP01)

実装ガイダンスの文章構成が変わっていますが、述べられている内容としては大きな変更は無いように見受けられます。

内容としては各種ネットワークロギング・監視サービスの利用に関する物です。

PERF05-BP03(旧版:PERF06-BP01/PERF06-BP02)

小さな更新が有ります。

タイトルは「ワークロードのパフォーマンスを向上させるプロセスを定義する」となっており、内容としては新しいサービス、設計パターン、リソース タイプ、構成が利用可能になったときにそれらを評価するプロセスを定義することで、新しい製品に対する継続的なキャッチアップを行うといったことが記載されています。

新版では、実装ガイダンスとして具体的な実装手順が追加され、わかりやすさが向上しています。

ここで重要なのは、PERF05-BP01で定義されているKPIや、PERF05-BP02にて得られている各種ログ・メトリクスです。これらを前提として利用することで、新しいサービスに対する有効性の評価が適切に行えます。

PERF05-BP04(旧版:PERF01-BP07)

小さな変更があります。

内容としてはワークロードに対する負荷テストに関するもので、実装ガイダンスが整理されています。実装手順としてもより具体的に手順が判りやすく記載されています。

PERF05-BP05(旧版:PERF07-BP04?)

新規追加されています。

旧版のPERF07-BP04と似ているようですが、旧版はモニタリングを使用してアラームを上げることを対象としているのに対し、新版の本BPとしては、プロアクティブに問題を自動修復することに焦点を当てています。

自動修復となるとイメージが付きにくいですが、一つ考えられる例としては、新しいバージョンのデプロイに関してパフォーマンスが劣化したことがメトリクス等によって検知できた場合に、自動的にロールバックする、等のプロセスが考えられます。

PERF05-BP06(旧版:PERF06-BP01?)

旧版ではPERF06-BP01が内容的には近いと思いますが、記載の内容としては新規に近いものです。しかしながら、「ワークロードとサービスを最新に保つ」といった内容のBPは他の柱でも登場してくる物なので、新規と言えど目新しい物ではありません。

内容としては、AWSブログやRSSフィードから最新のニュースを購読し、新しい機能を評価するといった物になります。

PERF05-BP07(旧版:PERF07-BP05)

小さな更新が有ります。

内容としてはパフォーマンスに関するメトリクスを定期的に確認するという物ですが、実装ガイダンスとして具体的な実装手順が追記されています。

セキュリティの柱

SEC10-BP03

大幅な追記がなされています。

内容としてはフォレンジック機能の準備に関わる物ですが、それに関わるAWSサービスについて列挙され、また、詳細な実施形態としてフォレンジック用の組織単位(OU)およびアカウントを用意し、事前にフォレンジックに必要なデータをバックアップしておくことが求められています。

旧版のBPでは、ここまで具体的なアクションに関しての記載は無かったため、個人的には非常に参考となりました。

SEC10-BP04

新規追加されています。

タイトルは「セキュリティ インシデント対応プレイブックの開発とテスト」となっています。

内容としてはセキュリティインシデント発生時の運用手順(プロセス)を記したプレイブックをどう作成するべきか、また作成されたプレイブックに対するテストに関しての解説となっています。

SEC10-BP06

小さな更新が有ります。

内容としては、セキュリティインシデント発生時の調査や復旧のために事前展開しておくべきツールについての記載となっておりますが、実装ガイダンスがより具体的となり、実装手順も追記されています。

SEC10-BP08

新規追加されています。

タイトルは「インシデントから学ぶためのフレームワークを確立する」となっています。内容としては、インシデントから得られる教訓や、根本原因を分析することでインシデントの再発防止に役立てるためのプロセス(フレームワーク)を確立することについて述べられています。

オペレーショナルエクセレンスの柱

OPS04-BP01(旧版:OPS09-BP01)

小さな更新が有ります。

旧版ではOPS09に定義されており、OPS04への統合がなされています。内容としても実装ガイダンスが詳しく追記されており、判りやすくなっています。

OPS05-BP03

小さな更新が有ります。

内容としてはGitに代表される構成管理システムの利用に関する物ですが、具体的な実装例として実施ガイダンス、実装手順が追記されています。

OPS05-BP04

小さな更新が有ります。

内容としてはCI/CDパイプラインの利用に関する物ですが、実施ガイダンスおよび実装手順としてCodeBuildやCodePipeline等を利用しての具体例についての記載が追記されています。

OPS05-BP05

小さな更新が有ります。

内容としてはセキュリティパッチ等のパッチ管理に関する物ですが、実施ガイダンスおよび実装手順としてEC2 Image BuilderやSSMパッチマネージャーを利用しての具体例についての記載が追記されています。

OPS06-BP01

小さな更新が有ります。

内容としてはデプロイ失敗に備えた計画に関する物ですが、実施ガイダンスおよび実装手順として具体的な方法が追記されています。

OPS06-BP02

大幅に更新されています。

タイトルは「テスト展開」で、内容としては検証環境等を利用することにより、本番環境と同じ構成でリリース手順をテストすることが述べられています。

実施ガイダンスとしても、IaCおよびCI/CDパイプラインを利用しての検証環境利用に関するに内容が記載されています。

OPS06-BP03(旧版:OPS06-BP04)

大幅に更新されています。

タイトルは「安全な導入戦略を採用する」で、新規に近いですが、旧版では「OPS06-BP04 限定された展開を使用したテスト」に当たる物と思われます。

内容としては、機能フラグ、カナリアリリース、ローリングデプロイ、B/Gデプロイ等の戦略を利用しての無停止で安全にデプロイを実行するための方法に関して解説されています。

OPS06-BP04(旧版:OPS06-BP08)

大幅な追記がなされています。

内容としては、テストとロールバックの自動化に関する物ですが、新たに望ましい結果としてCI/CDパイプラインを利用することが挙げられています。

またアンチパターンとしての具体的な例が数多く追記され手います。

実装ガイダンスとしても、具体的な実装手順として、CI/CDパイプラインを利用した自動テスト、回帰テスト、機能フラグテストなどの実行を行うことが追記されています。

OPS08-BP01(旧版:OPS08-BP02)

小さな更新があります。

実装ガイダンスが整理されて記載されていますが、Amazon DevOps Guruの利用に関しても追記されています。

OPS08-BP02(旧版:OPS08-BP03)

小さな更新があります。

実装ガイダンスが整理されて記載されていますが、CloudWatch Contributor InsightsやCloudWatch Insights, CloudWatch Logs メトリクスフィルターの利用に関しても追記されています。

OPS08-BP03

新規追加となります。

タイトルは「ワークロード トレースの分析」となっており、内容としては、AWS X-Ray、DevOps Guru、CloudWatch Synthetics, CloudWatch RUMを利用した分散トレース、リアルユーザモニタリング、合成モニタリングなどの複合的なモニタリングを用いて分析することが推奨されています。

OPS08-BP04(旧版:OPS08-BP06, OPS08-BP07)

大幅に更新されています。

タイトルは「実用的なアラートの作成」となっており、内容としては、KPIに基づいてアラートが作成されるということが求められています。

旧版であると、OPS08-BP01にてKPIを明確にすることが求められていたものの、アラートとしてはそのKPIに基づく物べきであることが明示的に示されていませんでした。今回の更新により、KPIに基づいた異常値を設定することで、今までは曖昧であった異常値の決め方が明確になったと感じます。

OPS08-BP05(旧版:OPS08-BP08)

大幅に更新されています。

旧版ではGrafana等の可視化ツールを利用してKPIとメトリクスの関係性を可視化することが述べられていましたが、新版ではより一般的なCloudWatchダッシュボードを利用して、前述の各種メトリクスとKPIとの関係性を可視化することが推奨されています。

OPS09-BP01(旧版:OPS09-BP01, OPS09-BP02, OPS09-BP03, OPS09-BP04)

大幅に更新されています。

タイトルは「メトリクスを使用して運用目標と KPI を測定する」となっており、内容としては、ビジネスサイドを含めた関係者と一緒に、サービスの全体的な目標値を決定し、それを元に各チームのタスクの洗い出しや、課題への対策を行うことが推奨されています。

元は複数のBPに分けられて記載されていた内容が纏まったというのもありますが、今回はプロジェクト全体としてのプロセスとしてのアクションが求められているように見受けられます。

OPS09-BP02(旧版:OPS09-BP05, OPS09-BP06, OPS09-BP07)

大幅に更新されています。

タイトルは「ステータスと傾向を伝達し、運用の可視性を確保します」となっており、内容としては、ダッシュボードやステータスページを利用し、関係者およびユーザーに対して、システムの健全性に関する情報を通知するといったものになっています。

旧版はアラートを用いた異常検知の把握する程度範囲にとどまっていたのに対し、新版ではそれを関係者やユーザーが知ることが出来るところまで拡張されています。

OPS09-BP03(旧版:OPS09-BP08)

少し大きな更新がなされています。

タイトルは「運用指標を確認し、改善の優先順位を付ける」となっており、これまでに得られた運用指標やKPIを元に、将来に向けての改善の優先順位を付けると言った内容となっています。

旧版は、成果の達成とKPIの見直しにスコープが当てられていたのに対し、新版では、得られた指標を元に、設計やプロセスを改善していくことに焦点が当てられています。

まとめ

全体的にですが、

  • ガイダンスや実装手順が詳しく整備されている
  • 冗長だったBP構成も統合されて判りやすく再構成されたものもある
  • 従来のサービスでは手動だった手順をAWSサービスを利用する事で自動化・省力化

といったような変更になっており、従来よりも対策のしやすさが向上したなと感じています。

このように改訂のたびに使いやすく改善されていったりもするので、積極的にWell-Architected Frameworkを利用して、より良いアーキテクチャの設計を目指しましょう!

参考:新旧AWS Well-Architected Frameworkのリンク

AUTHOR
kame
kame
記事URLをコピーしました