システムを作るときに、データベースサーバを使うことが多いのではないのでしょうか。
AWSのリレーショナルデータベースのサービスはRDSとなります。
RDSを使ってみよう、そんな方がAWSの公式HPを見てみると

専門用語が多すぎてわかりづらい。。。
よし!AWSは来世に覚えよう!
と思いたくなるところです。
私も公式HPを見てもさっぱり理解できないので、色々なサイトを見ながら徐々に理解していきました。
色々なサイトを見て理解していくのも大変なので、このページ1枚でRDSの内容を5分でわかるようにまとめたいと思います。

それでは早速Amazon RDSをわかりやすく解説していきます!
Amazon RDS概要
Amazon Relational Database Service(Amazon RDS) は、名前の通り、AWSのリレーショナル・データベースサービスです。
最大の特徴はフルマネージドのデータベースサービスという点です。
フルマネージドという用語はAWSでの頻出ワードなので解説します。
フルマネージドは「コンピュータ障害監視・バックアップ・ソフトウェアのバージョンアップ」など「運用に関わる作業」をクラウド業者が行ってくれる形態のサービスです。

フルマネージドは「使うサービス以外の細かい運用業務はAWS側で行いますよ」というイメージです。
RDSのフルマネージドは「データベースを使うところは提供するので、バックアップとかOSのバージョンアップとかはこっちでやりますね」といった感じです。
RDSのメリットは下記の通りです。
RDSのメリット
- 数分で簡単に構築できる
- 高い可用性を実現
- 高パフォーマンスを実現
- 低い運用負荷
- 高セキュリティ
RDSのメリットを詳細に解説します。
メリット① 数分で簡単に構築
AWSの管理画面上で数クリックするだけで、DBを起動することができます。
また、選択するだけで下記のような高度な機能を実装できます。
【高度な機能】
• マルチAZデプロイメント
• リードレプリカ
• バックアップ(スナップショット)
• 監視(CloudWatch)
• 拡張モニタリング etc..
これらの機能を活用することで、多数のメリットを享受できます。
メリット② 高い可用性
DBを複数のAZに置く、マルチAZデプロイメント(Multi-AZ)機能を使うことで、高い可用性を実現できます。
マルチAZデプロイメントを使うと、AZ1つをPrimary、もう一つのAZをStandbyとなります。
通常はPrimaryを利用し、StandbyはPrimaryの内容が自動でコピーされて、同期されています。Primaryに問題があった場合に、Standbyに自動切り替えが行われます。(フェイルオーバー)
さらに、アクセスするDBの名称は変わらないまま切り替えが行われるため、アプリ側での対応は不要です。

【Primaryからの自動フェイルオーバー条件】
- OSパッチまたはセキュリティ更新プログラムのメンテナンス期間
- DBインスタンス障害
- ネットワーク障害
- DBインスタンスの変更
- DBインスタンスが応答しない
- DBインスタンスのストレージ障害
- DB インスタンスを手動フェイルオーバー [Reboot with failover]の実行

こういう機能は必要だけど実現するのは面倒。
これがはじめから用意されているのが素晴らしいですね!
メリット③ 高パフォーマンス
RDSでは、1.リードレプリカ、2.スケールアップ、3.プロビジョニングIOPSで高いパフォーマンスを実現します。
1.リードレプリカ
リードレプリカ機能を利用し、読み取り専用DBを簡単に用意できます。
読み取り処理が多いシステムでは、読み取り専用DBを用意することで、本DBの負担を軽減できます。

2.スケールアップ
CPUとメモリが不足している場合、インスタンスタイプを変更するだけで、スケールアップすることができます。また、CPUとメモリだけでなく ディスクI/O帯域やネットワーク帯域も変更することができます。
3.プロビジョンドIOPS
RDS ストレージタイプをプロビジョンドIOPSにすることで安定した性能を維持することができます。
プロビジョンドIOPSの用語をわかりやすく分割してご説明します。
プロビジョンドIOPS = プロビジョニング × IOPS
プロビジョニングとは、ネットワークやコンピューターの設備などのリソースを提供できるよう予測し、準備しておくことです。
IOPSは「Input Output Per Second」で、「1秒当たりにディスクが処理できるI/O」です。例えば40,000IOPSであれば、1秒間に40,000回I/Oが行なえます。
つまり、プロビジョンドIOPSは「1秒間のI/Oの値を提供できるようにAWS側で準備しておく」といういみとなります。
通常はAWSの込具合により、スピードを保証しない「ベストエフォート」でサービスを提供していますが、プロビジョンドIOPSはスピードを保証してくれる強みがあります。
メリット④ 低い運用負荷
RDSを利用すると、自動的にsnapshotとトランザクションログでバックアップが取得されます。
snapshotは1日一回指定した時刻に取得され、保存日数は最大35日間です。また、手動で取得することも可能です。
トランザクションログは5分に一回の頻度で取得されます。
snapshotとトランザクションログで5分以上前の情報に戻す(リストア)ことが可能です。

