こんにちは、フルスタックエンジニアのryuです。
今回の記事では、AWSのAmazon RDSについて解説します。
Webアプリケーションを作るとき、ユーザー情報や商品情報などを保存するためにデータベースが必要になります。
AWSではEC2へDBを自分で構築することもできますが、管理をAWSに任せやすくするサービスとしてRDSがあります。
この記事では、RDSとは何か、どのようなメリットがあるのか、作成時に何を設定するのか、EC2からどのように接続するのかまで初心者向けに解説します。
【AWS】RDSの概要や作成方法を解説!¶
今回の記事では、RDSの作成方法を解説します。AWS上でデータベースを構築する際に利用できるマネージドサービスです。
まずRDSの仕組みを理解してから、作成時に確認するポイントを見ていきましょう。
RDSとは?¶
RDSとは、AWS上でリレーショナルデータベースを構築・運用できるサービスです。
正式名称はAmazon Relational Database Serviceです。
EC2へDBを構築する場合はOSやバックアップまで自分で管理しますが、RDSでは運用の一部をAWS側に任せられます。
現在、Amazon RDSではMySQL、PostgreSQL、MariaDB、Oracle Database、Microsoft SQL Server、Db2などのDBエンジンを利用できます。また、RDSのコンソールからAmazon Auroraを作成することもできます。
RDSを使うメリット¶
RDSの大きなメリットは、単にデータベースを簡単に作れることではありません。
データベースサーバーの運用負荷を減らしやすいことが重要です。
主な特徴を整理すると次のようになります。
| 特徴 | 内容 |
|---|---|
| DB構築 | DBインスタンスをAWS上に作成できる |
| バックアップ | 自動バックアップや手動スナップショットを利用できる |
| 可用性 | Multi-AZ構成を利用できる |
| 監視 | CloudWatchなどと組み合わせて監視できる |
| セキュリティ | VPCやセキュリティグループで通信を制御できる |
| 拡張 | インスタンスクラスやストレージを変更できる |
バックアップを管理しやすい¶
RDSでは、自動バックアップを設定できます。
バックアップ保持期間を設定すると、指定したバックアップウィンドウに自動バックアップが作成されます。
また、必要なタイミングでDBスナップショットを手動作成することもできます。
障害や操作ミスが発生した場合に備えるためにも、データベースではバックアップが重要です。
Multi-AZで可用性を高められる¶
RDSではMulti-AZ構成を利用し、複数のAvailability Zoneを使った高可用性構成を作れます。
Multi-AZ DBインスタンス配置では、プライマリとは別のAZにスタンバイを用意し、障害時にはフェイルオーバーできます。
ただし、Multi-AZを有効にすれば料金も同じというわけではありません。
可用性とコストのバランスを考えて構成を選びます。
RDSは必ず安いわけではない¶
元の記事では、RDSはコストが安い、Auroraを使えばコストを抑えられると紹介していました。
しかし、これは構成によって変わります。
DBインスタンスのサイズ、ストレージ、バックアップ、Multi-AZ、データ転送などによって料金は変わるため、RDSだから必ず安い、Auroraだから必ず安いとは言えません。
料金を重視する場合は、実際の構成でAWS Pricing Calculatorなどを使って確認しましょう。
RDSを作成してみよう¶
先ほどまではRDS概要について解説しました。ここからはRDSの作成方法について解説します。AWSのコンソール画面に移動しましょう。
※AWSマネジメントコンソールは更新されるため、現在の画面は以下の画像と表示や項目名が異なる場合があります。
データベースの作成¶
では、早速RDSの作成を行います。AWSのコンソールより、「RDS」と検索し、RDSのコンソール画面に移動します。



現在のRDSコンソールでは、作成方法やDBエンジン、テンプレート、可用性などを選択しながらDBを作成します。
学習目的であれば、設定項目を確認しながら進めてみてください。
データベースエンジンを選択する¶
MySQLやPostgreSQLなどから選ぶ¶
次に、データベースを作成する際の設定です。

最初に考えたいのが、どのデータベースエンジンを利用するかです。
たとえば、WebアプリケーションでMySQLを利用したいのであればRDS for MySQL、PostgreSQLを利用したいのであればRDS for PostgreSQLを選択できます。
元の記事ではAmazon Aurora with MySQL compatibilityを選択していました。

ただし、MySQLを使いたいから必ずAuroraを選ぶというわけではありません。
RDS for MySQLとAurora MySQLではアーキテクチャや料金、利用できる機能などが異なります。
DBインスタンスの設定をする¶
DBインスタンス識別子や認証情報を設定する¶
DBエンジンを選んだら、DBインスタンスの名前、マスターユーザー名、認証方法などを設定します。
インスタンスサイズや、管理者のユーザー名などは自分の環境に合わせて設定して下さい。

