はじめに

こんにちは、ENKです。

 

クラウドプリセールス事例紹介シリーズとして、当社のクラウドに関する取り組みの一端を紹介させていただければと思います。ある程度クラウドの知識を持っている方に向けた内容になりますので、予めご了承ください。

 

第二回目は、昨今ではクラウドサービス利用時に必須要件とされることを多く見かける「AWS Well-Architectedフレームワーク(以降「W-A」と略す)」をテーマにした記事になります。ちなみに私は「Well-Architected Lead」の認定を受けていますので、ある程度の価値は皆さまに提供できるかと思います。

 

W-Aレビューは様々なタイミングでの実施などが多いと思いますが、ご自身で実施する場合は、主にアーキテクチャ設計工程などで、ある程度のシステム構成が見えてきた段階で非機能要求事項とW-Aの設計原則および6本の柱の質問/ベストプラクティスと突き合わせしつつ、考慮漏れ等が無いように細かくチェックすることは実際の現場で行うことと思います。本記事では、各柱に記載されるベストプラクティスに準拠したクラウドを利用する際の基本的な設計方針を提示し、実際に非機能検討していく際のポイントをお伝えしたいと思います。W-Aのそれぞれの項目には色々難しいことが書いてありますが、主に対応すべきことは何かを中心に整理しましたので、W-Aレビュー実施前の設計方針策定や、レビュー後の指摘対応などに役立てていただければと考えています。

目次

  1. AWS Well-Architected フレームワークとは
  2. W-Aの対応項目を考える
  3. 対応結果をお客様に共有しよう
  4. 改善サイクルで良くしよう
  5. まとめ
  6. Appendix

1. AWS Well-Architected フレームワークとは

AWS曰く、W-Aは以下のように語られています。

「クラウドアーキテクトがさまざまなアプリケーションやワークロード向けに高い安全性、性能、障害耐性、効率性を備えたインフラストラクチャを構築する際に役立ちます。W-A では、6 つの柱 (優れた運用効率、セキュリティ、信頼性、パフォーマンス効率、コストの最適化、持続可能性) に基づいて、お客様とパートナーがアーキテクチャを評価し、スケーラブルな設計を実装するための一貫したアプローチ」とされています。


 

この内容の本質はAWSを用いた際の非機能要求対応に重きを置いたベストプラクティス集であり、このツールを使うことで、AWSのクラウドを賢く使うためのノウハウをITシステムに組み込むことが効率的にできるので、システム価値向上に直結させることができます。また、ベストプラクティスを知ることで、リスクや改善点を顕在化させることにも利用することができます。

尚、本記事で語る非機能要求とは、皆さんお馴染み?のIPA(独立法人 情報処理推進機構)から提供されている「非機能要求グレード」です。これを参考に対応関係を整理すると完全一致ではありませんが下表のようになります。W-Aは従来の非機能検討手法の延長で参考に出来る部分が多くあり、このように整理すると初見の方でも利用イメージが湧き、具体的な利用シーンになるのか分かり易くなるのではないでしょうか。
尚、フレームワークの柱の一つであるコスト最適化に関するものは非機能要求グレードで定義されていませんが、システム価値を費用対効果で考えるには全項目共通して意識する内容になります。


 

IPA 非機能要求グレード項目

対応する主なフレームワークの柱

可用性

信頼性

性能・拡張性

パフォーマンス効率

運用・保守性

運用上の優秀性

移行性

N/A(別ページの「移行向けアークテクチャのベストプラクティス」を参照し対応)

セキュリティ

セキュリティ

システム環境・エコロジー

サステナビリティ

※本書では他のServerless Lens等に関しては割愛しています。

2. W-Aの対応項目を考える

