AWS RDS(MySQL/PostgreSQL)インスタンスの作成からEC2からの接続までは、マネジメントコンソール上の正しいテンプレート選択とセキュリティグループ設定で確実に行えます。構成項目の多さから初期設定や接続エラーに迷うケースもありますが、正しい手順を押さえれば安全かつスムーズなDB構築が可能です。
本記事では、AWS RDSの具体的な作成ステップから、EC2との連携に必要なセキュリティグループの設定、接続できない場合のトラブルシューティングまで詳しく解説します。
手順に沿って進めればエラーを未然に防ぎ、安全なデータベース環境を構築できますので、ぜひ作業の参考にしてください。
AWS RDSインスタンス作成の全体像と事前準備
RDSの基本概要と本記事で構築する構成イメージ
AWSでデータベース環境を安全に運用するには、マネジメントコンソールからRDSを適切に立ち上げる流れの把握が第一歩となります。RDS(Amazon Relational Database Service)は、クラウド上でのリレーショナルデータベースの設定や運用、拡張を容易にするフルマネージド型サービスです。バックアップの自動化やOSのパッチ適用などの管理タスクをAWS側が担うため、開発者はアプリケーションの構築に集中できます。
本記事では、プライベートサブネット内にRDSを配置し、パブリックサブネットにあるEC2インスタンスを経由してデータベースへ接続する標準的なWEB/DB2層構成を構築します。データベースへ直接インターネットからのアクセスを許可せず、安全な内部ネットワーク内でのみ通信を行うネットワーク設計を目指すからです。

この構成を完成させることが本作業のゴールです。事前構成の全体像を意識しながら設定を進めていきましょう。
RDS作成前に確認すべき事前準備項目
RDSインスタンスの作成を開始する前に、必要なクラウドインフラ環境と前提条件を整理しておく必要があります。準備が不足していると、作成途中で設定作業が停止したり接続テストで失敗したりする原因になるためです。
作業を開始するにあたり、以下の準備項目が整っているか確認してください。
・作業用のAWSアカウントおよびマネジメントコンソールへのログイン権限
・RDSを配置するVPCとデータベース用サブネットグループ
・接続元となる既存のEC2インスタンス
・EC2インスタンスに割り当てられているセキュリティグループID(sg-xxxxxxxx)
特に、接続元となるEC2のセキュリティグループIDは事前にコピーしてメモ帳などに控えておくことが推奨されます。RDSのセキュリティグループ作成時にアクセス許可のソースとして指定する場面でスムーズに設定が行えます。VPCやEC2の準備が整ったら、実際のコンソール操作に移りましょう。
AWS RDSインスタンスの作成手順(マネジメントコンソール操作)
ステップ1:データベースの作成開始とエンジンの選択(MySQL / PostgreSQL)
まずはAWSマネジメントコンソールにログインし、検索バーからRDSコンソール画面へ移動します。コンソールトップのダッシュボード、あるいは左側メニューの「データベース」を選択し、「データベースの作成」ボタンをクリックして設定画面を開きましょう。
データベースの作成方法には「エクスプレス設定」と「フル設定」が存在します。ここで注意したいのは、エクスプレス設定を選択すると作成されるデータベースがAuroraクラスターに固定される点です。本記事で構築する通常のRDS for MySQL/RDS for PostgreSQLとは異なるアーキテクチャとなり、課金体系や運用方法も変わってきます。そのため今回は、エンジンをMySQL/PostgreSQLの標準RDSとして指定でき、ネットワークやセキュリティの詳細も自分で設定できる「フル設定」を選択します。

