B2Bのクラウドサービスとしては世界で最も利用されているAmazonのAWS(Amazon Web Services)。従量課金制で高いコストパフォーマンスも話題となっていますが、必ずしも常に最大限のコスト削減が実現できているとは限りません。
今回はAWSをさらに効率よく運用していくための、コスト削減に有効な施策について、いくつかのポイントをご紹介していきます。
なお、Amazonの公式ブログでは、AWSのコスト削減に向けた具体的な施策が丁寧に紹介されています。
今回はこちらを参考にしていますが、具体的な効果や方法をより詳しく知りたい場合は、以下のリンクから参考にしてみてください。
未使用項目のチェック
まず行っておきたいのは、AWSのサービスにおける未使用項目の有無についてです。
Amazon EC2やAmazon RDS インスタンスに注目
AWSで提供されているEC2は、仮想サーバーを構築するためのサービスとして人気の高さを誇ります。
EC2はインスタンスと呼ばれる単位ごとに管理されており、その稼働状況に応じて支払い料金も変化します。
そのため、もし週末や夜間、あるいは業務上は未使用状態ながら、サーバーはフル稼働させている場合、必要以上に支払い料金が発生している可能性があります。
このケースは、Amazon RDSの場合にも当てはまります。
データベース構築に活躍するRDSもEC2同様、どれくらいの時間を稼働させているかで料金が決まるため、必要以上の稼働時間が確認できた場合は、見直しが必要です。
AWS Instance Schedulerの活用がポイントに
不必要な稼働時間が確認できた際、あるいは今後そういった不要な稼働を抑えるために活用したいのが、AWS Instance Schedulerです。
このサービスは、EC2やRDSのインスタンスの稼働及び停止を、好きなようにスケジューリングすることを可能にします。
これまで手動でインスタンスの稼働状況を管理していた場合でも、このソリューションを導入するだけで自動的に効率的な稼働と停止を行うことができます。
例えば、平日の月曜から金曜までは稼働させ、土日祝は停止という基本的な設定から、個人的な稼働時間に合わせてのスケジュールまで、設定は柔軟に行えます。
導入はもちろん無料ですので、無駄な稼働時間が多く発生していた場合は、これで一気にコストの問題が解決する可能性もあるでしょう。
Amazon Redshift クラスターへの支払いにも注意
もう一つ注意しておきたいのが、Amazon Redshiftクラスターへの支払いです。
Amazon RedShiftはデータ分析や収集のための情報保管システムを提供するサービスで、こちらはクラスターと呼ばれる単位で管理されています。
EC2などと同様、Redshiftの料金もクラスターの稼働状況に応じて金額が決定するため、稼働の必要がないタイミングでシャットダウンしておく必要があります。
夜間や週末など、終業前にはしっかりと停止しておくようにしましょう。
クラスターの一時停止、及び再開は簡単に行うことができ、停止中はストレージ料金のみが発生します。
クラスターも特定のタイミングでのみ使うものがある場合には、必要な時がくるまで停止させておくという設定を忘れないことも重要です。
丁寧なクラスター管理は、コスト削減に大きく貢献します。
稼働率が低いものがないかのチェック
続いては、稼働率が低いものがないかのチェックについてです。
リソースの見直しと最適化を
先ほど紹介したEC2の事例を見てみましょう。
インスタンスの稼働時間について問題がなくとも、CPU使用率が低い場合は、必要以上にインスタンスへ料金を支払ってしまっている可能性があります。
肝心なのは、ワークロードに対して適切なリソースを提供することです。CPU稼働率が40%以下にとどまっている場合、リソースを見直すことも検討しておきましょう。
ただ、見直しが必要といっても適切な稼働率や今後の稼働状況の見通しが立たず、必要なリソースがわからないというケースもあり得ます。
そんな時は、Cost Explorerを使ったコスト分析がおすすめです。
Cost Explorerを導入し、コスト分析にかけさせることがで、EC2において必要以上に用意されてしまっているインスタンスを特定し、効果的な削減を実現することができます。
また、単に過剰なインスタンスがあることを伝えてくれるだけでなく、どれくらいのダウンサイジングが適切なのか、削除対象の推奨はどれかも教えてくれます。
そして、使用していないリソースについては、例え稼働率がゼロでも利用料金が発生しているものです。
そんな時は、Trusted Advisorと呼ばれるツールを活用し、不要なリソースの削減に努めましょう。
Trusted Advisorは現在のAWS環境を精査することで、コストの最適化を図ることができるだけでなく、システムパフォーマンスの向上やセキュリティチェックも行えます。
耐障害性など、定期的な検査が必要な項目についてのチェックも併せて行えるため、導入しておいて損はないツールです。
Amazon DynamoDBでのキャパシティモード活用
Amazon DynamoDBの設定の見直しも、コスト削減においては有効な施策です。
バックエンド業務において活躍しているAmazon DynamoDBですが、コスト対策としてはキャパシティモードをプロビジョンドからオンデマンドへの変更が理想的です。
キャパシティモードがプロビジョンドの場合、使用していないキャパシティが大幅に生まれ、必要以上に利用料金を支払っている可能性があります。
一方のオンデマンドの場合、データの読み書きのリクエストごとに料金が発生するため、必要な分だけ使用料金を支払えるようになります。
どれ程のコスト削減が実現するかは読み込みと書き込みの数に依存するため、必ずしもプロビジョンドよりも安くなるとは言い切れません。
しかしながら、コストパフォーマンスを考慮した運用を優先するとなると、一度試しておいて損はない施策と言えるでしょう。
最適なコスト削減機能の活用
最後に、AWSのコスト削減のために活用できる各機能をご紹介しておきます。
Amazon EC2 スポットインスタンス
一つ目は、Amazon EC2におけるスポットインスタンスの活用です。
スポットインスタンスは、AWSの利用において余剰となっているインスタンスを、格安料金で購入するための機能です。
あらかじめユーザーが入札上限額を決定しておき、それ以下の価格で利用できるインスタンスが登場した場合に、サーバーを利用することができるという仕組みです。
スポットインスタンス機能で購入する場合、価格は需要と供給のバランスに応じて決定するため、常に同じ価格で購入できるとは限りません。
しかし、安い時には通常のオンデマンド価格に比べ、最高で90%オフもの恩恵を受けることができるため、コストパフォーマンスを考えると決して無視できない機能です。
通常のインスタンスとの併用や、複数の入札価格設定を行い、安定してサーバーを動かせるような環境構築を心がけていきましょう。
また、スポットインスタンスの価格情報をあらかじめある程度把握しておきたい場合には、Amazon CloudWatchのAPIを取得することで可能になります。
CloudWatchはAWSの運用状況を確認する上でも有効なツールなため、こちらも積極的に活用していきましょう。
リザーブドインスタンス
通常、AWSの利用はオンデマンド料金体系が一般的ですが、あらかじめ予算を課金しておき、その料金分だけ使用できるプランも存在します。
それがリザーブドインスタンスと呼ばれる料金体系で、こちらは1~数年分の料金を一度に支払う代わりに、割引を適用してもらうことができます。
リザーブドインスタンスがもたらす割引額はかなり大きく、70%ものコスト削減につなげることも可能です。
AWSを長期的に活用することが見込まれる場合には、早期から実施しておきたい料金体系と言えるでしょう。
逆に、短期的なAWS運用においては料金分を使い切ることができないリスクもあるため、通常のオンデマンド料金の方がコストパフォーマンスは高くなるとも考えられます。
Compute Savings Plans
EC2やLambdaなどを継続的に、なおかつ一定量を使用し続けている場合、AWSの新しい料金プランであるCompute Savings Plansを適用させることが可能です。
Compute Savings Plansにおいて、ユーザーは通常のオンデマンド料金にこのプランを利用することができ、割引価格での運用が実現します。
Compute Savings Plansを適用することで、あらかじめ設定した使用量までは割引プランでの支払いとなり、それを超えた分はオンデマンド料金となります。
EC2の場合は最大で70%以上のコスト削減効果が期待でき、Fargateでも半分以上のコストカットを実現することが可能です。
Compute Savings Plansには2種類のプランが存在しており、一つが通常のCompute Savings Plans、もう一つがEC2特価のEC2 Instance Savings Plansです。
前者では様々なインスタンスに適用させることができるだけでなく、OSや地域にも依存しない料金設定を実現することができるため、汎用性に優れています。
一方のEC2 Instance Savings Plansは、その名の通りEC2に特化しており、地域もあらかじめ指定した場所でしか適用ができません。
しかし割引率についてはこちらの方が優れており、大きな変更予定がない場合にはこちらの利用がお得と言えます。
この2つの料金プランはまだ登場してまもないシステムであるため、どのプランを利用するのが最善かはわからない部分もあります。
しかし、これらもリザーブドインスタンス同様、長期的なAWS運用を考えている場合には、積極的に導入しておきたいプランとなりそうです。
今後もプランの適用対象については変更や追加が行われる可能性もあるので、公式ブログなどをチェックしておくと良いでしょう。
ONETECHはベトナムオフショアでシステム保守運用を提供
ONETECHはシステムやソフトウェア、アプリ開発をベトナムオフショアで開発しています。また開発したシステムの運用保守業務も実施しています。保守体制、エスカレーションルート、緊急対応などをクライアント確認しベトナムオフショアで保守体制を構築します。またシステム運用に関しても、クライアントとシステムのバージョンアップ計画を確認しながら対応しております。システム運用の場合はラボ契約を締結することがほとんどです。ラボ契約ですと市場やユーザーに対応した迅速なシステムの改修などが対応可能です。お客様からAWSをご要望されることがもっとも多いです。その際は弊社からもできるだけ効率的なAWS運用ができるように提案してまいります。
おわりに
AWSの運用はライセンス形式で行われる分、常に料金を支払い続けることが前提となります。また、少しでもこの負担を抑えるためにも、AWSは多くの選択肢やコストパフォーマンス向上のための機能を提供してくれています。これらの機能や料金プランを有効活用し、健全なAWS運用を実現していきましょう。