私がシステム要件定義工程に参画し、システムインフラ(いわゆる基盤系)の検討タスクに着手する場合、前述のIPAの非機能要件グレードを用いて、お客様の非機能要求のヒアリングおよび実装方式の検討を進めていくことが多く、その進め方に準じた検討方法を一例としてご紹介します。ここでは非機能要件グレード表とW-Aとの対応項目(質問事項を含め)を1:1で比較して大公開したほうが、みんな幸せになるのでは?と思うものの、非常に膨大なものになりますので中項目レベルの内容に留めさせていただきました。
まず、話を進める前に前提となる知識はW-Aで謳われる設計原則です。この原則から各定義およびベストプラクティスに繋がっていく話になりますので、ご留意ください。
 

クラウドの一般的な設計原則
クラウド上における設計の共通的な考え方になります。どのフレームワークの柱も、この考え方が中心になっているので、ここから派生した作りになっています。

設計原則

設計要約

必要キャパシティーの推測が不要

自動的にキャパシティー確保するサービスを積極的に利用する設計

本稼働スケールでシステムをテストする

キャパシティー制御が容易であるので、本番以外の環境でも本番同等の負荷試験など実施可能であるため、効率的なテストが可能な設計

⾃動化によってアーキテクチャでの実験を容易にする

IaC(Infrastructure as Code)などで環境構築が即座に可能なため、実環境以外に環境複製が容易に再現テストなど可能にする設計

発展するアーキテクチャが可能

ビジネス進化に応じて設計変更が可能なシステム構成に向けた設計

データに基づいてアーキテクチャを進化させる

IaCなどでインフラを構築している場合、アプリケーションと同様に改善を進めるように設計

ゲームデーを利用して改善

突発的なイベントでの対応では無く、普段からイベントをシミュレートして有事に備える設計

また、次節より非機能要件グレードの中項目に関して、「必須」もしくは「お勧め」として対応要否のレベルを記載しております。読み方はW-Aの質問に対して何らかの対応を1つ以上は必ず実装していただきたいのが「必須」、内容が組織論などが含まれ対応が直ぐには出来ないと思わるものは「お勧め」として内容を記載しています。

2.1. 可用性

非機能要件グレードの「可用性」は、W-Aでは「信頼性の柱(13の質問)」に、概ね該当します。質問に回答していく前に以下の信頼性の設計原則を考慮し、非機能要求事項に対する対応方針を検討します。

信頼性の設計原則

  • 障害から自動的に復旧する
  • 復旧手順をテストする
  • 水平方向にスケールしてワークロード全体の可用性を高める
  • キャパシティーを推測することをやめる
  • オートメーションで変更を管理する
     

W-A質問

非機能要件グレード中項目

検討アプローチ

継続性

耐障害性

災害対策

回復性

REL 1.
サービスクォータと制約はどのように管理しますか?
 

(必須)
サービス毎のクォータを考慮し、制限によりシステム稼働の妨げにならないように、利用する十分な値を予め確保する

REL 2.
ネットワークトポロジをどのように計画しますか?

(必須)
十分なVPC CIDRや他NW間接続の冗長性の確保する

REL 3.
どのようにワークロードサービスアーキテクチャを設計すればよいですか?

(お勧め)
アプリケーションをモダナイズ化し、継続性や回復性を確保する

REL 4.
障害を防ぐために、分散システムの操作をどのように設計しますか?

(必須)
マネージドサービス利用を前提に機能を疎結合にする仕組で障害箇所や範囲を極小化する

REL 5.
障害を緩和または耐えるために、分散システムの操作をどのように設計しますか?
 

(お勧め)
タイムアウト時のリトライ処理、ワークロードオーバー時のアクセス制限などで、障害発生を未然に防ぐ措置を講じる

REL 6.
ワークロードリソースをモニタリングするにはどうすればよいですか?

(必須)
監視/通知/結果分析はシステム価値の計測などの観点で対応をする

REL 7.
需要の変化に適応するようにワークロードを設計するには、どうすればよいですか?

(必須)
自動スケールアウト/インをシステム動作に組み込みや、スケールアップ/アウトの対応をする

