Amazon Auroraクラスターを構築する際には数多くの要素を検討する必要がありますが、中でも見落とされがちながら極めて重要なのがクラスターのストレージ構成です。StandardモードとI/O-Optimizedモードのどちらを選ぶかは、後の運用を大きく左右します。

Aurora StandardモードとI/O-Optimizedモードの選択
では、なぜこの選択がそれほど重要なのでしょうか。
この設定は、クラスターの課金方法を大きく左右します。適切なモードを選ぶことで、特にI/O負荷の高いworkloadsでは最大40%のコスト削減が可能です。
本記事では、Auroraの各モードの主な違い、コストへの影響、そしてAWS Auroraへの投資を最大限に活かすための戦略を解説します。
Amazon Auroraのコスト構造を理解する
最適なモードを選ぶ前に、まずAmazon Auroraの課金の仕組みを押さえておきましょう。主な構成要素は次の通りです。
- コンピューティング:クラスター内のインスタンスタイプとサイズに応じて課金されます。
- ストレージ:クラスターに割り当てたストレージ容量に応じて課金されます。
- I/O操作:全インスタンスでの読み書き操作の量に応じて課金されます。
これら以外にも、データ転送やバックアップ、追加で有効化できる機能など考慮すべき要素はありますが、最適なAuroraモードを選定するうえで決定的な要因にはなりません。
コンピューティング
Amazon Auroraの料金は、選択するモードによって変わります。コンピューティングコストでは、Aurora I/O-OptimizedモードがStandardモードより約30%高くなります。無視できない差ではありますが、判断材料の一部に過ぎません。

Amazon Aurora データベースインスタンス別料金
ストレージ
ストレージについては、Aurora I/O-OptimizedモードがStandardモードより125%高い設定になっています。これだけ見ると、特に大容量ストレージが必要な場合はStandardモードの方が経済的に思えますが、考慮すべき要素はほかにもあります。

Amazon Aurora データベースストレージとI/O別料金
I/O操作
一見すると、Aurora StandardはI/O-Optimizedモードよりも大幅に安く見えます。では、I/O-Optimizedモードの魅力はどこにあるのでしょうか。
最大の利点は、I/O-Optimizedモードでは料金にI/O操作が含まれていることです。これは、I/O負荷の高いアプリケーションにとって大きな分かれ目になります。
Auroraクラスターに最適なモードを選ぶ
AWSによると、I/Oに関する支出がAuroraデータベース全体の支出の25%を超える場合、I/O負荷の高いworkloadsではAurora I/O-Optimizedによって最大40%のコスト削減が可能です。
言うのは簡単ですが、その場で計算するのは容易ではありません。まずAuroraクラスターのI/Oコストを算出し、次にAuroraデータベース全体の支出を集計する必要があります。さらに、Auroraクラスターにはプロビジョンド型かServerless型かを問わず複数のインスタンスを含められる点も忘れてはなりません。見かけほど単純な作業ではないのです。
では、複数のAWSリージョンにまたがる100個のAuroraクラスターを管理し、これを定期的に手作業で確認する状況を想像してみてください。終わりの見えない、膨大な時間を要する作業になるはずです。
このような状況に対処するための推奨アプローチを紹介します。
新規Auroraクラスターを作成する場合
新しいAuroraクラスターを構築する際には、データベースが処理する想定IOPS(1秒あたりの入出力操作数)に応じて最適なモードを選びます。IOPSはクエリ量の目安として捉えるとよいでしょう。
開発環境や利用頻度の低いworkloadsでは、まずAurora Standardモードから始めることをお勧めします。一方、本番環境や常時クエリ量が多いworkloadsでは、Aurora I/O-Optimizedモードの方がコスト効率に優れる場合があります。
クラスターを数週間運用してメトリクスデータが十分に蓄積された段階で、改めて状況を見直し、StandardとI/O-Optimizedのどちらがよりコスト効率に優れるかを評価することをお勧めします。
既存のAuroraクラスターを評価する場合
既存のAuroraクラスターを評価する際には、煩雑な処理を肩代わりしてくれるPythonスクリプトの活用をお勧めします。このスクリプトはStandardとI/O-Optimizedのコストを自動的に比較し、現在の支出を明確に可視化することで、最もコスト効率に優れた選択肢を見極める助けになります。
https://gist.github.com/polius/5760117924b55d73f11434143596fd10
以下は実行結果の一例です。

rds-scan.py — 実行結果
なお、Aurora I/O-Optimizedへの切り替えは30日に1回可能で、Aurora Standardへはいつでも戻せます。StandardからI/O-Optimizedへの移行も、その逆も、ダウンタイムなくシームレスに行えます。
最後にもう1点、AuroraのParallel Query機能はAurora I/O-OptimizedのDBクラスターストレージ構成ではサポートされていない点に注意が必要です。データベースがこの機能に大きく依存している場合は、どちらが適切かを慎重に検討してください。
DoiTのミッション
これは、DoiTがお客様のクラウドインフラを堅牢かつコンプライアンスに準拠した、成功に向けて最適化された状態に保つために行っている数多くのチェックの一例にすぎません。
カスタマイズされたクラウドソリューションを専門とする180名以上のシニアクラウドエキスパートを擁する当社のチームが、お客様のインフラが最高水準のパフォーマンスとコンプライアンスを満たせるようサポートいたします。