AWSでのコスト最適化を始める Instance Scheduler

2023年10月27日- By Rika Chinen
 

1. はじめに

こんにちは、アイレット Global Solutions 事業部Rackspace Business Unitセクションで DevOpsエンジニアを担当しています知念です。DevOpsエンジニアとしてAWSインフラの構築、CI/CD環境の構築・運用、自動化の推進などを行っています。

今回はAWSでコスト最適化を考える時、手っ取り早くコストを下げる方法の一つ、Instance Schedulerについて書きたいと思います。

コスト最適化を検討する時、現状の調査や改善実施プランの計画などで時間がかかることが多いと思います。Instance Schedulerの場合は、インスタンスの稼働時間を知っていれば、すぐに設定できるので、低リスクで簡単に大幅なコストカットの可能性があるソリューションです。

2. Instance Schedulerとは

Instance Scheduler は、定義されたスケジュールで自動的にEC2、RDSインスタンスを起動・停止するための仕組みです。AWS のサービスを組み合わせて提供されるソリューションで、図面にすると以下のようになります。(引用

3. 主なメリット

コスト削減:稼働時間外のリソースを停止することで効率的にクラウド予算を割り当てることができます。8営業時間だけインスタンスを稼働させる場合、1日あたりのインスタンスコストを66%節約することができます。

低リスク: 検討事項が少なく、すぐに実装できる。インスタンスのサイズダウンや不要なものを整理する場合、時間をかけてアセスメントする必要が多いと思います。Instance Schedulerの場合、必要な情報はインスタンスの稼働時間のみです。

自動化によるエラー防止: 手動でインスタンスの起動や停止を実施する場合、ヒューマンエラーなどが起こる可能性がありますが、自動化することで担当者のタスク低減とエラーのリスクを回避できます。

簡単な設定: CloudFormationをデプロイしてしまえばほぼ完成。エンジニアでなくとも実装可能です。

4. 実装方法の超概要

実装方法は以下のステップです。公式の実装ドキュメントは61ページあるので複雑そうですが、実は以下のステップを踏んでいるだけです。個人的にはこちらのブログがとてもわかりやすかったです (link)

  • AWSが提供するCloudFormationテンプレートを使用して、必要なリソースをデプロイする。(公式ドキュメントの「CloudFormationテンプレート」リンクで取得できます)
  • ステップ1でデプロイしたDynamoDBのテーブルを修正してスケジュールを設定する。
  • 対象のEC2またはRDSインスタンスに定義したタグを付与する

AWSがCloudFormationのテンプレートを提供してくれているので詳細をあまり理解していなくても自動的にデプロイされます。実装時間は1時間以内で前提知識は不要です。

CloudFormationのテンプレートを使うと以下のリソースがデプロイされます。(主なリソースを抜粋しています。実際はもっとあります。)自分で設定する部分はDynamoDB (ConfigTable) のスケジュールと対象インスタンスのタグ付けのみです。

5. まとめ

AWSでコスト最適化の取り組みを始める時、まずはInstance Schedulerでインスタンスの自動停止と起動を実装してみてはどうでしょう。導入することでコスト削減はもちろん、運用担当者の業務効率化にも役立てることができます。 AWSのコスト最適化、インフラ設計、構築、運用ついてご質問、不明点などありましたらお気軽にご連絡ください。

Rackspaceについて

Rackspace Technologyの日本国内サービスは、アイレット株式会社Global Solutions事業部より提供させていただきます。

Amazon AWSとMicrosoft Azureの導入検討のコンサルティング(勉強会)から構築、運用・保守までワンストップのクラウド支援サービスです。

お客様のご要望に柔軟に対応いたしますので、まずはお気軽にご相談ください。