はじめに
はじめまして。日立ソリューションズです。
このたび、当社の技術的な取り組みや知見を広く発信する場として、全社技術ブログをQiita Organizationとして開設いたしました。
日立ソリューションズは、社会やお客さまの課題解決を支えるITサービス企業として、クラウド、AI、セキュリティ、データ分析、アプリケーション開発など、幅広い技術領域に取り組んでいます。
このQiita Organizationでは、これら多様な技術をテーマに、現場での実践知やノウハウ、最新技術の検証結果、社内の取り組みなどを発信していく予定です。
技術者の皆さまにとって有益な情報となるよう、わかりやすく実践的な内容をお届けしてまいります。
ぜひ今後の投稿にご期待ください。
AWS Well-Architectedレビューとは
AWS Well-Architectedレビューは、AWSのベストプラクティスに基づいて、システムの設計・運用の健全性を評価し、改善点を見つけるためのレビューフレームワークです。レビューでは、AWS Well-Architected Toolを使って、ワークロードごとに質問項目への回答や改善点の整理を進めます。
ただし、質問項目が多いため、準備不足のまま進めると、確認作業だけで終わってしまいがちです。私はこれまでEC2中心で構築されたシステムからLambdaやECSなどサーバーレス技術を中心に構築されたシステムなどさまざまな形態のシステムをレビューしてきました。この経験をもとに、本記事では実際のレビューで効果があった準備の進め方や、レビューを効率化するためのツール活用例を紹介します。
なお、本記事の対象読者は、次のような方です。
- これからAWS Well-Architectedレビューを始めようと考えている方
- はじめてWell-Architectedレビューの導入を検討している方
- すでにWell-Architectedレビューを実践しているが、効率化の方法を探している方
1. レビュー対象の柱を絞る
AWS Well-Architectedレビューの基となるAWS Well-Architected Frameworkには、次の6つの柱があります。
- Operational Excellence(運用上の優秀性)
- Security(セキュリティ)
- Reliability(信頼性)
- Performance Efficiency(パフォーマンス効率)
- Cost Optimization(コスト最適化)
- Sustainability(持続可能性)
1つの柱だけでも質問数は多く、すべてを一度に扱うのは現実的ではありません。私がこれまで複数のシステムでレビューを実施した経験では、1つの柱をレビューするだけでも少なくとも2時間程度は必要でした。さらに、問題点の洗い出しだけでなく、実行可能な改善策まで議論することを考えると、1つの柱につき2回に分けて時間を確保しておくと進めやすいです。
また、「どの柱から始めるべきか」という質問をよく受けますが、私はセキュリティかコスト最適化から始めることを勧めています。理由は次の2つです。
- セキュリティ: リスクが高い論点が多く、早めに対策を打ちやすい
- コスト最適化: 改善効果を実感しやすく、議論の出発点にしやすい
2. 事前に質問項目と情報を整理する
AWS Well-Architectedレビューでは、その場で質問して、その場で回答を埋めるだけでは、レビューの質が上がりません。質問の意図を理解し、対象システムの背景を事前に整理したうえで臨むことが重要です。
事前に準備しておきたいのは、たとえば次のような情報です。
- 構成図
- AWSが目的別クラウド構成と料金試算例にて公開している構成図の記載レベルのものがあると、システム全体のイメージを共有しやすくなります
- 使用サービス一覧
- 構成図がなくても、どのAWSサービスをどのように使っているかがわかっているとシステムの全体像を把握しやすくなります
2.1 質問の読み込み
AWSのサービスは日々進化しているため、質問項目や推奨事項も更新されます。レビュー前に最新の質問項目を確認し、どのような内容が問われるのかを把握しておきましょう。
2.2 システム情報の収集
レビュー対象のシステム構成や運用状況を事前に整理しておくと、質問への回答がぶれにくくなります。構成図だけでなく、運用ルールや責任分界も含めて見える化しておくと、議論がスムーズになります。
3. Trusted Advisorは有効化しておく
サポート契約の内容にもよりますが、AWS Well-Architected ToolはTrusted Advisorと連携できます。連携しておくと、Trusted Advisorのチェック結果をレビューに反映しやすくなります。
これによって、次のようなメリットがあります。
- 客観的な指摘をレビューに取り込みやすい
- 見落としを減らせる
- 事前確認の効率が上がる
たとえばコスト最適化の柱では、未使用リソースの指摘などをきっかけに、具体的な改善点を洗い出しやすくなります。
設定方法は、AWS公式ドキュメントも参考になります。
ただし、Trusted Advisorのチェックですべての質問項目をカバーできるわけではありません。あくまで補助ツールとして位置づけ、レビューの主軸は質問項目の理解と議論に置くのがよいです。
4. レビューに役立つツールを積極的に使う
レビュー効率を上げるためのツールはいくつか公開されています。うまく活用できれば、事前整理と論点抽出の効率を大きく上げられます。以下に代表的なツールとその特徴をまとめます。
| 項番 | ツール | 主な役割 | 向いている場面 |
|---|---|---|---|
| 1 | service-screener-v2 | AWS環境を自動チェックして、ベストプラクティスに沿った指摘を出す | 実環境を手早く確認したいとき |
| 2 | well-architected-iac-analyzer | IaCやアーキテクチャー図を解析して、論点を洗い出す | 設計資料やIaCコードをもとに整理したいとき |
| 3 | Prowler | セキュリティ観点の検出結果を集約しやすい | セキュリティの柱を重点的に確認したいとき |
以降、それぞれのツールについて、特徴や活用のポイントを紹介します。
4.1 service-screener-v2
AWSが aws-samples で公開している service-screener-v2 は、AWS環境で自動チェックを実行し、AWSやコミュニティのベストプラクティスに基づく推奨を提供してくれるツールです。サンプルレポートも公開されているため、どのようなアウトプットが得られるかを事前に把握しやすいのも利点です。
README.mdに記載されている通り、CloudShellで比較的簡単にセットアップできます。AWS環境にもよりますが、1時間もかからずに実行できることが多いため、レビュー前の事前チェックとして活用しやすいです。
4.2 well-architected-iac-analyzer
AWSが aws-samples で公開している well-architected-iac-analyzer は、IaCやアーキテクチャー図を解析し、Well-Architectedの観点で論点を洗い出すためのツールです。CloudFormation、CDK、TerraformなどのInfrastructure as Code(IaC)テンプレートに加えて、PNG、JPEG、PDFのアーキテクチャー図も対象にできます。
IaCを使っている環境であれば、コード上に表現された内容をもとに論点を整理しやすくなります。一方で、コードや図に書かれていない情報までは判断できないため、出力結果をそのまま結論にせず、補助ツールとして使うのが適切です。
たとえば、インシデント対応や運用体制のように、IaCだけでは表現しづらい内容はツールだけでは判断しきれません。アーキテクチャー図についても、図示の都合で省略されている情報があるため、結果を鵜呑みにせず、目視で補完することが重要です。
4.3 Prowler
AWSが提供しているツールではありませんが、セキュリティスキャンツールとして Prowler も有効です。
AWS規範ガイダンスでも、Prowlerを使ってセキュリティ検出結果の統合レポートを作成する方法が紹介されています。セキュリティの柱をレビューする際の補助ツールとして活用しやすいです。
4.4 ツール活用のポイント
ここまで紹介したツールは、Well-Architectedレビューの効率化に役立ちます。AWS環境で実際にチェックを回せるのであれば service-screener-v2 が手早く、設計資料やIaCコードがあるなら well-architected-iac-analyzer が特に有効です。
ただし、どのツールもあくまで補助的なものです。ツールには限界がありますし、多くのシステムには、あえてベストプラクティスから外れた構成を取っている理由があります。レビューの主軸は、質問項目に対する理解と議論に置くことが大切です。
5. おすすめのレビュー進め方(実践パターン)
最後に、実際にスムーズに進む流れを整理します。
1. レビュー対象の柱を決定
2. 質問項目を事前確認
3. システム構成情報を整理
4. Trusted Advisorで事前チェック
5. 各種ツールで自動分析
6. Well-Architectedレビュー実施
7. 改善アクションの整理
AWS Well-Architectedレビューを進めるうえで大切なのは、柱を絞ること、事前準備を丁寧に行うこと、そしてツールはあくまで補助として使うことです。レビューの目的はチェックリストを埋めることではなく、改善につながる対話を作ることにあります。
参考になれば幸いです。
