Amazon Web Services ブログ

AWS 持続可能性のベストプラクティスに照らした AWS リソースの評価、監査、評価

このブログは 2025 年 1 月 25 日に Matt Williams と Felix Guglielmi によって執筆された内容を日本語化したものです。原文はこちらを参照して下さい。

AWS では、可能な限り環境に配慮した方法で事業を運営することに尽力しています。また、お客様がクラウドの利点を活用して、IT インフラストラクチャをより効果的に監視し最適化できるよう支援しています。「Amazon Web Services への移行による炭素削減の機会」で報告されているように、AWS のインフラストラクチャは、米国の一般的な企業データセンターの中央値と比較して 3.6 倍のエネルギー効率を誇ります。さらに、AWS に移行することで、同じタスクに対するワークロードの炭素排出量を 88% 削減することができます。

持続可能性は、AWS とお客様の間で共有される責任です。AWS は、クラウドの持続可能性を最適化する責任を負っています。これには、効率的な共有インフラストラクチャの提供、水資源の管理、再生可能エネルギーの調達が含まれます。一方、お客様は、クラウド内の持続可能性に責任を負います。これには、ワークロードとリソース利用の最適化、およびワークロードに必要な総リソースの最小化が含まれます。

お客様の持続可能性目標の達成を支援するため、AWS は様々なツールを提供しています。その中には、AWS 使用量から生成される炭素排出量を追跡・測定する AWS Customer Carbon Footprint Tool が含まれます。AWS は、AWS Well-Architected Framework の持続可能性の柱を作成し、ワークロードの持続可能性目標達成に使用できる設計原則、運用ガイダンス、ベストプラクティスを提供しています。また、AWS は、アーキテクチャにおける持続可能性の改善を可能にするサービスの提供を続けています。例えば、Amazon EC2 でのエネルギー使用のワットあたり最高のパフォーマンスを提供するように設計された AWS Graviton インスタンスなどがあります。Amazon EC2 スポットインスタンスを使用すると、大幅なコスト削減の恩恵を受けながら、AWS のデータセンター利用率の向上にも貢献できます。

このブログでは、お客様が AWS Config を使用して、AWS Well-Architected Framework の持続可能性の柱のベストプラクティスに照らした AWS リソースの大規模に評価、監査、評価する方法について説明します。

AWS Config

AWS Config はマネージドルールとカスタムルールを作成する機能を提供し、両方ともクラウドリソースの構成をプロビジョニングの前後で評価することができます。さらに、Config コンフォーマンスパックを使用すると、お客様は Config ルールとその修復アクションのコレクションを単一のユニットにパッケージ化することができます。コンフォーマンスパックは AWS Organizations とも統合されています。これにより、お客様は組織全体にわたってコンフォーマンスパックをデプロイでき、AWS アカウントやワークロード全体でリソースのコンプライアンスを確保するためのスケーラブルで効率的な方法を提供します。

持続可能性のベストプラクティスの評価

AWS Well-Architected Framework の持続可能性の柱は、クラウドにおける持続可能性のベストプラクティスに関するガイダンスを提供します。これらのベストプラクティスは、リソースの使用率を高め、必要なリソースの総数を減らすことにより、お客様のワークロードを最適化するのに役立ちます。 持続可能性の柱を利用することで、お客様は改善の目標を特定し、推奨されるベストプラクティスを実行して持続可能性の目標を達成できます。

この例では、持続可能性の柱のベストプラクティスをいくつか選択し、AWS Config ルールを使用してお客様がこれらのベストプラクティスを組織全体に確実に実装できるようにする方法を示します。私たちは、データライフサイクル管理、コードの最適化、ネットワークパフォーマンスといった多くのアーキテクチャに共通するベストプラクティスを意図的に選択しました。このアプローチは、リソースの消費量を削減し、節約効果を得る機会を提供するのに役立ちます。ベストプラクティスの例は次の通りです。

  1. SUS04-BP03: ポリシーを使用してデータセットのライフサイクルを管理する
  2. SUS03-BP03: 時間やリソースを最も多く消費するコード領域を最適化する
  3. SUS04-BP07: ネットワーク間でのデータ移動を最小限に抑える

持続可能性のための AWS Config ルール

SUS04-BP03: ポリシーを使用してデータセットのライフサイクルを管理する

このベストプラクティスでは、ストレージ全体の使用量を最小限に抑えるために、未使用のデータを自動削除することをお勧めします。ビジネス要件を満たすためにデータ保持のニーズは組織全体で異なる場合があり、データを削除するために手動のアプローチを採用することはすぐに非現実的になる可能性があります。 Amazon S3 などの AWS のサービスを使用すると、ライフサイクル設定によって S3 オブジェクトを低コストのストレージへ移行、そして最終的にはオブジェクトの削除を自動化することができます。

AWS Config 内でルールを使用すると、ライフサイクル設定が Amazon S3 バケット全体に確実に適用されます。

# Rule-intent: Rule checks that lifecycle policies are configured for Amazon S3 bucket
#
# Expectations:
# a) COMPLIANT when S3 bucket lifecycle is configured
# b) NONCOMPLIANT when S3 bucket lifecycle is not configured
# c) NOTAPPLICABLE when there is no S3 bucket