REL 8.
変更はどのように実装するのですか?

(お勧め)
可用性を維持し変更を加える仕組み(CI/CD等)は運用性向上にも直結するため可能な限り組み込む

REL 9.
データはどのようにバックアップするのですか?

(必須)
マネージドサービスを利用した確実かつ自動化した取得方法で対応する

REL 10.
ワークロードを保護するために障害分離をどのように使用しますか?

(必須)
マルチAZ対応およびバックアップデータの保全(S3に保管等)を実施する

REL 11.
コンポーネントの障害に耐えるようにワークロードを設計するにはどうすればよいですか?

(必須)
REL4,10と同様の対応とし、障害によるシステム停止時間を最小化の対応をする

REL 12.
どのように信頼性をテストしますか?

(必須)
運用中にゲームデーなどの実施は難しいケースが多いが開発中のテストを組み込む

REL 13.
ディザスタリカバリ (DR) はどのように計画するのですか?

(お勧め)
マルチAZ対応以上のDRが必要なシステムの場合は検討する

2.2.性能・拡張性

非機能要件グレードの「性能・拡張性」は、W-Aでは「パフォーマンス効率の柱(8の質問)」に概ね該当します。こちらの設計原則は以下のとおりです。サーバーキャパシティ単位での従来の性能確保ではなく、クラウドの柔軟な拡張性を活用する性能確保の視点で見ていく内容になります。
 

パフォーマンス効率の設計原則

  • 最新テクノロジーを誰もが利用できるようにする
  • わずか数分でグローバル展開する
  • サーバーレスアーキテクチャを使用する
  • より頻繁に実験する
  • メカニカルシンパシー(システムやサービスを利用する際に、最も効率的に利用可能な状態のこと)を重視する
     

W-A質問

非機能要件グレード中項目

検討アプローチ

業務処理量

性能目標値

リソース拡張性

性能品質保証

PERF 1.
どのように最良パフォーマンスのアーキテクチャを選択するのですか?

(必須)
リソース自動拡張および冗長化を念頭に、コスト効率が良いシステム構成を検討す

PERF 2.
コンピューティングソリューションはどのように選択するのですか?

同上

PERF 3.
ストレージソリューションをどのように選択していますか?

同上

PERF 4.
データベースソリューションをどのように選択していますか。

同上

PERF 5.
どのようにネットワーキングソリューションを選択するのですか?

同上

PERF 6.
ワークロードを進化させるためにどのように新機能を取り込んでいますか?

同上

PERF 7.
リソースが稼働していることを確実にするためのリソースのモニタリングはどのように行いますか?

(必須)
パフォーマンス監視結果から改善のための情報収集は必須実装として組み込む

PERF 8.
トレードオフをどのように使用するとパフォーマンスが向上するのですか?

(お勧め)
シビアな要求の場合、守るべき対象の明確化と処理最適化の対応をする

2.3. 運用・保守性

非機能要件グレードの「運用・保守性」は、W-Aでは「運用上の優位性の柱(11の質問)」に概ね該当します。こちらの設計原則は以下のとおりです。システム運用はシステム自体の価値を向上させていくための重要なプロセスになるので、W-Aのベストプラクティスに積極的に寄せていくことが重要です。ただW-Aに記載される内容は、かなり理想的な状態であるため、既に多くのシステム運用を行っているお客様に対しては直ぐに適用できないケースあるので、システム運用の改善プロセスの中で徐々に適用していくといった手法が現実的な対応になるかと思います。

運用上の優位性の設計原則

  • 運用をコードとして実行する
  • 小規模かつ可逆的な変更を頻繁に行う
  • 運用手順を頻繁に改善する
  • 障害を予想する
  • 運用上の障害すべてから学ぶ

W-A質問

非機能要件グレード中項目

検討アプローチ

運用時間

保守運用

障害時運用

運用環境

サポート体制

その他の運用管理方針

OPS 1.
優先順位はどのように決定すればよいでしょうか?

