1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初学者向け:AWSでシンプルなネットワーク構成を用いてEC2とRDSを接続してみた

Last updated at Posted at 2024-12-21

はじめに

本記事では、AWSを使用してEC2インスタンスを構築し、RDSに接続する手順を解説します。

EC2とRDSは、クラウド環境でアプリケーションとデータベースを分離して管理する上で欠かせない重要なサービスです。

基本的な内容ですが、未来の自分への備忘録として、体系的にまとめています。

補足:AWSのネットワーク構成はシンプル

今回の技術検証では、EC2インスタンスを構築し、RDSに接続するというシンプルな構成で進めます。

スクリーンショット 2024-12-21 10.50.46.png
引用画像:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/tutorial-connect-ec2-instance-to-rds-database.html

この構成では、インターネットからアクセス可能なパブリックサブネットにEC2インスタンスを構築し、プライベートサブネットにRDSを配置します。

これにより、アプリケーションサーバーとデータベースの分離を実現します。

今回の検証で使用するVPC構成は以下のとおりです。

スクリーンショット 2024-12-21 10.52.28.png

前提条件

以下の準備が整っていることを前提に、技術検証を進めます。

  • AWSアカウント:
    EC2およびRDSを操作する権限を持つIAMユーザーまたはロール。

  • ネットワーク構成:
    作成済みのVPCとサブネット。
    必要なセキュリティグループの設定(後述)。

  • クライアント端末:
    SSH接続ができる環境。

  • ソフトウェア:
    EC2インスタンスで使用するMySQLクライアント。

また、VPCの作成方法については、以下の記事で詳しく説明していますので、必要に応じて参考にしてみてください!

EC2インスタンスの構築

インスタンスの作成

AWS Management ConsoleでEC2サービスを開き、新しいインスタンスを作成します。名前とAMI(ここではAmazon Linux 2)を選択して、以下の画面のように進めてください。

スクリーンショット 2024-12-21 10.55.49.png

今回は、EC2 Instance Connectというサービスを使用するため、キーペアの設定は不要です。

スクリーンショット 2024-12-21 10.58.40.png

ネットワーク設定については、事前に作成したVPCとパブリックサブネットを選択して、パブリックIPの自動割り当てを有効にします。

セキュリティグループについては、デフォルトのままで大丈夫です(後ほど詳細に設定を説明します)。

必要なソフトウェアのインストール

次に、EC2 Instance Connectを使用してインスタンスに接続し、必要なソフトウェアをインストールします。

対象のインスタンスを選択し、「接続」ボタンをクリックし、「EC2 Instance Connect を使用して接続する」を選択します。

スクリーンショット 2024-12-21 11.03.13.png

インスタンスにSSHで接続後、以下のコマンドを実行してMySQLクライアントをインストールします。

sudo yum update -y
sudo yum install -y mysql

コマンド実行後に以下のように「Complete!」と表示されれば、インストールは正常に完了しています。

スクリーンショット 2024-12-21 11.05.19.png

RDSインスタンスの作成

RDSの設定

AWS Management ConsoleでRDSサービスを開き、「データベースの作成」をクリックします。

スクリーンショット 2024-12-21 11.08.42.png

「簡単作成」を選択し、無料利用枠を使用して進めます(無料利用枠の期間が終了している場合、課金対象となります)。

スクリーンショット 2024-12-21 11.12.20.png

パスワードは自動生成を選択します。

作成中のバナーに表示される「認証情報の詳細を表示」をクリックすると、自動生成されたパスワードを確認できます。

よくカスタムパスワードを紛失するケースが多いため、忘れそうな人は、以下の記事を参考にしてください!

RDSとEC2の接続セットアップ

上記の手順に沿って、作成をしていくとEC2 接続をセットアップするというオプションがありますので、ここを設定していきます。

スクリーンショット 2024-12-21 11.17.29.png

このオプションを選択することにより、コンピューティングリソースがこのデータベースに接続できるように、接続設定が自動的に変更されます。

セキュリティグループの確認

RDSセキュリティグループの設定

RDSに関連付けられたセキュリティグループのインバウンドルールを編集し、以下の設定を追加してください。

タイプ プロトコル ポート範囲 ソース
MYSQL/Aurora TCP 3306 sg-xxx / ec2-rds-1
カスタム TCP TCP 0 sg-xxx / ec2-rds-1

RDSでMySQLを使用する場合、ポート3306を開放する必要があります。

EC2インスタンスのセキュリティグループIDをソースとして指定してください(設定を忘れないよう注意してください)。

EC2セキュリティグループの設定

EC2インスタンスでは、SSH接続ができることが重要です。セキュリティグループのインバウンドルールで、以下を確認または設定してください。

タイプ プロトコル ポート範囲 ソース
SSH TCP 22 0.0.0.0/0

ソースで全てを許可していますが、セキュリティを考慮し、必要に応じてソースIPアドレスを絞り込むことを推奨します。

実際にEC2からRDSに接続してみた

接続テスト

EC2インスタンスにEC2 Instance Connectを利用してSSH接続します。以下のコマンドを実行して、RDSに接続します。

mysql -h <RDSエンドポイント> -u admin -p

パスワードを入力後、以下のような画面が表示されれば接続成功です。

[ec2-user@ip-10-0-10-67 ~]$ mysql -h rds.c586grpu6rv9.ap-northeast-1.rds.amazonaws.com -u admin -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 26
Server version: 8.0.39 Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> 

データベース操作の検証

次に、簡単なSQL文を使ってCRUD操作が正常に行えるか確認します。

CREATE DATABASE testdb;
USE testdb;
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100));
INSERT INTO users (name) VALUES ('Alice'), ('Bob');
SELECT * FROM users;

正常にデータベース操作ができると、以下のような出力が得られます。

MySQL [testdb]> SELECT * FROM users;
+----+-------+
| id | name  |
+----+-------+
|  1 | Alice |
|  2 | Bob   |
+----+-------+
2 rows in set (0.00 sec)

MySQL [testdb]> 

少し画面が見づらいかもしれませんが、以下のスクリーンショットのように、すべての操作が成功しました!

スクリーンショット 2024-12-21 11.41.55.png

まとめ

ここまでお読みいただき、ありがとうございました!

本記事では、AWSを使用してEC2インスタンスを構築し、RDSに接続する手順を解説しました。

特に、セキュリティグループの設定など、見落としがちな項目についても触れていますので、作業の際は慎重に確認することをおすすめします。

この記事が、どなたかの技術的な支えになれば幸いです。

関連記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?