「ワイくん、来月からサーバー費用30%削減でよろしく。」

[Ateam Group U-30 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/ateam-group-u30)の11日目は
株式会社エイチームライフデザインの @yutaroud が担当します。

# はじめに
この1年で、円安によって1ドルの価値がかなり上がってしまいました。
結果、AWSやGoogleCloudなど海外のクラウドサーバーを使用している場合、同じ性能のものであっても、1年前とではコストに大きな違いが発生しています。

今回は、工夫次第で、コストは削減できる！という話をします。
私の所属している開発チームでは主にAWSを使用しているので、AWSのコスト削減について取り上げます。

※先に断っておきますが、この話はフィクションです。実際の人物・団体とは関係がありません。

## とある日

ｼｬﾁｮｳ「ワイ君、システムの費用、最近上がってきてない？　特に何も聞いてないけど、このままだと厳しいよー」

ワイ「すんません。円安の関係で、システムは何も変えとらんのですけど、費用が高くなってきとるんです。」

ｼｬﾁｮｳ「この1年で110円台から140円台まで上がったもんなあ。とはいえ、カツカツやからなんとか1年前と同じ水準に戻してくれんと困るで。来月までに頼むでー」

ワイ「いやいや、そんな急に言われてもキツイですって」

ｼｬﾁｮｳ「やれ。」

ワイ「はい。」


側から見ていたコウハイ君
|･ω･)「ワイさん、大変そやなぁ...」

### どう安くするか

ワイ「いやぁあ、来月までに安くするってほんまにできるんかいな。しかも1年前と同じ水準て。。30%くらい削減せなあかんやんけ！」

パイセン「ん、いけると思うで。」

ワイ「ほんまですか！！」

パイセン「安くする方法ってどんな選択肢があると思う？」

ワイ「ん〜。
* サーバスペックの見直し
* 不要物がないかのチェック
* プランの見直し

ってとこですかね〜。」

パイセン「大体そんなとこやろな。じゃあ今言った選択肢が取れそうかどうか、まずは現状の状況をチェックしていこか。」

### 現状を知る
　パイセン「うちはAWSをメインに使ってるから、CostExplorerでまずは状況をチェックしよか。」
![スクリーンショット 2022-12-10 14.37.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/510bf666-281e-b444-10c3-ed653e2794aa.png)
(※筆者個人のアカウントのCostExplorerです。例として図示。)

ワイ「EC2とRDSで60%以上占めてますね〜。後はCloudWatchとElastiCache、ECSやOpenSearchあたりも結構使ってますね。」

パイセン「せやな。じゃあまずはEC2とRDS周りから見直していこか。」

### 対策を取る
パイセン「ワイ君、EC2とRDS、削除以外で、一番コスト減らせる方法はなんやと思う？」
ワイ「スペックを下げる...ですかね？」
パイセン「せや。スペックを一つ落とすだけで、コストは半減するんや。」
![スクリーンショット 2022-12-10 15.03.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/a644b9bc-dc34-5371-1dea-64e31b5e2657.png)
(同一世代で1つスペックを落とすと価格は半分になる)

