2023年入社の佐藤です。現在、AWS Certified Cloud Practitioner (CLF)取得に向けて励んでおります。
今回は、僕の苦手な分野であるWell-Architected Frameworkを徹底解剖していきます。
我々はWell-Architected Frameworkの真相を知るべく、アマゾンウェブサービスの奥地へと向かった...。
Well-Architected Frameworkとは
AWS Well-Architected Framework では、クラウド上でワークロードを設計および実行するための主要な概念、設計原則、アーキテクチャのベストプラクティスについて説明しています。いくつかの基本的な質問に答えると、アーキテクチャでクラウドのベストプラクティスがどの程度実践できているかを知り、改善のためのガイダンスを得ることができます。
引用 : https://aws.amazon.com/jp/architecture/well-architected/?wa-lens-whitep…
となっております。要はプロジェクトでAWSを使いこなしてもらうために、身に着けて欲しい考え方、使い方をまとめたものです。
Well-Architected Frameworkには重要な「柱」というものが6本あります。鬼滅の刃みたいなもんですね。それがこちら。
- 運用上の優秀性
- セキュリティ
- 信頼性
- パフォーマンス効率
- コスト最適化
- 持続可能性 (New!!)
柱には各々設計原則があり、柱をさらに細かい要素に分けています。
今回は公式の全ての設計原則、定義を噛み砕いてわかりやすくしていこうと思います!
1. 運用上の優秀性
開発をサポートし、ワークロードを効率的に実行し、運用に関するインサイトを得て、ビジネス価値をもたらすためのサポートプロセスと手順を継続的に改善する能力。
設計原則は以下の5つ
- 運用をコードとして実行する
- 小規模で可逆的な変更を頻繁に実施する
- 運用手順を頻繁に改善する
- 障害を予想する
- 運用上のあらゆる障害から学ぶ
引用 : https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/operational-ex…
運用上の優秀性は「開発から運用/保守までのシステムのライフサイクルを効率的に回すための柱」です。設計原則では実装の話からシステムの修正まで実施し続ければならないことが挙げられています。
試験問題の「サービス中断からの回復」「需要に応じたコンピューティングリソースを動的に取得」は「開発から運用/保守までのシステムのライフサイクルを効率的に回すこと」を指していないので2.運用上の優秀性は不正解です。
2. セキュリティ
データ、システム、資産を保護して、クラウドテクノロジーを活用してセキュリティを強化する能力。
設計原則は以下の7つ
- 強力なアイデンティティ基盤を実装する
- トレーサビリティの実現:
- 全レイヤーでセキュリティを適用する
- セキュリティのベストプラクティスを自動化する
- 伝送中および保管中のデータを保護する
- データに人の手を入れない
- セキュリティイベントに備える
引用 : https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/security-pilla…
セキュリティはそのままなので割愛。
3. 信頼性
意図した機能を期待どおりに正しく一貫して実行するワークロードの能力。
設計原則は以下の5つ
- 障害から自動的に復旧する
- 復旧手順をテストする
- 水平方向にスケールしてワークロード全体の可用性を高める
- キャパシティーを推測することをやめる
- オートメーションで変更を管理する
引用 : https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/reliability-pi…
信頼性は、「可用性(信頼性)を高めるための柱(可用性に最も重点を置いた柱)」です。システムダウンしないように、したとしてもいち早く復旧するための設計原則があります。
試験問題の「サービス中断からの回復」「需要に応じたコンピューティングリソースを動的に取得」は「可用性を高めること」を指しているため、4番が正解。
4. パフォーマンス効率
システムの要件を満たすためにコンピューティングリソースを効率的に使用し、要求の変化とテクノロジーの進化に対してその効率性を維持する能力。
設計原則は以下の5つ
- 高度なテクノロジーを誰でも使えるようにする
- 数分でグローバルに展開する
- サーバーレスアーキテクチャを使用する
- 実験の頻度を高める
- メカニカルシンパシーを検討する
引用 : https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/performance-ef…
この柱が一番理解が難しいと思ってます。「パフォーマンス効率」という言葉から、「リソースのコストパフォーマンス」などをイメージしてしまうかもしれません。しかし、この柱は「開発のパフォーマンスを効率化すること」を意味しています。
例を挙げると、「2.数分でグローバルに展開する」では、サーバーを注文して設置して...みたいな工程をすっ飛ばしてすぐ開発に入れることでパフォーマンスを上げるよ。といった具合ですね。
試験問題の「サービス中断からの回復」「需要に応じたコンピューティングリソースを動的に取得」は「開発のパフォーマンスを効率化すること」を指していないので1.運用上の優秀性は不正解です。
5. コスト最適化
最低価格でビジネス価値を実現するシステムを実行できる能力
設計原則は以下の5つ
- クラウド財務管理を実装する
- 消費モデルを導入する
- 全体的な効率を測定する
- 差別化につながらない高負荷の作業に費用をかけるのをやめる
- 費用を分析し帰属関係を明らかにする
引用 : https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/cost-optimizat…
コスト最適化は、「要件を満たすことのできる最小限のコストで実装するための柱」です。「要件を満たすことのできる」が重要で、なんでもかんでも安ければいいというわけではありません。安くても処理に長く時間がかかってしまえばそれはコストが高いという考え方になります。
試験問題の「サービス中断からの回復」は「要件を満たすことのできる最小限のコストで実装すること」を指していないので3.コスト最適化は不正解です。
6. 持続可能性(サステナビリティ)
お客さまのビジネスが環境、経済、社会に与える長期的な影響を解決する能力。
設計原則は以下の6つ
- 影響を理解する
- 持続可能性の目標を設定する
- 使用率を最大化する
- より効率的なハードウェアやソフトウェアの新製品を予測して採用する
- マネージドサービスを使用する
- クラウドワークロードのダウンストリームの影響を軽減する
引用 : https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/sustainability…
持続可能性は「プロジェクトの周りへの影響に配慮し、長期的にプロジェクトを続けていくための柱」です。勘違いしやすい点としては「持続可能性」「環境」というワードを見るとどうしてもSDGsのような地球環境のみの話なのかと思ってしまいます。しかし、持続可能性の柱は地球環境以外にも、顧客や社会といった環境への影響も含んでいます。
佐藤流問題を解く時のコツ
僕は6つの柱の概要を理解することでサンプル問題等の正答率がグッと上がりました(本ブログで太字にした部分)。
皆さんが試験会場から笑顔で出てこられるのを願っています!
徹底解剖終わり。