コスト削減の軌跡 Part1
始めまして。バニッシュ・スタンダードでインフラを担当していますTmaと申します。
インフラ担当の使命は、基本的には目立たず健やかにインフラを稼働させることだとは思っています。そんなインフラ担当が目立つ数少ないポイントの一つがコストカットです。
そこでバニッシュ・スタンダードのInfra Teamが行ったコスト削減の軌跡をご紹介したいと思います。今回はコスト削減を実施する前段、どのように着手していったかをご紹介します。
金脈を探り当てる
普段からインフラのメンテナンスを行なっていると、無駄にコストを食っているリソースとか、改善したらコストが浮きそうな箇所はなんとなく当たりがついてくるものですが、そこで闇雲に手を出しても効果は限定的です。
パフォーマンスチューニングの文脈でも語られる「推測するな、計測せよ」がコスト削減にも言えます。
まずは何にコストがかかっているか現状を見極めて、最もコストがかかっている箇所でコスト削減のタネがないかを考えます。
当たり前ですが大抵のコスト削減は元の金額に対しての割合で効いてくるので、元の金額が大きい項目ほど、コスト削減の効果が大きくなります。
作業コストを見積もる
金脈がどこかを見定めた上で、何をするかを考える段になるのですが、コスト削減にかかる手間を無視するわけにはいきません。
また、システムはインフラだけで構成されているわけでなく、その上で稼働するアプリケーションありきです。
インフラだけで完結するコスト削減もあれば、アプリケーションの変更を伴うものもあります。
コスト削減は重要ですがシステムが提供しているサービス品質を落としてしまったり、コスト削減の作業負担によりサービスの改善速度を大きく損なうようではいけません。
上記を踏まえ、コスト削減の作業コストは大きく分けると下記に大別されます。
- インフラの変更コスト
- アプリケーションの変更コスト
インフラ・アプリケーションの変更パターンの組み合わせを考察します。
1. インフラもアプリケーションも変更がない
AWSの契約形態を変更するケースなどが当たります。
2. インフラは変更するが、アプリケーションは変更がない
不要なリソースを削除したり、インスタンスタイプやネットワーク経路の最適化を実施したりする変更です。
3. アプリケーションは変更するがインフラは変更がない
アプリケーション側で無駄にインフラコストが嵩むような処理をしてしまっている箇所を改善したりします。
例えば無駄に高品質な画像を扱うようになってしまっていて通信コストが嵩んでいる際に、アプリケーション側の変更を行う場合などです。
4. インフラもアプリケーションも変更する
アプリケーションとインフラを最適化しながらコスト削減を行ないます。
コスト削減と併せてパフォーマンスや耐障害性の向上も行うことで、コスト削減以外のメリットで実施の正当性を高めることもポイントになります。
システム構築時にはなかったサービスや当時考慮しなかったサービスを活用することで、コストを削減しメンテナンス性を向上します。
1, 2についてはインフラチームだけで完結する事柄が多いので、インフラチーム内でチケット管理しながら順次進めていくことになります。
3については原因を特定次第、アプリケーションチームに変更依頼をお願いします。
4については設計からリリースまでアプリケーションチームと連携をとりながら進めていきます。一番手間がかかりますが、コスト以外のメリットも含めると一番効果が高い内容になることが多いです。
まとめ
今回はみんな大好きコスト削減について、まずはどういったアプローチで着手していったかをご紹介しました。
次回はもう少し具体的なコスト削減内容をご紹介したいと思います。
Discussion