こんにちは、ちゃりおです。
AWSの利用料金できたら安く抑えたいですよね。
ビジネスサイドからも安くしてほしい要望があるかもしれません。
収入を増やすより、支出を減らす方が楽なこととが多いと思います。
例えば、運用しているWebサービスで100円稼ぐより、開発環境のサーバを使わないとき
停止して100円節約するほうが楽だと思います。
今回は、そんなAWSのコスト節約についてです。
コスト節約方法
一般的に、EC2とRDSのインスタンス使用料金が全体の6~8割といわれています。
EC2・RDSの利用料金を節約することが、AWSのコストカットへの近道です。
現在の使用料金は、請求ダッシュボードやCostExploreでみれます。
節約方法は以下です。
- インスタンスサイズ・ファミリーを最適化する
- リザーブドインスタンスを購入する
- 使わないときは開発環境とステージング環境を停止する
- マネージドサービスを使用する
- おまけ Alexa Skillを開発する
インスタンスサイズ・ファミリーを最適化する
インスタンスサイズがひとつ大きくなると、料金は大体2倍になります。
構築当初では最適だったかもしれないけど、現在はオーバースペック気味なインスタンスがいるかもしれません。
Cloudwatchなどでリソースの状況を確認して、定期的にインスタンスサイズの見直しを行うのがおすすめです。
インスタンスサイズの変更は、再起動は必要ですがマネジメントコンソールから簡単にできます。
また、インスタンスファミリーを新しくすることで料金を節約できます。
新しいインスタンスファミリーだとスペックが高くて料金が安い場合があります。 (m4→m5に変更など)
リザーブドインスタンスを購入する
インスタンスの最適化ができたら、リザーブドインスタンスを買うのがおすすめです。
料金の節約額が大きいです。(最大で利用料金の75%)
詳しくはこちらに、まとめています。
使わないときは開発環境とステージング環境を停止する
土日や夜間は、開発環境とステージング環境を落としておきましょう。
例えば起動時間を8:00 ~ 21:00(土日停止)にした場合、24時間起動している場合と比べて料金を40%削減することが出来ます。
停止するためには、自動起動停止の仕組みを作っておくと楽です。
AWS公式のInstance Schedulerを使うと簡単に自動起動停止ができます。
Cloudformationのテンプレートが用意されているので、実行して対象インスタンスにタグを付けるだけです。
Instance Scheduler
EC2 SchedulerでEC2インスタンスをスケジュール操作してみた
マネージドサービスを使用する
バックグラウンドの処理をLambdaにするなど、できるだけマネージド・サービスを使うのがおすすめです。
Lambdaは、サーバの管理不要でコードを実行できるサービスです。
AWS Lambda はとにかくコストが安く、確実に動く安心感があります。Amazon EC2 での同等な構成と比較すると、コストは 10 分の 1 程度になります。
AWS Lambda のように運用管理の手間が大幅に削減される環境は大きなメリットです。コスト削減はもちろん、それにより削減される時間と手間を、新たなサービス開発に充てることができるからです。
猪飼 大志氏
株式会社 日本経済新聞社 デジタル編成局 編成部
おまけ Alexa Skillを開発する
Alexa Skillは、Amazon Echo等のスマートスピーカーで使える「追加拡張機能」です。
Alexa Skillを作って、スキルを公開すると100ドル分のクレジットが貰えます。
その後は、Alexa Skillによって料金が発生した場合、毎月100ドル分のクレジットがもらえます。
DynamoDB使うと料金発生することが多いので、クレジットもらます。
小規模なサービスだと100ドルは大きいので、作ってみることをおすすめします。
作るのも簡単で、Lambdaを使って簡単にできます。
また、コードを書かずに作れるサービスもあるそうです。
まとめ
今回は、AWSの節約術についてです。
小さい節約でも、積み重ねると大きな額になるのでいろいろ施策をやるのがおすすめです。
- インスタンスサイズ・ファミリーを最適化する
- リザーブドインスタンスを購入する
- 使わないときは開発環境とステージング環境を停止する
- マネージドサービスを使用する
- おまけ Alexa Skillを開発する