RDS用にavailability zoneが異なる二つのsubnetと、InternetGatewayに接続しないroute table, RDS用のsecuirtyグループを作成して、EC2と同じVPCの中にRDSを作成する。
## Private subnetの作成
privateなsubnetを二つ作成する。その際に、subnetのAvailability Zoneは別々にする。VPCは同じ
192.168.2.0/28(dev-subnet-private1) L ap-northeast-1a 192.168.3.0/28(dev-subnet-private2) L ap-northeast-1c
※以前作成したpublicなsubnet
192.168.1.0/28(dev-subnet-public) L ap-northeast-1a
## Private route tableの作成
name:private-routetable
Private route tableにPrivate Subnetを紐付け
## RDS用のSubnet group作成
Services -> RDS -> Subnet group
name: ${appname}-subnet-group
vpc: 同じ
add subnet: private subnetを追加
192.168.2.0/28(dev-subnet-private1) L ap-northeast-1a 192.168.3.0/28(dev-subnet-private2) L ap-northeast-1c
## RDS用のSecurity group作成
name: rds-security-group
inbound rules:
Type:MYSQL/Aurora
Protocol: TCP
Port Range: 3306
Source: dev-security-group(ec2のセキュリティグループ)
### DB作成
MySQL
8.0.17(最新)
db.t.micro
General Purpose(SSD)
20 GiB
Subnet group: ${appname}-subnet-group
Security Group:rds-security-group
### EC2からDBインスタンスにログイン
1. EC2にssh
ssh ec2-user@*** -i ~/.ssh/***.pem
2. /.sshにrds-ca-2019-root.pemを配置
3. EC2からRDSにssh接続
mysql -h ${endpoint}.ap-northeast-1.rds.amazonaws.com –ssl-ca=.ssh/rds-ca-2019-root.pem -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 8.0.17 Source distribution
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql>
この後.envファイルを編集します。
DB_CONNECTION=mysql DB_HOST=${endpoint}.ap-northeast-1.rds.amazonaws.com DB_PORT=3306 DB_DATABASE=${db_name} DB_USERNAME=hoge DB_PASSWORD=hogehoge
migrateして、上手くいけば、ec2からMySQLに入り、初期データを入れる為、クエリを実行します。
// 省略
Query OK, 1 row affected (0.01 sec)