投稿者:熊谷

はじめに

環境問題から目を背けていませんでしょうか。
今回はITインフラの投資でも、環境問題へアプローチできる可能性があることをご紹介します。
昨今のキーワードとして、サーバレスやコンテナというキーワードがでてきて、"コスト効率はよくなるんだろうな"と感じている方は少なくないはずです。 一方、コストへの着眼はしているが環境を配慮した構成を検討するIT担当やベンダはまだ多くないのが現状です。
そこで我々は、実際に比較用の環境を作成し、CO2排出量を計測して、お客様へコストと環境両方に対して適切なアーキテクチャをご提案するために基礎調査を行ったので、このブログにて報告します。


比較環境

比較対象 機能 用途・活用シーン コスト予想 CO2排出予想
Compute Engine(以下GCE) IaaS 常時稼働システムや、特定アプリケーションを稼働させる場合に有効
Cloud Functions FaaS 利用頻度がそこまで高くなく、簡単な処理の実施に最適
App Engine PaaS 簡単なWEBプログラムを実行する環境に最適

検証内容

アクセス頻度と処理条件は以下になります。

頻度

 平日の 9:00~12:00、13:00~18:00に1分に一度実行。

* 0-3 * 2 1-5 /***/***/kick
* 4-9 * 2 1-5 /***/***/kick

処理内容

 現在の秒数を1000万回取得・加算してサーバに負荷をかけています。

  const maxCount = 10000000;
  let sum = 0;
  for(let i = 0; i < maxCount; i++) {
    sum = sum + new Date().getSeconds();
  }

結果

結果は以下のグラフになります。 結果

※ 上記結果は割引が適用されています。

比較対象 機能 コスト予想 コスト結果 CO2排出予想 CO2排出結果
GCE IaaS
Cloud Functions FaaS
App Engine PaaS

考察

サマリ

今回の条件では、アクセス頻度がそこまで多くなかったため、CO2排出量はCloud FunctionsとAppEngineに軍配が上がっています。
コストとしては、AppEngineが一番安いですが、1日数回のような、もっとアクセス頻度が少ない場合は、Cloud Functionsに軍配が上がると思います。

GCE

常時立ち上がっており、CPU、MEM、HDD全てにコストが掛かかっています。
GCEが悪いわけではなく、出来合いのソフトを実行したり、Windowsサーバを起動するには、GCEに頼るしかないです。

Cloud Functions

今回のケースでは少し分が悪かったです。FaaSとは数年前からキーワードとして流行っているサーバレスの仕組みで作られています。
処理リクエストがあったときにサーバが起動し、処理が終わると停止する仕組みです。そのため、今回のように数分ごとにアクセスがあるユースケースでは、常にサーバが立ち上がっているようになり、あまりメリットを得られません。

App Engine

今回のユースケースで一番パフォーマンスが良かったです。 そこまでメモリを消費せず、既存ソフトを稼働させない場合ではApp Engineが一番バランスが取れている結果となりました。AppEngineは常時起動するような形になるため、一日数回レベルのアクセスの場合は、炭素排出量と費用が割高になってしまうので注意です。


終わりに

今回はある条件下でのCO2排出量とコストを計測しました。システムの利用用途や頻度を冷静に評価し、適切なアーキテクチャ(構成)で構築することで、炭素消費量を抑えることができることがわかりました。
また、Google Cloudでは、計測結果のように月ごとでのCO2排出量の計測ができ、環境に配慮できるような指標を提供しています。
この記事を読んだことをきっかけにあなたの立場でできる環境に優しい取り組みをされてみてはいかがでしょうか。

ITと脱炭素について、こちらのブログでもまとめていますので合わせてご覧ください。 炭素排出量削減を見越したアーキテクチャを構成したい方は弊社までご連絡ください。


備考:検証時の各スペック

サービス スペック
GCE) f1-micro: (メモリ 0.6 GB vCPU x 1)10GB永続バランスディスク
Cloud Functions メモリ割り当て料: 256 MB / CPU 割り当て量: 400 MHz
App Engine 第2世代 F1スタンダード (メモリ制限 256 MB CPU制限 600 MHz)