Well-Architected Frameworkに追加されたサステナビリティの柱の紹介

インフラ担当の柴田です。

この記事は、Japan APN Ambassadors Advent Calendar 2021の5日目のエントリです。

さて、今週はre:invent 2021が開催されていましたが、皆さんは参加されましたか。 私は、現地で参加したかったのですが時節柄難しく、オンラインで参加していました。

re:inventの開催時期になると、AWSでは新しいサービスやサービスのアップデートが大量に出てきます。私は楽しい反面、多すぎてもう何も分からないという感じになります。

そこで、何か1つ気になったサービスをまとめてみようと思い、今回はWell-Architected Frameworkに新たに追加されたサステナビリティの柱についてまとめてみました。

Well-Architected Frameworkと5本の柱

AWS Well-Architected FrameworkはAWSのソリューションアーキテクトや、パートナー、ユーザーの経験を元にまとめられた、クラウドアーキテクチャーのベストプラクティスです。

AWS Well-Architected Frameworkには、建物を支える柱のように、システムを支える柱となるカテゴリーを、フレームワークの5つの柱(オペレーショナルエクセレンス、セキュリティ、信頼性、パフォーマンス効率、コスト最適化)として定義しています。

今回、そこに新たな6つ目の柱としてサステナビリティが追加されました。

サステナビリティの柱

re:inventの発表にあわせてBlog「New – Sustainability Pillar for AWS Well-Architected Framework 」やホワイトペーパー「Sustainability Pillar - AWS Well-Architected Framework」が公開されました。

一言でいえば「あなたのシステムはサステナブルですか」ということになります。サステナブルかと聞かれると何か特別なことがありそうに聞こえますが、 特別なことはあまりありません。 私は、Well-Architected Frameworkの他の柱で考えた事の多くが応用できるなと感じました。

サステナビリティあるいはSDGs

そもそもサステナビリティとは何でしょうか。AWSのホワイトペーパーでは「持続可能な開発」として、国連によって定義された「将来の世代が自分たちのニーズを満たす能力を損なうことなく、現在のニーズを満たす開発」と書かれています。

最近よく耳にする、持続可能な開発目標(SDGs :Sustainable Development Goals)を達成するために、システムの設計を考えようということですね。

クラウドでの持続可能性のベストプラクティス

私は、Well-Architected Frameworkの柱の概要を理解するには、ベストプラクティスを見るのが一番手っ取り早いと思っています。そのため、サステナビリティの柱で紹介されているベストプラクティスを紹介しようと思います。

サステナビリティの柱のベストプラクティスでは、次の6つのトピックが用意されています。

  • 地域の選択
  • ユーザーの行動パターン
  • ソフトウェアとアーキテクチャのパターン
  • データパターン
  • ハードウェアパターン
  • 開発とデプロイのプロセス

それぞれのトピックについて、簡単に紹介していきます。

地域の選択

システムを置くリージョンを何処にするのか、SDGsな視点で選択しましょうというものです。 私も今回初めて知ったのですが、Amazonでは再生可能エネルギーを利用する等SDGsに取り組んでおり、その情報が公開されています。そこで、再生可能エネルギーを利用しているような場所を使うことで、サステナビリティに寄与できるというものです。

責任分担モデルから、エネルギーの調達のサステナビリティはAWSが頑張るので、無理に日本以外のリージョンを選ぶ必要はないと考えます。また、他の項目を考えれば日本のリージョンを選ぶのが良い結果になりそうです。

ユーザーの行動パターン

ユーザーの負荷にあわせて最小限のリソースを展開し、無駄なリソースをなくしましょうというものです。 コスト最適の柱やパフォーマンス効率の柱にも繋がるトピックです。

サブトピックとして、SLAを持続可能性の目標にあわせるというのがあります。過剰なSLAを排除して、ビジネス要件と持続可能性の目標とのバランスをとりましょうというもので、是非取り入れて欲しい考え方です。

ソフトウェアとアーキテクチャのパターン

リソースの使用効率を高めるよう設計しましょうというものです。

例えばイベント駆動型のアーキテクチャを採用して、イベントが発生したときにLambdaで処理をするようにして、アイドル状態のリソースを作らないようにすろという考え方です。

データパターン

不要なデータは削除して、無駄なリソース消費を削減しましょうというものです。

EC2用に取りあえずで大きいディスクを割り当てるのをやめる、 ライフサイクルポリシーなどを使って定期的に不要になったデータを削除するという考え方です。

見落としがちなデータの転送に対しても最小限にしましょうとふれられています。

ハードウェアパターン

過剰にハードウェアを消費しないように、効率の良いハードウェアの選択をしましょうというものです。

オートスケーリングや、スポットインスタンスなどを活用して、必要な時だけ必要なハードウェアリソースを用意するという考え方です。 GPUの利用は高い電力消費につながるようで、サブトピックとしてGPUにもふれています。

開発とデプロイのプロセス

開発、テスト、デプロイのプロセスの中で、持続可能性への影響を改善しようというものです。

他のトピック同様、各プロセスでリソースの効率やコストを下げる仕組みを取り入れましょうという考え方に加えて、本番環境に迅速に改善を導入できる方法を取り入れましょうとなっているところに特徴があると思います。

まとめ

Well-Architected Frameworkにサステナビリティの柱が登場しました。 SDGsという言葉が一般に聞かれるようになり、システム開発にもサステナビリティが当たり前になってくるのだと思います。

サステナビリティの柱が登場したからと言って、無理にベストプラクティスの通りにする必要は無く、自分たちのチームやサービスにあわせてベストプラクティスを取り入れて行けば良いと思います。

今回は詳しく紹介をしなかったのですが、サステナビリティにも責任共有モデルが適用されますので、AWSを使うというだけで、炭素排出量の削減やエネルギー消費量の削減などサステナブルなシステムになると思います。