DBインスタンスクラスは、データベースに割り当てるCPUやメモリなどの性能に関係します。
性能と料金のバランスを考え、用途に合わせて選びましょう。
パスワードは安全に管理する¶
RDSでは認証情報を安全に管理する必要があります。
パスワードをソースコードへ直接書いたり、GitHubへコミットしたりするのは避けましょう。
AWS Secrets Managerなどを利用して認証情報を管理する方法もあります。
最後に設定内容を確認して、「データベースの作成」をクリックします。

ステータスが利用可能になれば、接続できる状態になります。
RDSではネットワーク設定が重要¶
RDSへ接続できない場合は、ネットワーク設定も確認します。
RDSのDBインスタンスはVPC内に作成され、セキュリティグループで接続元やポートを制御します。
たとえばMySQLでは通常TCPの3306番ポート、PostgreSQLでは5432番ポートを利用します。
| DB | 一般的なポート |
|---|---|
| MySQL / MariaDB | 3306 |
| PostgreSQL | 5432 |
| Microsoft SQL Server | 1433 |
Webアプリケーションを動かすEC2からRDSへ接続するのであれば、RDSのセキュリティグループでEC2側のセキュリティグループを接続元として許可する構成があります。
RDSをインターネット全体へ公開し、0.0.0.0/0からデータベースポートへの通信を許可するような設定は避けましょう。
【関連記事】VPCの仕組みから確認したい方は、VPCとは?初心者でも理解できるように概要を1から解説!も参考にしてください。
EC2からRDSへ接続してみる¶
RDSを作成したら、接続先となるエンドポイントを確認します。
MySQLを利用している場合、MySQLクライアントが入ったEC2などから次のように接続できます。
mysql -h <RDSのエンドポイント> \
-P 3306 \
-u <ユーザー名> \
-p
パスワード入力後に接続できれば、RDS上のMySQLを操作できます。
PostgreSQLであればpsqlを使います。
psql -h <RDSのエンドポイント> \
-p 5432 \
-U <ユーザー名> \
-d <データベース名>
接続できない場合は、次のポイントを順番に確認しましょう。
| 確認すること | 内容 |
|---|---|
| RDSの状態 | Availableになっているか |
| エンドポイント | 接続先を間違えていないか |
| ポート | MySQLなら3306など |
| セキュリティグループ | EC2からの通信を許可しているか |
| VPC | 通信可能なネットワーク構成か |
| ユーザー情報 | ユーザー名・パスワードが正しいか |
【関連記事】EC2からRDSへ接続できないときの考え方は、FargateからRDSへ接続できない場合の対処方法もネットワークの切り分けとして参考になります。
RDSとEC2にDBを入れる方法は何が違う?¶
EC2へMySQLをインストールしてデータベースサーバーを作ることもできます。
その場合はOSからデータベースまで自分で管理します。
一方、RDSではOSへSSH接続して自由に設定するような使い方ではなく、AWSが管理するマネージドなDBサービスとして利用します。
違いを簡単に整理すると次の通りです。
| 項目 | RDS | EC2にDBを構築 |
|---|---|---|
| OS管理 | AWS側が管理 | 自分で管理 |
| DBの自由度 | 制約がある | 高い |
| バックアップ | RDS機能を利用できる | 自分で設計する |
| 高可用性 | Multi-AZなどを利用可能 | 自分で構成する |
| 運用負荷 | 抑えやすい | 大きくなりやすい |
特殊なOS設定が必要なら、EC2上にDBを構築する選択肢もあります。
InfraAcademyでAWSを実際に学習する¶
RDSを理解するためには、データベースだけではなくVPCやサブネット、セキュリティグループ、EC2などの知識も必要です。
InfraAcademyでは、AWSの基本をシミュレーターや教材を使いながら学習できます。
AWSを基礎から学びたい方は、AWS講座をご覧ください。
EC2へ接続した後のLinux操作に不安がある方は、Linux入門講座から学習できます。
VPCやサブネット、ルーティングが分からない方は、ネットワーク講座もおすすめです。
AWSはサービス名を個別に暗記するより、EC2からRDSへ接続するような構成を実際に考えると、それぞれの役割が理解しやすくなります。
RDSの作成方法まとめ¶
今回の記事では、Amazon RDSの概要と作成時に確認するポイントについて解説しました。
RDSは、AWS上でリレーショナルデータベースを構築・運用できるマネージドサービスです。
MySQLやPostgreSQLなど複数のDBエンジンを利用でき、自動バックアップやMulti-AZなど、データベース運用に役立つ機能が用意されています。
一方で、RDSを使えば必ず安くなるわけではありません。
DBインスタンスの性能、ストレージ、可用性などによって料金は変わるため、用途に合わせて構成を選ぶことが大切です。
RDSを作成するときは、DBエンジンだけではなく、VPC、セキュリティグループ、認証情報も一緒に確認しましょう。
そして作成後は、EC2などから実際に接続してみてください。
RDS単体ではなく、EC2・VPC・セキュリティグループ・RDSを一つの構成として理解することが、AWSを学ぶうえで重要です。





