AWS で MySQL を利用できる「RDS」と「EC2 + MySQL」を比較

クラウドサービス AWS

AWS で MySQL を利用する場合、主に2つの選択肢が存在します。
マネージドサービスの「RDS」か、自前で管理する「EC2」の2択です。

  • Amazon RDS を利用する
  • EC2 に MySQL をインストールする

 
基本的には RDS を推奨しますが、コストを最小化したい場合は EC2 も選択肢に入ります。



運用負荷が楽な「RDS」、コストが低い「EC2 + MySQL」

RDS と EC2 + MySQL の構成について表にまとめました。
メリット・デメリットは、運用負荷とコストのどちらを重視するかで決まります。

構成 メリット デメリット
Amazon RDS データベースの運用負荷が低い コストが高い
EC2 + MySQL コストが低い データベースの運用負荷が高い

 
個人利用などで可用性を求めない場合は、EC2 + MySQL もアリです。

構成 向いているパターン 不向きなパターン
Amazon RDS 規模の増減が見込まれる
アプリ側の開発に集中したい
データベース構築・運用の学習用途
EC2 + MySQL 小規模なシステム
DB 構築の学習がしたい
高い可用性が求められるシステム

RDS は運用の手間が掛からずサイズの変更にも強い

Amazon RDS を利用する大きなメリットは、運用負荷が低いことです。

データベースだけを借りられるため、OS のメンテナンスやディスク残量の心配が不要です。
バックアップやパッチの適用も AWS が行ってくれます。

クラスタも簡単に作成でき、インスタンスの追加や削除が画面上から行えます。
拡張性も高く、データベースを止めずにサーバーサイズの変更も可能です。

 
ただし、小規模システムの場合は、コスト面でデメリットになることがあります。
RDS 専用にインスタンスを動かし続ける必要があり、月額2,000円前後が最低ラインです。

必要に応じて、リザーブドインスタンスなどを活用しましょう。
AWS の EC2 インスタンス料金を節約する3つのワザ

EC2 + MySQL は安価だが自前運用が必須

EC2 インスタンスを用意し、MySQL をインストールする手もあります。

インスタンスサイズを引き上げた場合は、MySQL のパラメータも修正が必要です。
RDS の場合とは異なり、MySQL の面倒を見るという運用が発生します。

 
EC2 に MySQL を入れるメリットは、コストを抑えられることです。
Web サーバーと同じインスタンスを活用できれば、DB で追加費用が掛かりません。

ただし、サーバーを同居させることはリスクの増大の一因となります。
インスタンスに障害が発生した場合は、Web にも DB にも影響が出てしまいます。

リスク面や運用の手間を踏まえてでもコストを下げたい場合は、有力な選択肢です。

まとめ

AWS における「RDS」と「EC2 + MySQL」の構成を比較しました。

マネージドサービスのメリットが大きいため、殆どのシーンにおいて RDS が推奨です。
EC2 + MySQL で利用する場合は、運用やリスクの検討を怠らないようにしましょう。

【関連記事】
AWS 用語の解説(データベース編)
Aurora エンドポイントの使い分け
MySQL 8 のインストール手順 (CentOS)
MySQL 8 のインストール手順 (Ubuntu)
MySQL のクエリ結果を整形・縦表示する
MySQL データベースが遅いときの調査方法