🏅

「コスト削減」よりも大事なこと。「現状を知る」という第一歩

に公開

はじめに

クラウド利用にコスト問題はつきものです。例えば上司から「コストを下げて」と言われたら何から始めますか?

  • RI/SavingsPlans を購入する
  • ストレージクラスを見直す
  • インスタンスタイプを変更する

もちろんこれらは有効な解決策ですが、「現状の把握なし」 にこれらを実施すると、長期的にはクラウド環境が不健康な状態になってしまうと考えます。

削減だけを目的にし、目先の施策を実施してしまうことは健康診断前に急に食事を抜いたり、禁酒したりして短期的に数値を良くみせるようなものです。

クラウドを正しく使い運用するために大切なことは、長期的に健全な状態を保つことです。そのためにはまず、「今の自分(クラウド環境)がどんな状態なのか」正しく知ること。が重要だと考えます。

「現状を知る」ことに焦点を当て、利用状況の把握をステップごとに整理していきます。

現状把握のステップ

Step1: Organizations/アカウントを把握する

企業利用の場合、マルチアカウント運用をしているケースがほとんどだと思います。Organizations メニューで、所属しているアカウント全体を一度チェックしてみましょう。把握していないアカウントが所属しているケースがあるかもしれません。

  • 把握しているアカウントと差異がないか
  • 直近で新規に作成されているアカウントがないか
  • 直近でOrganizationsに所属したアカウントがないか

Organizations で管理するアカウントにはタグを割り当てることも可能なので、タグ管理(部署、プロジェクト、環境など)するのも良いかもしれません。

Step2: コストの全体像をつかむ

Cost Explorer で確認していきます。
この段階では、「どれくらい使っているか」を俯瞰的に見ます。グラフ化して、全体傾向を感覚で掴むのがポイントです。Organizations 全体を見た後は、Group by の Dimention を「Linked account」「Service」などに変更して確認していきます。

「思っていたより全体のコストの上がり方が急だな」「開発環境アカウントの利用料が4月から急に上がり出したな」など、自身が把握している状況との違和感を感じる、見つけるのが目的です。

  • 直近1年間の Organizations 全体の月次利用推移を確認
  • アカウント別の月次利用推移を確認
  • サービス別の月次利用推移を確認など

Step3: アカウント単位もしくはサービス単位で利用状況を掘る

次に、「どのように使っているか」利用状況をさらに掘り進めます。
Cost Explorer にはフィルター機能があるので、詳細に確認したい「アカウント」や「サービス」をフィルターして利用状況を確認していきます。

利用料が多いものや Step2 で気になったアカウントやサービスを掘り下げていくのが良いと思います。

  • アカウント別利用料の上位のアカウントから利用状況を確認する
  • サービス別利用料の上位のサービスから利用状況を確認する
  • Step2 で違和感を覚アカウントの利用状況を確認する
  • Step2 で違和感を覚えたサービスの利用状況を確認する

Step4: リソース別、API オペレーション単位で掘り下げる

さらに利用状況を掘り下げます。
「どこに」「なぜ」コストが発生しているかを見極めます。
確認したいサービスをリソース別やAPI オペレーション単位で把握します。DynamoDB の例でいうと、どのテーブルに対するコストが高いのか。また、そのテーブルに対しては read request のコストが大きいのか、それとも write request が多いのか。など掘り下げていきます。

Step5: 現状を把握し 「なぜ」 を言語化する

最後は、「なぜこの利用になっているのか」を考える段階です。
Step4 まで掘り下げていくと、利用状況の大部分の状況が分かってきていると思います。

たとえば

  • EC2 の利用料が多かったが大部分が snapshot 費用だったため、ルール見直しを考えよう
  • DynamoDB の XXX テーブルの利用料が多かった。内訳として write request がなく read request が大半なのが想定と異なるので、CloudWatch metrics を使って調査を進めるか、呼び出し元のアプリケーションを確認してみよう
  • S3バケット YYY はアーカイブ目的だったのに Standard クラス の利用料となっていた。クラスの見直しをしよう

利用の背景を言語化することで、チームと議論したりコスト削減策を具体的に考えることができるようになると思います。
単なる数字ではなく、「なぜこのコストが発生しているのか」を理解することが最も重要です。

現状を知ることは、長期的にチームを強くする

表面的な数値ではなく、「なぜそうなっているのか」の現状を把握することが必要です。
組織が大きい場合は Step3 以降はかなり大変な作業だと思います。その場合、それぞれの部署やチームと協力分担して進めることが必要だと思います。これらの現状把握が1つの会話のきっかけとなり、改善され、長期的なクラウド運用の健康に必ずつながると思います。

新規のプロジェクトやサービス終了など、クラウドを利用し続ける限り、利用状況も変化し続けます。 継続的、定期的に現状把握をし続けることが重要です。

  • 可視化し責任と自立を促す
  • 定期的に利用状況をレビューする文化をつくる
  • カイゼンする

このサイクルを継続的に回すことで、クラウド運用を適正化し、長期的に強いチームへと進化させていきましょう!

アルファス株式会社

Discussion