AWS費用削減の方法
AWS費用の削減方法としては、まず第1に、確保しているが使っていないリソースを削減することを実施したい。 費用のかかり方として大きいのは、仮想サーバのEC2、Relational Database Service (RDS)であることが多い。EC2についてのコスト削減方法を以下に示す。
- 起動時間の制限
- スポットインスタンスの利用
- リザーブドインスタンスの利用
- インスタンスサイズの見直し
では、順番に解説していこう。
(1)起動時間の制限
シンプルに使う時間だけEC2インスタンスを起動する方法だ。時間帯が決まっているのであれば、それ以外の時間停止しておけばEC2インスタンス費用はかからない。1カ月30日として、24時間をかけると1カ月は720時間。
平日9時~19時の間のみ起動、平日22日間とすれば、稼動時間は約220時間、稼動費用は3分の1以下となる。起動停止は管理画面からも操作できるし、アプリケーションをビルドして自動で実行する基盤「AWS Lambda」や管理用サーバ上にてスクリプトを作成して自動化することも多い。
最近、Scheduled InstanceというサービスがAWSより発表されたが、残念ながらこの原稿を執筆した時点では、まだAWS東京リージョンでは利用できない。
(2)スポットインスタンスの利用
入札方式でインスタンスを買うという方式だ。通常より10分の1の価格で利用できる場合もあるので、コストパフォーマンスが高い。しかし、入札できなくなった場合は、インスタンスがターミネートされる。また、稀にだが入札価格が通常価格より高くなる場合もあるので、利用には注意が必要である。
(3)リザーブドインスタンスの利用
常時利用しなくてはいけないインスタンスに対して、使えるオプションだ。1年、もしくは3年間インスタンスを動かしつづける場合、このオプションを利用すると最大75%引きとすることができる。当然ながら、使わなくても費用が発生するので、利用は注意深く検討する必要がある。
(4)インスタンスサイズの見直し
Trusted Advisorなどを用いて、リソースが余っているEC2インスタンスを積極的に小さいサイズにしていくことで費用の削減が狙える。1や2と組み合わせて、時間でインスタンスサイズを変えるといったことも可能だ。ただしインスタンスサイズの変更は、EC2インスタンスの停止が必要なため、サービスを止めないようにするには、トラフィックをクラウド内の複数の Amazon EC2 インスタンスへ自動で分散するElastic Load Balancing(ELB)などを上手に使う必要がある。
RDSについては、停止はできず、スポットインスタンスもないため、リザーブドインスタンス、もしくはインスタンスサイズの見直しの方法が主となる。RDSを時間制限で起動できるようにするサードパーティーのサービスもあるので検討するとよいだろう。