(お勧め)
運用環境の利害関係を把握することで、適切な運用環境を提供する

OPS 2.
ビジネスの成果をサポートするために、組織をどのように構築しますか?
 

(お勧め)
システムオーナーへの状況報告などの仕組みを確立する

OPS 3.
組織の文化はビジネスの成果をどのようにサポートしますか?

同上

OPS 4.
どのようにワークロードを設計して、その状態を理解できるようにするのですか?

(必須)
稼働中のシステムから得られる情報は可能な限り収集し、分析して改善に繋げるための対応をする

OPS 5.
どのように欠陥を減らし、修正を容易にして、本番環境へのフローを改善するのですか? 

(必須)
本番環境以外の検証環境などで問題点特定と解決、更には効率的な改善の実現のための仕組みを予め用意する

OPS 6.
どのようにデプロイのリスクを軽減しますか?

(必須)
昨今は多くのデプロイ方式があるため、適切な仕組みを予め実装する

OPS 7.
ワークロードをサポートする準備が整っていることはどうすれば確認できるでしょうか?

(必須)
手順等を準備し、誰がやっても一定の作業効率を発揮できる仕組みを用意する

OPS 8.
ワークロードの正常性をどのように把握しますか?

(必須)
多くの監視機能は予め利用可能のため、システム特性に応じて有効化する

OPS 9.
オペレーションの正常性をどのように把握しますか?

同上

OPS 10.
ワークロードと運用イベントはどのように管理しますか?

(必須)
イベントごとにシステムからの通知を起点に、誰がどのように対応するかの整理し管理する

OPS 11.
オペレーションを進化させる方法

(お勧め)
システムを安定して運用させるには過去の反省を生かしてシステムに改善内容を取り込むことは不可欠のため、定期的な改善プロセスを確立する

2.4. 移行性

 非機能要件グレードの「移行性」は、W-Aでは特に語られていません。移行に関しては、お客様保有のシステム構成やデータ特性など、非常に様々なパターンがあるのでベストプラクティスを参考にするものはあるものの、うまく適合させることはケーズバイケースであるので難しいことが殆どだと思います。そのため、移行に関しては別テーマとさせていただきます。AWSからはガイドが多く提供されておりますので、その一部分を紹介します。これらの参考にしながら移行要件を満たすための個別設計にて、最適な移行方式を検討いただければと思います。

2.5. セキュリティ

非機能要件グレードの「セキュリティ」は、W-Aでは「セキュリティの柱(11の質問)」に概ね該当します。こちらの設計原則は以下のとおりです。昨今ではゼロトラストという考えをよく耳にすることが多いと思いますが、適切な認証/認可(人や各システム間などすべて)、通信やデータの暗号化など、この設計原則では対応のためのベストプラクティスが語られています。このことを念頭に利用者が安全に利用できる仕組み作りを考えていく必要があります。
 

セキュリティの設計原則

  • 強力なアイデンティティ基盤を実装する
  • トレーサビリティの実現
  • 全レイヤーでセキュリティを適用する
  • 伝送中および保管中のデータを保護する
  • データに人の手を入れない
  • セキュリティイベントに備える
     

W-A質問

非機能要件グレード中項目

検討アプローチ

前提条件・制約条件

セキュリティリスク分析

セキュリティ診断

セキュリティリスク管理

アクセス・利用制限

データの秘匿

不正追跡・監視

ネットワーク対策

マルウェア対策

Web対策

インシデント対応/復旧

SEC 1.ワークロードを安全に運用するには、どうすればよいですか?

(必須)

セキュリティ脅威は現実的には無くならないため、効率よく対応していく運用のサービスを駆使して確立する

SEC 2.ユーザー ID とマシン ID はどのように管理したらよいでしょうか?

(必須)

認証/認可(ロール等)に係る情報は暗号化された領域などに適切に管理する