次にエンジンタイプを選択します。本記事ではWebアプリケーション等で広く普及している「MySQL」を前提に進めます。選択可能なエンジンとして「PostgreSQL」も用意されていますが、用途や移行元システムのリクエストに応じて切り替えてください。エンジンのバージョンは特別な理由がない限り、提供されている中で安定した最新のデフォルトバージョンを選ぶと安心です。
ステップ2:テンプレート選択とインスタンス・料金設定(無料枠の適用ポイント)
エンジン選択の次は、ユースケースに合わせたテンプレートの選択に移ります。AWSでは「本番稼働用」「開発/テスト」「無料利用枠」などのテンプレートが用意されています。個人の学習目的や検証環境で利用する場合は「無料利用枠」のテンプレートを選択すると安全です。
テンプレート選択画面の下部で、データベース識別子や管理者資格情報を入力していきます。
・マスターユーザー名:admin(任意の名称で可)
・マスターパスワード:複雑な文字列を設定して記録
インスタンスのサイズや仕様に関しても設定を確認します。無料枠を利用する場合は、インスタンスタイプとして「db.t3.micro」または「db.t4g.micro」が自動指定される仕組みです。
予期せぬ課金トラブルを防ぐためにも、テンプレート選択やインスタンスタイプの指定箇所は慎重に確認しましょう。本番運用向けの「マルチAZ配置」や高性能ストレージを誤って選ぶと高額な料金が発生する可能性があるため、検証目的であれば最小スペックの構成となっているか再チェックすることをおすすめします。
ステップ3:ストレージ・接続性・ネットワークの設定
続いて、ストレージの仕様とネットワーク接続性の設定に移ります。ストレージタイプは標準的な「汎用SSD(gp3またはgp2)」を選択し、割り当てサイズは初期値の20GiB程度で問題ありません。「ストレージオートスケーリング」を有効にしておくと、容量が逼迫した際に自動拡張されるため運用上のリスクを削減できます。
ネットワーク接続性の設定は、セキュリティ観点で非常に重要なステップです。
・VPC:EC2が存在する同じVPCを選択
・パブリックアクセス:「なし」を選択
・VPCセキュリティグループ:「新規作成」または準備済みのセキュリティグループを選択

パブリックアクセスを「なし」に設定することで、データベースへの不特定多数からのインターネットアクセスを遮断可能です。マルチAZ配置やパラメータグループ、オプショングループなどの詳細項目については、最初はデフォルトのままで差し支えありません。
ステップ4:データベースの作成実行とエンドポイントの確認
すべての設定項目を確認したら、ページ最下部にある「データベースの作成」ボタンをクリックします。インスタンスの作成処理が開始され、RDSのステータスが「作成中」に変わります。DBインスタンスのプロビジョニングには通常数分から10分程度の時間がかかるため、ステータスが「利用可能」に変わるまでそのまま待ちましょう。
ステータスが「利用可能」へ遷移したら、作成されたデータベースの識別子をクリックして詳細画面を開きます。「接続とセキュリティ」タブ内に表示されている「エンドポイント」を確認してください。

表示されている長いドメイン文字列が、EC2などから接続する際の接続ホスト名となります。併せて表示されているポート番号も確認してください。初期設定の場合、MySQLであれば「3306」、PostgreSQLであれば「5432」が指定されています。このエンドポイント情報を控えたら、次は接続許可を設定するステップに進みます。
RDS作成後の接続設定とEC2からの接続確認
セキュリティグループのインバウンドルール設定(接続許可のベストプラクティス)
RDSを作成した直後の状態では、EC2からの通信がセキュリティグループによってブロックされるケースが一般的です。RDSに割り当てられているセキュリティグループの設定を変更し、特定のEC2からのトラフィックのみを許可するインバウンドルールを定義する必要があります。
VPCコンソールのセキュリティグループ一覧から、RDSに関連付けたセキュリティグループを選択し、「インバウンドルールを編集」をクリックしてください。
ルール編集画面では、以下のように設定を追加します。
・タイプ:MySQL/Aurora(PostgreSQLの場合はPostgreSQLを選択)
・プロトコル:TCP
・ポート範囲:3306(PostgreSQLの場合は5432)
・ソース:「カスタム」を選択し、事前に控えておいたEC2のセキュリティグループID(例:sg-xxxxxxxx)を入力