メリット⑤ 高セキュリティ
RDSのアクセス制御機能、暗号化機能を使って、簡単に高セキュリティを実現します。
アクセス制御
セキュリティグループを使って、IP/ポートを指定してアクセス制御を行います。
DBインスタンスの暗号化
RDS作成時に設定をONにするだけで自動で暗号化/復号化することが可能です。(クライアントアプリケーションの変更は不要)
DBインスタンス、自動バックアップ、リードレプリカ、スナップショットが対象となります

暗号化機能が設定一つでできるのは嬉しい!
ここまで読んでRDSを使ってみたくてウズウズしてきた頃かと思いますが、少々お待ち下さい。
RDSは利用するにあたって、OSとスペックを選ぶ必要があります。
特にスペックはどう選べば良いか悩むポイントなので、選び方をまとめていきます。
選ぶべきデータベースエンジン
RDSではOracle、PostgreSQL、MySQL、MariaDB、SQL Serverなどの標準的なデータベースエンジンをサポートしています。また、Amazon AuroraというAmazon独自のDBも用意されています。
アプリケーション、ミドルウェアなどでデータベースエンジンが決まっているケースもありますが、フラットに選びたい場合はこちらを参考にして下さい。
どんなデータベースエンジンを選べばよいの?

選ぶべきデータベースエンジンはこちらです!
Amazon Aurora
Amazon Auroraを推すなんて、Amazonの回し者か!?
と思った方もいるでしょう。そんなことはありません!
Amazon AuroraはMySQLと互換性のあるバージョンと、PostgreSQLと互換性のあるバージョンがあります。MySQLの最大5倍、PostgreSQLの最大3倍高速です。
選ぶべきスペック
データベースエンジンを決めたところで、次はスペックです。
スペックはインスタンスタイプとストレージの2つを決める必要があります。
選ぶべきインスタンスタイプ

選ぶべきインスタンスタイプはこちらです!
小規模(3000PVまで):db.t3.large
中規模(3万PVまで):db.r5.large
中規模(30万PVまで):db.r5.xlarge
インスタンスタイプ説明
インスタンスタイプは下記の構成になっています。

■詳細
・インスタンスファミリー
インスタンスのカテゴリです。最初は汎用のtかmをおすすめします。
・インスタンス世代
インスタンスのバージョンで、数値が大きい方が最新です。最新が安くて性能が良いです。
・追加機能
追加機能です。基本は不要だと思います。
・インスタンスサイズ
スペックの高さを表します。「small>medium>large」のようにスペックが上がります。
インスタンスタイプ例
2021年11月時点ではインスタンスファミリーと世代はm6gが最新です。
システムの規模によって変わりますが、まずはdb.t3.large〜db.r5.xlargeを選べば問題ありません。
ストレージ
ストレージ容量
DBのストレージは100GB程度ではないでしょうか。もし不足するようであれば、あとから追加できるため、足りなかったらあとから追加しましょう。
概算費用
AWSは使った分だけ支払いが発生する従量課金です。
ここまでご紹介してきたOS、スペックを元に計算すると概算費用は下記の通りになります。
概算費用
種類 | 小規模 (3000PV想定) | 中規模 – 小 (3万PV) | 中規模 – 大 (30万PV) |
インスタンス | ¥20,988 | ¥29,383 | ¥58,765 |
ストレージ | ¥1,454 | ¥1,454 | ¥1,454 |
合計 | ¥22,441 | ¥30,836 | ¥60,219 |
終わりに
いかがでしたでしょうか。
RDSも多機能でAWSの奥が深すぎて驚かされます。
すべてを一気に覚えるのは難しいので、おすすめ構成を元に構築していただければと思います。
RDSを利用したおすすめ構成は別ページでまとめていますので、下記をご参照ください。
参考URL
本ページは下記のサイトを参照させて頂きました。
https://aws.amazon.com/jp/rds/aurora/pricing/
コメント