記事の目的
この記事では、作成したEC2インスタンスからRDSに接続する方法を学びます。
具体的には、プライベートサブネットにRDSを構築しパブリックサブネットにEC2を構築します。
EC2からRDSに接続し、サンプルのデータベースを作成しサンプルデータベースに対し、任意のデータを投入することまで実施します。

事前準備
下記のインストールを済ませて下さい。
- awscli
- tfenv
- terraform v1.5.4
- sshキーの作成
また今回はAWSコンソールではなくTerraformというインフラの自動構築ツールを使い構築して行きます。
.
├── main.tf
├── terraform.tfstate
└── terraform.tfstate.backup
今回Terraformで書いたコード
作成されたEC2インスタンスをAWSコンソールから確認する
sshで接続するために下記の情報を確認します。


EC2にログインする
上記のIPアドレスとキーペアの名前を使いsshコマンドでEC2にログインします。
ssh -i ~/.ssh/230804_test_aws_keypair_can_delete_anytime ec2-user@13.113.66.132
今回は無料枠のAmazon Linux2を使用したのでssh接続が成功した場合、下記の画像が出ることを確認しましょう

MySQLクライアントをインストールする
sudo yum install mysql -y
RDSの情報を確認する


RDSにログインする
mysql -h terraform-20230805061309384500000004.cpftkzzabeio.ap-northeast-1.rds.amazonaws.com -uuser -ppassword

RDSにDBとテーブルを作成する
下記コマンドを実行しテーブル内にデータを作成する
create database testdb;
use testdb;
create table user (ID int(3), first_name VARCHAR(20), last_name VARCHAR(30));
insert into user (ID, first_name, last_name) values (1, 'Tarou', 'Tanaka');
MySQL [testdb]> select * from user;
+
| ID | first_name | last_name |
+
| 1 | Tarou | Tanaka |
+
1 row in set (0.00 sec)
最後
下記コマンドを実行して作成したAWSリソースを忘れずに削除しましょう。これにより意図しない課金を防ぐことができます。
まとめ
EC2インスタンスからRDSに接続しDBを作りデータを投入することが確認できました。
またTerraformを使いAWSリソースをコードで管理することでインフラ構成の移植性を挙げられることを学べました。
参考記事
Discussion