RDS のストレージを見直してコストダウンを図る
Posted on
- #aws
RDS のストレージを改めて見直すことで月 244 ドルのコストダウンに成功しました。特に目新しいことをしたわけではありませんが、昔から RDS を使っている人こそ盲点かもしれません。
RDS の 3 つのストレージ
RDS のストレージは EBS と同じように 3 種類あります(Amazon RDS のストレージ)。
- Magnetic (Standard) - standard
- General Purpose (SSD) - gp2
- Provisioned IOPS - io1
これまでは Provisioned IOPS に 1000 IOPS を指定していました。
普段のワークロードはあまり高くないのですが、特定の機能で一時的に跳ね上がるため Provisioned IOPS を選択していました。 RDS に移行したときは General Purpose がまだ使えなかったので仕方ないと言えます(使えるようになったのは 2014/10/09 から)。
General Purpose はコスパが良い
改めてベンチマークを取ってみると General Purpose のコスパの良さに気付きます。
Magnetic では容量に関係なく 100 IOPS 程度しか出ませんが、General Purpose は 3 IOPS/GB と容量に比例して IOPS を伸ばすことができます。また I/O クレジットが貯まっていれば短時間は 3,000 IOPS までバーストします。
先ほども書いたように、特定の機能を使うと一時的に 400 〜 500 IOPS に跳ね上がります。これを捌くには 150 GB (150 GB × 3 IOPS = 450 IOPS) あれば希望する IOPS が得られます。足りない部分は I/O クレジットによるバーストでカバーします。
実際に 150 GB のストレージを Provisioned IOPS から General Purpose にスペックダウンしてベンチマークを取ってみましたが、 アプリケーションのレスポンスはまったく落ちませんでした。
ただし、ストレージを変換するのはそれなりに時間がかかるので(150 GB で約 8 時間)、スナップショットから別インスタンスを立ち上げて接続先を変えるのが良さそうです。
ストレージコストを比較する
150 GB (Multi-AZ) のストレージでコストを比較してみます(2015/07/22 時点の料金)。
- General Purpose: $41.4
- ストレージ料金: $0.276 × 150 GB = $41.4
General Purpose はシンプルにストレージ料金のみで構成されます。
- Provisioned IOPS: $285
- ストレージ料金: $0.30 × 150 GB = $45
- IOPS 料金: $0.24 × 1000 IOPS = $240
Provisioned IOPS はストレージ料金に IOPS 料金が上乗せされます。この IOPS 料金が非常に高い…。
というわけで、差額は月 244 ドルになります。月 1,600 ドルほど支払っていたので 15 % のコストダウンになります。インスタンスはリザーブドインスタンスを買うことで割引を受けられますが、ストレージには割引が効かないのでこの差は大きいです。
まとめ
General Purpose がリリースされる前に設計した RDS の場合、ストレージを見直すことで性能を落とすことなく大幅にコストダウンできるかもしれません。
RDS に限らず AWS は進化のスピードが速いので、過去のノウハウを定期的に棚卸ししてキャッチアップすることで最大限にメリットを受けられます。オンプレ脳は捨てて AWS 脳で考えることが大切ですね。