#### サーバースペックの見直し
ワイ「って言っても、スペックの見直しなんてどうやるんですか？」
パイセン「EC2の場合は[AWS Compute Optimizer](https://aws.amazon.com/jp/compute-optimizer/)を使うのがおすすめや。RDSの場合はCPU使用率が30％未満、I/Oが30％未満を目安に検討してみるとええで。[(Optimizing costs in Amazon RDS)](https://aws.amazon.com/jp/blogs/database/optimizing-costs-in-amazon-rds/)」
ワイ「おぉー。とりあえずスペック上げてたやつが結構ありますね。ここら辺は検討してスペック落とすのもありですね。」
パイセン「あと、常時稼働の必要がないものはサーバレスを検討したり、[EventBridge](https://aws.amazon.com/jp/eventbridge/)使って、EC2を夜間の自動停止、朝の自動起動をさせるのもアリや！」

パイセン「スペック見直したら、次、いらないものがないか見ていくで！」

#### 不要物がないかのチェック
パイセン「ここからは[TrustedAdvisor](https://aws.amazon.com/jp/premiumsupport/technology/trusted-advisor/best-practice-checklist/)を使いながら、一つ一つチェックしていくで！」
ワイ「TrustedAdvisorってなんですか？」
パイセン「関連付けされてないElasticIPアドレスとか、アイドル状態のRDSやロードバランサーを見つけてくれるんや。後で話す[SavingsPlans](https://aws.amazon.com/jp/savingsplans/compute-pricing/)や[リザーブドインスタンス](https://aws.amazon.com/jp/ec2/pricing/reserved-instances/)の最適化の提案もしてくれるやで！」
ワイ「結構たくさん、使ってないやつあるなあ。一つ一つ削除してかな。」


パイセン「後は、ECRやS3のライフサイクルポリシーも設定したほうがええな！　ログずっと溜まっとるし、ECRに過去のコンテナイメージめっちゃ残っとるで！！」
ワイ「ライフサイクルポリシー？」
パイセン「基準を設定して、その基準を越えると、自動的に削除されるんや。たとえば30日以内のものだけ残すみたいなことができるんや。」
ワイ「めっちゃ便利ですね！設定完了したからこれで安心ですね！」

パイセン「最後に、プラン周りの見直しいくで！」

#### プランの見直し
パイセン「AWSにはコストを最適化するためのお得なプランがあるんや！
SavingsPlanとリザーブドインスタンスを使うと割引を効かせた状態でサーバーを使うことができるで！」

ワイ「SavingsPlanとリザーブドインスタンス？それぞれどういう違いがあるんですか？」

パイセン「SavingsPlanは一年間または三年間通じて、1時間にいくら使うか予め料金を決めておいて、その決めた料金についてはコスト削減対象とするって感じで、リザーブドインスタンスは予めこのインスタンスを1年または3年使うの約束してくれたら安くするでっていうプランやな。」

パイセン「それぞれ、細かい条件や設定もあるけど、SavingsPlanは予めインスタンスの総額費用を平均して、先に申請することで割引価格が適用されて、
リザーブドインスタンスは特定のインスタンスの使用を先に申請することで割引価格が適用される、って覚えておくとええで。」

パイセン「あと、SavingsPlanは条件によってはFargateも対象になるからチェックやで。」

ワイ「ありがとうございます！めっちゃ助かりました！早速費用の計算をしてみます！」

### エピローグ
ワイ「パイセンのおかげで、なんとかギリギリ30%費用の削減が完了できそうです！ありがとうございます！！」
パイセン「ええで。また何かあったら頼ってくれやで！」

1ヶ月後...

ｼｬﾁｮｳ「ワイ君！！先月よりもコストが高くなってるんだけど、どういうことか説明しなさい！！！
ワイ「えぇ！？そんなはずは、確かに新サービスのローンチもありましたけど、それ含めても削減できたはず...」
コウハイくん「ワイさん！今回の新サービス、きっといっぱいユーザー来ると思うので、スペック高めにしておきました！！」

ワイ「そんなぁあああああああ....頑張って削減したのにーーーーーー！！！！」

パイセン「ちゃんとコストの意識をみんなで持つようにせなあかんかったな...」

終

# おわりに
AWSを例に、会話形式でコスト削減について説明しました！

最後に一つ言いたいことは、**コスト削減の意識**を持つことが大事ということです。
具体的な方法を元に、コスト削減をしていくのはもちろん大事なのですが、そもそもコスト削減しようという状況が作れないと、気づかぬうちにかなり無駄なコストを消費している可能性があります。

ぜひ、一度の見直しで終わらず、計画的なコストの削減について考えてみてください！

最後までお読みいただきありがとうございました。
引き続き、[Ateam Group U-30 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/ateam-group-u30)をお楽しみください！


## 参考文献
https://aws.amazon.com/jp/premiumsupport/knowledge-center/cloudwatch-understand-and-reduce-charges/

[AWS のコスト最適化⼊⾨](https://d1.awsstatic.com/events/jp/2017/summit/slide/D2T2-7.pdf)

[『RIとSPの使い所と具体例を徹底解説！AWSコスト最適化ウェビナー』の資料「RI と SP って何が違うの？選択において押さえておくべきポイント」を公開します](https://dev.classmethod.jp/articles/ec2-reserved-instances-savings-plans-comparison-seminar/)

[EC2 でリザーブドインスタンス（RI）と Savings Plans （SP）のどちらを選ぶべきか？基準とするための最強の比較表を作ってみた](https://dev.classmethod.jp/articles/ec2-reserved-instances-savings-plans-comparison/)

[Amazon EC2インスタンスタイプの選び方ガイド](https://pages.awscloud.com/rs/112-TZM-766/images/C2-07.pdf)

[AWS Compute Optimizer を試してみた](https://qiita.com/kc_n/items/4f367e7f4fd07d1777d5)

[RDS のコスト最適化手法](https://blog.serverworks.co.jp/optimizing-costs-in-amazon-rds)