rule checkBucketVersioningEnabled {
  supplementaryConfiguration.BucketLifecycleConfiguration exists
  <<Amazon S3 bucket lifecycle is not configured.>>
}
Plain text

SUS03-BP03: 時間やリソースを最も多く消費するコード領域を最適化する

効率的なコードを使用すると、リソースの使用量が最小限に抑えられ、パフォーマンスが向上します。環境を監視して、改善の機会を特定し、バグやアンチパターンを除去する必要があります。Amazon RDS の場合、Performance Insights を使用してデータベースの負荷の原因を特定できるため、SQL クエリの影響を判断し、パフォーマンスを向上させるためにクエリを調整できます。Performance Insights は、無料利用枠と有料利用枠の両方のオプションが提供されています。

以下の AWS Config ルールは、Performance Insights が RDS データベースに対して有効であることをチェックするため、データベースを監視して継続的な改善を図ることができます。

# Rule-intent: Rule checks that performance insights are enabled
#
# Expectations:
# a) COMPLIANT when performance insights is enabled for RDS DBCluster or RDS DBInstance
# b) NONCOMPLIANT when performance insights is not enabled for RDS DBCluster or RDS DBInstance


##Check whether performance Insights is enabled.
rule rds_cluster_iam_authentication_enabled {
  configuration.performanceInsightsEnabled == true
  << Database cluster does not have performance insight enabled >>

}
Plain text

SUS04-BP07: ネットワーク間でのデータ移動を最小限に抑える

ネットワーク全体のデータ移動を最適化することで、ワークロードに必要なネットワークリソースの総量を削減し、環境への影響を軽減できます。このベストプラクティスを実装する際の考慮事項の 1 つは、API のデータ圧縮機能を有効にすることです。これにより、各リクエストで送信されるデータが削減され、ネットワーク全体でのデータの移動が削減されます。(データ圧縮によりデータの移動は最小限に抑えられますが、その代償としてデータを解凍するためにより多くのコンピューティング能力が必要になる可能性があることに注意してください。企業ではベストプラクティスの推奨事項をテストして、コンピューティングのトレードオフと比較したネットワーク使用量のレベルを判断し、どのアプローチが最も持続的に有益であるかを特定することをお勧めします。)

このサンプルルールは、Amazon API Gateway Rest API に対して圧縮機能が有効になっているかどうかをチェックします。

# Rule-intent: Rule checks compression is enabled for a Rest API
#
# Expectations:
# a) COMPLIANT when compression is enabled
# b) NONCOMPLIANT when compression is not enabled 

rule rest_api_compression_exists {
    configuration.minimumCompressionSize exists
}
Plain text

持続可能性ルールを大規模に導入する

お客様は適合パックを使用して、上記の例のような AWS Config ルールを組織全体にデプロイし、持続可能性の目標に向けて取り組むことができます。Config ルールの使用を高速化するために、適合パックの例を作成しました。このパックには、持続可能性の柱の多くのベストプラクティスをサポートする次の 9 つの Config ルールが含まれており、AWS Config コンソールまたは AWS コマンドラインインターフェイスを通じてデプロイできます。

サービス Config ルールの説明 持続可能性の柱のベストプラクティス
API Gateway REST API の圧縮が有効になっているかをチェックします SUS04-BP07
CloudFront 圧縮が有効になっているかをチェックします (このルールは us-east-1 にデプロイする必要があることに注意してください) SUS04-BP07
EBS インスタンス終了時の EBS 削除が有効になっているかをチェックします SUS02-BP03
EC2 EC2 セキュリティグループに SSH 用のポート 22 が開いていないことをチェックし、代わりにセッションマネージャーを使用します SUS05-BP03
EFS EFS ライフサイクル管理が有効になっているかをチェックします SUS04-BP03
Lambda Lambda 関数が AWS Graviton ベースのプロセッサを使用しているかをチェックします SUS05-BP01
RDS RDS インスタンスが AWS Graviton ベースのプロセッサを使用しているかをチェックします SUS05-BP02
RDS Performance Insights が有効になっているかをチェックします SUS03-BP03
S3 Amazon S3 バケットのライフサイクル設定が存在するかをチェックします SUS04-BP03

* 上記の Config ルールは、実装手順とともにここにある適合パックに含まれています。

お客様は、この一連のサンプルルールを拡張して改善目標に合わせた追加の持続可能性のベストプラクティスと照らし合わせてワークロードを評価することができます。お客様はこれらのルールを適応させて、環境内のリソースに対して Config カスタムルールを作成できます。その後、適合パックを使用して組織全体に新しいルールを適用することができます。

まとめ

このブログでは、AWS Well-Architected Pillar for Sustainability に沿った AWS Config ルールを実装する方法を示し、そこには開始するためのサンプル適合パックも含まれています。企業固有の持続可能性ポリシーに従ってこれらのルールを拡張または調整して持続可能性の目標を達成するために、さらにルールを追加できます。適合パックを介してこれらのルールを実装すると、リソースを効率的かつ大規模に評価できます。

翻訳はソリューションアーキテクトの Yoshinori Sawada が担当しました。