接続許可のソースに「0.0.0.0/0(全開放)」を指定する手法は、データベースが全方位からの攻撃に晒されるため非常に危険です。EC2のセキュリティグループIDをソースとして紐付ける設定を行えば、対象のEC2から発信された通信のみがRDSへ到達できるようになり、堅牢なセキュリティ状態を保持できます。
EC2インスタンスからの接続確認ステップ
セキュリティグループの通信許可を設定した後は、実際の環境からRDSへ接続できるかをテストします。まずはSSH等を利用して、接続元として設定したEC2インスタンス(Amazon Linuxなど)にログインしてください。
ログイン後、データベースへ接続するためのクライアントツールをEC2上にインストールします。
MySQLの場合:
sudo dnf install mariadb105 -y (Amazon Linux 2023等の場合)
PostgreSQLの場合:
sudo dnf install postgresql15 -y
ツールの準備が完了したら、控えておいたRDSのエンドポイントを指定して接続コマンドを実行します。
MySQLの接続コマンド例:
mysql -h <RDSのエンドポイント> -u admin -p
コマンド実行後にパスワードを入力し、プロンプトが「mysql>」の表示に変われば接続成功です。正常にログインできたことが確認できたら、「SHOW DATABASES;」などのSQLコマンドを実行して動作検証を行いましょう。
RDSに「接続できない」場合のトラブルシューティングと原因チェックリスト
チェック1:セキュリティグループのインバウンドルールとソース指定の不備
EC2からの接続コマンドを実行した際に応答がなく「タイムアウト(ETIMEDOUT)」となる場合、ネットワーク経路の遮断が疑われます。接続エラーが発生する原因の大部分は、セキュリティグループの設定ミスに起因していると言えるでしょう。
不具合が発生した際は、以下のポイントを順に確認してみてください。
・RDS側のセキュリティグループのインバウンドルールに、正しいポート(3306や5432)が設定されているか
・ソースとして指定した文字列が、EC2にアタッチされているセキュリティグループIDと完全に一致しているか
・EC2側のアウトバウンドルールで、外部への通信が拒否されていないか
特にソース指定の入力ミスや、無関係なセキュリティグループを選択してしまっているケースは頻繁に発生します。社内VPNやローカルPCから直接接続しようとしてエラーになる場合は、RDSのパブリックアクセス設定や自拠点のIPアドレス許可状況を見直す手順が必要です。
チェック2:VPC・サブネットグループおよびパブリックアクセスの設定確認
タイムアウトではなく即座に「接続拒否(Connection refused)」や「ホストが見つからない」といったエラーが返る場合、ネットワーク構成や認証情報を見直す必要があります。
インフラ構成上のチェック項目として、以下を網羅的に確認しましょう。
・EC2インスタンスとRDSインスタンスが同一のVPC内に存在しているか
・異なるVPC間に配置している場合、VPCピアリング接続やルーティングテーブルが適切に構築されているか
・ローカル環境から接続を試みている場合、RDSのパブリックアクセスが「あり」に設定されているか
・ユーザー名、パスワード、およびデータベース名にタイポが存在しないか
AWSのネットワーク構成では、サブネットに関連付けられたルートテーブルやネットワークACLの設定によって通信が遮断されている可能性も考えられます。前提となるVPC環境から順を追って通信経路を検証することで、接続不能となっている根本原因を特定できるでしょう。
まとめ
AWS RDSインスタンスの作成からEC2との接続確認、セキュリティグループの適切な設定手順について解説しました。マネジメントコンソール上の設定項目は多岐にわたりますが、要点を押さえることで安全なデータベース環境を構築できます。
今回解説した重要ポイントは以下の3点です。
- 接続元の限定: セキュリティグループのインバウンドルールは全開放(0.0.0.0/0)を避け、接続元EC2のセキュリティグループIDを指定する
- 適切な設定パラメータ: 無料枠を適用する場合は対応するインスタンスタイプを選択し、パブリックアクセスは原則「なし」に設定する
- 接続トラブル時の切り分け: タイムアウト等のエラー発生時は、VPCの同一性・ポート番号・セキュリティグループの相互紐付けを最初に見直す
RDSの作成と接続確認が完了したら、運用の安全性を維持するために自動バックアップの設定確認や、テスト環境の不要なリソース停止を行ってコスト管理も徹底しましょう。
AWSをさらに深く学びたい方には 以下の書籍がおすすめです。
AWSの基本・仕組み・重要用語が全部わかる教科書 [ 川畑光平 ] 価格:3080円 |
【最大10万Pt当たる!注文5千円以上&エントリー要 9/20~30限定】AWS認定クラウドプラクティショナー/山下光洋/海老原寛之 価格:2970円 |
「※本記事にはアフィリエイトリンクが含まれています」
AWSの基礎から実践まで体系的に 学べる一冊です。


コメント