SEC 3.人とマシンのアクセス許可はどのように管理すればよいでしょうか?

(必須)

最小特権のアクセス権の原則則りホワイトリストでアクセス許可を実装する

SEC 4.セキュリティイベントは、どのように検出して調査するのですか?

(必須)

アクセスログや不審なアクセス傾向から異常を検知するための監視/検知/通知の仕組みを実装する

SEC 5.ネットワークリソースをどのように保護しますか?

(必須)
セキュリティグループなどを用いてホワイトリスト方式で対応する

SEC 6.どのようにコンピューティングリソースを保護するのですか?

(必須)
OS上には様々な機能やデータを組み込むため、必要なサービスだけの稼働や脆弱性の混入などを防ぐ措置を対応する

SEC 7.どのようにデータを分類していますか?

(必須)

主に攻撃で狙われるのはデータであるため、厳密なアクセス制御を実装する

SEC 8. 保管中のデータをどのように保護していますか?

(必須)

データ保管領域は常に暗号化をする。

SEC 9.転送中のデータをどのように保護していますか?

(必須)

インターネット経路は必ず暗号化通信、イントラやVPC内の場合でも可能な限り暗号化通信を実装する。

SEC 10.インシデントの予測、対応、復旧はどのように行いますか?

(お勧め)

有事対応の訓練を準備は必要だが。、システム特性に応じた現実的な対応計画などの運用対処を行う。

SEC 11.設計、開発、デプロイのライフサイクル全体を通じて、アプリケーションのセキュリティ特性をどのように組み込み、検証すればよいのでしょうか?

(必須)

常に安全なシステムを維持するために、脆弱性の混入防止などの仕組みを実装する

2.6. システム環境・エコロジー

非機能要件グレードの「システム環境・エコロジー」は、W-Aでは「持続可能性の柱(6の質問)」に概ね該当します。こちらの設計原則は以下のとおりです。非機能要件グレードで語られる内容と、W-Aと比べると意味合い異なるので、ここで整理して良いかは微妙なところではありますが、中項目の環境マネージメントのエネルギー消費効率の部分で、率用最小限のエネルギーで済む仕組みが該当します。ここでは、システムを稼働させる際に、無駄なエネルギー(リソース)消費がない仕組みになっているかの観点で見ていく部分になります。
 

持続可能性の設計原則

  • 影響を理解する
  • 持続可能性の目標を設定する
  • 使用率を最大化する
  • より効率的なハードウェアやソフトウェアの新製品を予測して採用する
  • マネージドサービスを使用する
  • クラウドワークロードのダウンストリームの影響を軽減する
     

W-A質問

非機能要件グレード中項目

検討アプローチ

システム制約/前提条件

システム特性

適合規格

機材設置環境条件

環境マネージメント

SUS 1.
ワークロードにリージョンを選択する方法

(必須)
コンプライアンスやセキュリティ観点で日本国内リージョンのみ利用許可など事前確認し適切なリージョンで環境を構築する。

SUS 2.
クラウドリソースを需要に合わせる方法

(お勧め)
リソース(システム、人的リソース)配分を最適化し、無理なく継続可能な仕組みを確立する

SUS 3.
ソフトウェアとアーキテクチャのパターンをどのように利用して、持続可能性目標を目指しますか?

(お勧め)
日々の運用状況の変化に追従してたシステム改修を行い、無理・無駄がないように改善活動を実施する

SUS 4.
データ管理のポリシーとパターンをどのように利用して、持続可能性目標を達成しますか?

(お勧め)
データライクサイクルを考慮し、例えば低頻度利用データ等を高価なストレージに置く必要性は低いため、データ特性に応じた保管方式を確立する。

SUS 5.
アーキテクチャでクラウドのハードウェアとサービスをどのように選択して、持続可能性目標を達成しますか?

SUS.3の検討アプローチと同様。

SUS 6.
組織のプロセスは、持続可能性目標の達成にどのように役立ちますか?

