5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CAMPFIREAdvent Calendar 2021

Day 16

【コスト削減】検証環境をSlackから停止できるようにした話【QA止める君】

Last updated at Posted at 2021-12-15

記事の内容

CAMPFIRE社内で使用している検証環境(社内では、QA環境と呼ばれている)をSlackから停止して、コスト削減した話

自己紹介

こんにちは、CAMPFIRE SREの榊原です。
本日はCAMPFIREアドベントカレンダーの一つとして、QA止める君(SREチームの方が命名してくれました笑)についてお話したいと思います。

CAMPFIREの検証環境について

検証環境って大切ですよね。
新しい機能をリリースする際に、ローカルだけではなく、ちゃんと本番と同じ構成のインフラ上で動作させて、挙動を確認したり。
企業によっていろいろな検証環境があると思います。
例えば、

  • 小規模なスタートアップでしたら、プロダクション環境とステージング環境のみがあって、ステージングで動作確認をする
  • 中規模な企業でしたら、ステージング・プロダクションとは別に、検証環境用のインフラがあり、そこにリリースして、検証が終了したら、他のエンジニアに譲る(一つの検証環境をみんなで使い回す)

などなど。

CAMPFIREの検証環境(QA環境)

CAMPFIREでは、githubのブランチに qa というプレフィックスをつけてpushすると、自動で検証環境が一つ出来上がるようになっています。
そのため、アプリケーションエンジニアは、自分が作りたいだけ検証環境を作成することができます。
この環境は、非常にエンジニアフレンドリーで、QA環境の取り合いが起こることがないのですが、1点問題があります。

コスト問題

それは、コストが肥大化すること。
CAMPFIREのインフラ構成は、ECS(EC2)で動いているため、検証環境の数だけEC2が増えていきます。
定期的に検証環境を削除するバッチが走っているのですが、データを保持し続けたい検証環境も存在するため、高頻度で削除バッチを回すことができず、ちょっとした修正の検証環境も1週間ほど残り続け、コストが肥大化する問題がありました。

QA止める君

そこで、QA止める君(SREチームの方が命名してくれました笑)を作成しました。

QA止める君の概要

QA止める君は

  • slackのアクションにて、現在のQA環境一覧を取得する
  • 停止したいQA環境を選択
  • 停止ボタンを押す

だけで、作成したQA環境を停止することができます。

コスト削減できたのか?

はい!
CAMPFIREでは、DatadogとAWSを連携して、毎月のコストを確認しています。そこで、QA環境のみのEC2のコスト推移を確認しているのですが、QA止める君の導入以降、QA環境のコストが削減できました。

QA止めるくんの技術構成

  • slack
  • API Gateway
  • Lambda

にて作成しています。
slackからAPI Gatewayのエンドポイントを叩き、API Gatewayと連携したLambdaが停止の処理を行っています。

まとめ

コスト削減は大事!
SREチームは基本的にユーザーが直接使う機能をリリースしないため、サービスの売上への貢献度が曖昧になりがちです。
しかし、コスト削減は確実に会社の利益に直結するかつ、SREの腕の見せどころでもあるため、これからもコスト削減に取り組んでいきたいと思います!

We are hiring

CAMPFIREでは、一緒にCAMPFIREの信頼性を担保してくれるSREエンジニアを募集しています。
少しでも、興味がある方は、是非、応募してください!

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?