AWS Well-Architected Tool のLensを活用してワークロードをレビューしよう
はじめに
こんにちは。土居です。
以前、DWSのWell Architected レビューの記事でDWSがどのようにAWS Well-Architectedレビューを実施しているかをお伝えしました。
※AWS Well-Architectedって?という方はこちらの記事も是非ご覧ください。『AWS Well-Architected フレームワーク 勉強会』のススメ
今回は、「AWS Well-Architected Tool」の「レンズ」という特定の領域に特化した追加のレビューを行うための機能についてご紹介いたします。
レンズとは
レンズとは、AWS Well-Architected における一連の質問のまとまりを表します。
質問は6つの柱(運用上の優秀性、セキュリティ、信頼性、パフォーマンス効率、コスト最適化、持続可能性)に分類されています。
レビューを開始する際にAWS Well-Architected Toolでワークロードを定義すると、デフォルトで58個の基礎的な質問を持つ「AWS-Well-Architected Framework」のレンズが必須で選択されます。
それに加え、特定の領域に特化した追加の質問を持つ多彩なレンズを選択することができます。
- サーバーレスアプリケーション レンズ
- ハイブリッドネットワーキング レンズ
- ゲーム業界 レンズ
- データ分析 レンズ
- SAP レンズ
- 機械学習 レンズ
- ストリーミングメディア レンズ
- IoT レンズ
- SaaS レンズ
- FTR レンズ
- 金融サービス業界レンズ
- ハイパフォーマンスコンピューティング レンズ
今回はこの内の「サーバーレスアプリケーション レンズ」の質問について、どのような特徴があるのかをみていきたいと思います。
※レンズについては以下のAWS Well-Architected Toolの公式ドキュメントについても是非ご参照ください。
Lenses
サーバーレスアプリケーション レンズ の特徴
まず質問の総数ですが、サーバーレスアプリケーションのワークロードに特化したピンポイントの質問となっており、「AWS-Well-Architected Framework レンズ」の58個と比較するとその数は9個、と少なめになっています。
5つの柱ごとに質問が用意されているのは同じです。(※持続可能性のみ、質問無し)
以下、それぞれの柱ごとにピックアップして見ていきます。
OPS(運用上の優秀性の柱)
「運用上の優秀性」の柱は、ワークロードの全ての局面にかかわってくるため最も優先したいと考えられるお客様が多い印象です。
AWS Well-Architected Framework 運用上の優秀性 における4つのベストプラクティス(組織、準備、運用、進化)の具体的な実践が求められています。
-
サーバーレスアプリケーションの状態をどのように評価しますか?
各マネージドサービスのメトリクスの理解、分散トレースの実装、構造的なログ情報の出力などが求められています。 -
アプリケーションのライフサイクル管理について教えて下さい
IaC、構成管理、CI/CD(ユニットテスト・統合テスト・エンドツーエンドテストを含む)の使用が求められています。
SEC(セキュリティの柱)
「運用上の優秀性」の柱と並び、多くのワークロードで最も優先度が高く捉えられる「セキュリティ」の柱は、サーバーレスアプリケーションのレンズにおいて最も質問数が多い柱となっています。
AWS Well-Architected Framework セキュリティ における6つのベストプラクティス(セキュリティ、Identity and Access Management、検出、インフラストラクチャ保護、データ保護、インシデントの対応)の具体的な実践が求められています。
-
サーバーレス API へのアクセスをどのようにコントロールしますか?
IDプロバイダーと統合した認証・承認メカニズムの使用などが求められています。 -
サーバーレスアプリケーションのセキュリティ境界をどのように管理していますか?
アクセス毎の動的認証による一時的な認証情報の使用などが求められています。 -
ワークロードにどのようにアプリケーションセキュリティを実装しますか?
アプリケーションコードレベルでのセキュリティプラクティスのレビューと自動化が求められています。シフトレフトの考え方の実践になります。
REL(信頼性の柱)
AWS Well-Architected Framework 信頼性 における6つのベストプラクティス(基盤、ワークロードアーキテクチャ、変更管理、障害の管理)の具体的な実践が求められています。
-
インバウンドリクエスト率はどのように調整していますか?
スロットリングを活用したワークロードの定常状態の維持などが求められています。また、ワークロードの対応力を測るために継続的な負荷テストの実施が求められています。 -
サーバーレスアプリケーションには回復力をどのように組み込んでいますか?
例えばデッドレターキューの仕組みによる失敗した処理の保持/調査/再試行など、障害からの素早い復旧やフォールトトレラントな仕組みが求められています。
PERF(パフォーマンス効率の柱)
AWS Well-Architected Framework パフォーマンス効率における4つのベストプラクティス(選択、レビュー、モニタリング、トレードオフ)の具体的な実践が求められています。
- どのようにサーバーレスアプリケーションのパフォーマンスを最適化しますか?
キャッシングの活用、関数の同時実行の活用など、パフォーマンスを最適化するための方法が紹介されています。
COST(コスト最適化の柱)
サーバーレスのメリットとして従量課金によるコスト削減はよく挙げられるものであり、それだけで一定の最適化は成されているかもしれません。しかし、定期的にワークロードの利用状態を見直すことは重要です。
AWS Well-Architected Framework コスト最適化における6つのベストプラクティス(クラウド財務管理、経費支出と使用量の認識、費用対効果の高いリソース、需要の管理、経時的な最適化)の具体的な実践が求められています。
- どのようにサーバーレスアプリケーションのコストを最適化しますか?
ログ保持戦略のビジネスニーズに応じた見直し、コンポーネントが必要なリソースにのみアクセス権限を持つかの見直しなどが求められています。
まとめ
いかがでしたでしょうか?サーバーレスアプリケーションのレンズの質問は「AWS Well-Architected Framework」のレンズの一部抽象度の高い質問と比べると、具体的に何をすれば良いかがわかりやすいものが多い印象を受けたのではないでしょうか。ただし、いずれも実践するにはレベルが高いやりがいのあるものが多く感じます。
DWS「AWS Well-Architected Tool」 を用いたレビューを実践されている組織は今やどんどんと増えてきている印象ですが、オプションのレンズを使いこなして突っ込んだレビューとさらなる改善の実践まで踏み込んでいる組織はまだ少ないかもしれません。実際に取り組むべきことがわかりやすい質問になっていますので、是非様々なレンズの中から皆様の管理するワークロードに近いものを見つけ、レビューを実施してみてください。