(お勧め)
昨今のCI/CDを利用せずにしている運用を改善することで、システム価値向上のために必要に応じて見直す。

2.7. 共通事項

非機能要件グレードでは定義されていませんが、W-Aの「コスト最適化の柱(7質問)」はアーキテクチャ検討では常に意識し、その構成に効率性を求めた設計が必要になります。こちらの設計原則は以下のとおりです。例えば、可用性が求められるからと言って複数台構成の重厚してしまうとコスト増(複数台構成化など)に直結するのですが、実は停止時間を多少は許容するシステムならオートヒーリング/リカバリ等の機能で十分であるケースがあります。このようにシステム化をする際は、用途に応じた構成とコストのバランスを考えていくことが必要であり、常日頃から必要最小限の構成や仕組みなど松竹梅を把握して実装していけるようにする必要があります。
 

コスト最適化の設計原則

  • クラウド財務管理を実装する
  • 消費モデルを導入する
  • 全体的な効率を測定する
  • 差別化につながらない高負荷の作業に費用をかけるのをやめる
  • 費用を分析し帰属関係を明らかにする
     

W-A質問

検討アプローチ

COST 1.
クラウド財務管理はどのように実装しますか?

(必須)
システム価値は費用対効果で評価される場合が多く、適切にコストの利用状況を把握し、どの程度の価値が発揮できているかを観測する

COST 2.
使用状況をどのように管理しますか?

(お勧め)
無駄なコスト発生を抑制は重要な視点であり、それにより活動制約に繋がる可能性があるため、機能の重要度に応じた柔軟なコスト管理を実施する

COST 3.
使用状況とコストをどのようにモニタリングしますか?

(必須)
コストモニタリング単位はアカウント単位が基本であるが、組織文化に依存する部分があるため個別最適となるが、各利用アカウントに対するモニタリングは予算消費状況の観点から適切に監視する

COST 4.
不要なリソースをどのように削除しますか?

(必須)
従量課金の特性を理解しコスト管理設計を運用設計追加し、不要リソースの削除や停止運用を確立する。

COST 5.
サービスを選択するとき、どのようにコストを評価しますか?

(お勧め)
サービス選定ではコスト優先ではなく、ビジネス実現性の観点を優先に選定し、次にTCO観点でサービス選定をしていく。

COST 6.
コストターゲットに合わせて、リソースタイプ、リソースサイズ、およびリソース数を選択するには、どうすればよいですか?

(必須)
サービスを用いる費用対効果は小さく作り、システム需要に応じて必要なサイズ等を決定できる計測を実施する。

COST 7.
コストを削減するには、料金モデルをどのように使用したらよいでしょうか?

(必須)
同上

COST 8.
データ転送料金についてどのように計画していますか?

(お勧め)
データ自体を提供するシステムでは、キャッシュ機能などを活用したサービスなどでコスト発生の低減を図る。

COST 9.
どのように需要を管理し、リソースを供給しますか?

COST 6と同様

COST 10.
新しいサービスをどのように評価していますか?

(お勧め)
安価なサービスがリリースされたからといっても現システムの構成変更は容易に出来ない部分が現実的にはあり、機能評価はするものの現実的な範囲で最適化を実施していく。

COST 11.
労力コストを評価する方法

(お勧め)
新サービス対応には検証等で労力を鑑み、中長期的な視点で労力低減の価値が見合うなら対応を実施していく。

2.8. その他

W-Aの質問の選択項目で、これは必至対応だとAWSから推奨されているものがあります。この辺りを合わせて対応していくのが良いかと思います。
 AWSの利用時におさえておきたい10のこと

3. 対応結果をお客様に共有しよう

W-Aに可能な限り準拠させて設計を進めたら、なるべく早い段階で「Well-Architected Lead」に相談しW-Aレビューを実施してもらい、その結果をお客様に共有しましょう。W-Aの目的はレビュー結果から、潜在的なリスクや影響を理解し、それらの情報に基づいてアーキテクチャを見直すなど、ビジネス成功の可能性を高めるための活動に繋げることになるので、この共有は必須になります。
 またW-Aを活用するシーンは、以下のタイミングなどありますので、一回の実施だけでは無く継続的に実施することで、ベストプラクティスに則ったシステムとして構築された状態を維持することが可能になります。より良いシステム作りは、お客様と共に成長していくことが不可欠になります。
 

主なW-A活用シーン

  • 要件検討
  • 設計
  • 構築
  • 運用

※W-Aレビューは、どのシーンからでも実施可能です。
 

4. 改善サイクルで良くしよう

  改善サイクルではベストプラクティスに則ったシステムの状態を維持できているか、日々の運用のなかで改善されているかを見ていく活動になります。これは前述の繰り返しW-Aレビューを実施していくことにも繋がります。
 改善サイクルを回すには、まずW-Aレビューを実施し、その結果の状態をベースラインとして改善基準として用い、この基準から繰り返しレビューを実施&改善活動をすることでシステムを良くしていきます。この活動を効率良く実施していくには、「AWS Well-Architected Tool」を使っていきましょう。このツールの利用方法は本記事では割愛しますが、推奨される改善点が提示されているため、該当システムにとって必要な改善点が一目瞭然であり対応の優先順位も付け易いです。W-Aでは、改善点の気付きを得るためのツールですので、改善可能なものがあれば対応していくことをお勧めします。やっていくと全て対応していきたくなりますが、無理せず費用対効果を念頭に進めていくのが大事です。また継続して改善サイクルを回すことで改善点が無くなって何もする必要がなくなってしまう場合がありますが、その際は、システムのアプリケーション改修などでシステムの状態が変わることもあるかと思いますので、そのタイミングでベストプラクティスに則ったシステムの状態を維持出来ているかのチェックにも役立てることができます。
 

改善サイクルを回すポイント

  • まずW-Aレビューを実施しよう
  • 現在の状態を把握し、改善点に対して優先順位を付けよう
  • 改善はシステム価値向上に直結する内容を優先的に対応しよう
  • 改善点が無くなるまで、一定の周期で実施しよう(四半期単位など)
  • 改善点がなくなれば、システム改修イベントや時期システムでの課題抽出のための材料として実施しよう
  • W-A全てを対応する必要はない。システムにとって費用対効果が高いものを中心に実施していくことが大事
     

5. まとめ

 W-Aの各柱の対応の結果として殆どは実装していく必要が結果的にはあります。実態としてベストプラクティスですので、システム利用環境固有の事情が無ければ合わせていくという営みになるためです。
 私も振返ってみて「必須」とした内容が多いなと正直思います。ただAWSの基本的なデザインパターンに準じて構成していれば自然と対応ができているのが殆どですので、個人差があるものの日々の技術研鑽を積んでいれば実装に問題は無います。それでもお困りの場合は、お近くの「Well-Architected Lead」の方にお声がけいただくのが良いかと思います。
 

最後に、W-Aは様々なフェーズで活用できますので、以下にW-Aレビューのタイミングを整理させていただきますので、こちらも、お客様のビジネス成功のためにお役立ていただければと思います。
 

タイミング

フェーズ

内容

新規構築時

要件検討

システム要件の確認

システム要件を検討する際の材料

設計

ベストプラクティスに則った設計

ベストプラクティスを理解し設計

構築

サービス開始前の確認

ベストプラクティス に則っているか

運用

継続的な改善

リスクや改善出来る項目の洗い出し

既存システム

運用

リスクの洗い出し

様々なリスクや、コスト最適化など改善出来る項目の洗い出し

改善計画

改善必要箇所について、対策や改善計画(優先度付け)を検討

改善

対策や改善契約を元に、実際にシステム変更や改修を実施

設計

次の設計時に

事情により、既存システムの改善ができない場合も、次期システムの設計時に活かす