LoginSignup
0
0

More than 1 year has passed since last update.

MacでAWS RDSのMySQLデータベース構築したよ

Last updated at Posted at 2021-06-13

参考サイト

まず、本件はこちらの方々の記事のいいところ取りです。
皆様の記事がなければ、ここまでできませんでした。
ありがとうございます。


では、はじめます。

VPCまわり

VPC作成

VPCクリック
Image from Gyazo

VPC作成
Image from Gyazo

VPCの設定
名前タグ:好きな名前
IPv4 CIDR ブロック : 10.0.0.0/16を利用
Image from Gyazo

サブネット作成

[サブネット] > [サブネットの作成]
Image from Gyazo

VPC ID : さっき作ったVPC
Image from Gyazo

Image from Gyazo

サブネット名:任意の名前
アベイラビリティーゾーン:任意の場所
IPv4 CIDR ブロック: 10.0.0.0/24

ルートテーブル作成

[ルートテーブル] > [ルートテーブルを作成]
Image from Gyazo

ルートテーブル設定
Image from Gyazo

名前:任意の名前
VPC:  さっき作ったVPC

インターネットゲートウェイ作成

[インターネットゲートウェイ] > [インターネットゲートウェイの作成]
Image from Gyazo

名前タグ:任意
Image from Gyazo

アクション > VPCとアタッチ
Image from Gyazo

アタッチするVPSを選ぶ
Image from Gyazo

[ルートテーブル] 

該当のルートテーブルをチェック
[ルートを編集]
Image from Gyazo

[add Route]
送信先: 0.0.0.0/0
TARGET: 作成したIGWを選択

Image from Gyazo

サブネットにルートテーブルを紐付け
サブネット 
> さっき作ったサブネットをチェック
> ルートテーブルタブ
> ルートテーブルの関連付けを編集
Image from Gyazo

今回作ったルートテーブルを選択
Image from Gyazo

EC2構築

コンソールからEC2の管理画面 > インスタンス

Image from Gyazo

インスタンスを起動
Image from Gyazo

AMIの選択。
無料利用枠にチェック
> Linux2 AMI(64bit)

Image from Gyazo

Image from Gyazo

Image from GyazoImage from Gyazo

Image from Gyazo

任意だけど タグの追加
Image from Gyazo

一番下は [すべてのICMP - IPv4]

Image from Gyazo

起動
Image from Gyazo

Image from Gyazo

EC2へのSSH接続の確認

インスタンス状態が 実行中 になってから。
IPv4パブリックIPをコピー
Image from Gyazo

ターミナル画面
ping + IPアドレス 入力し、
次の画面が表示されれば接続準備はOK

$ ping 13.230.153.4
PING 13.230.153.4 (13.230.153.4): 56 data bytes
64 bytes from 13.230.153.4: icmp_seq=0 ttl=235 time=71.973 ms
64 bytes from 13.230.153.4: icmp_seq=1 ttl=235 time=58.444 ms
64 bytes from 13.230.153.4: icmp_seq=2 ttl=235 time=98.557 ms
64 bytes from 13.230.153.4: icmp_seq=3 ttl=235 time=308.163 ms
64 bytes from 13.230.153.4: icmp_seq=4 ttl=235 time=186.163 ms

SSHの接続確認
先ほど作成したpemキーを.sshフォルダに移動
次のコマンドの手順で入力し、次の結果が表示されればEC2への接続が完了

$ mv Downloads/EC2-test.pem .ssh/      #pemキーを.sshフォルダに移動                          
$ sudo chmod 600 ~/.ssh/EC2-test.pem    #指定している鍵の権限が広すぎるため変更
$ ssh -i ~/.ssh/EC2-test.pem ec2-user@13.230.153.4  #pemキーとパブリックIPを使用

The authenticity of host '13.230.153.4 (13.230.153.4)' can't be established.
ECDSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no/[fingerprint])?  
#ここは yesで回答 (未知のホスト鍵の場合こんな質問がある)


       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-10-0-0-200 ~]$

RDS設定

DB用のセキュリティグループの作成

DBへのアクセスは既存のEC2のみアクセスするように設定。
[EC2]>[セキュリティグループ]>[セキュリティグループの作成]

Image from Gyazo

セキュリティグループ名、説明、EC2があるVPCを設定
インバウンドルール
・タイプ: MYSQL/Aurora
・ソース: EC2のセキュリティグループ

Image from Gyazo

DB用のサブネットの作成

RDSを利用するには、異るAZに属するサブネット2つを用意する必要があるので、DB用のサブネットを2つ作成し、この2つのサブネットは「1a」「1c」のAZを指定。
CIDRブロックの範囲は使用済みの数値は指定できない。

VPC >
サブネット > サブネットを作成

AZ(1a)のサブネットを作る
Image from Gyazo

Image from Gyazo

AZ(1c)のサブネットを作る
Image from Gyazo

Image from Gyazo

DB用のサブネットグループの作成

RDS > サブネットグループ > DB サブネットグループの作成

Image from Gyazo

名前、説明、VPCやサブネットはEC2のあるところを選択し作成します。
Image from Gyazo
Image from Gyazo

データベースの作成

RDS > データベース > データベースの作成
Image from Gyazo

Image from Gyazo
Image from Gyazo
Image from Gyazo

Image from Gyazo
Image from Gyazo

あとはデフォルトどおりに
一番下にある「データベースの作成」をクリック

RDSへ接続

まずEC2に接続

$ssh -i ~/.ssh/EC2Testkey.pem ec2-user@13.230.153.4  #EC2接続

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-10-0-0-200 ~]$ sudo yum update -y  #EC2接続時に最初に実行

[ec2-user@ip-10-0-0-200 ~]$ sudo yum install mysql -y #MySQLのインストール

完了しました!
[ec2-user@ip-10-0-0-200 ~]$ 

AWSのコンソール画面に戻り、作成したRDSのエンドポイントをコピーします。
Image from Gyazo

$ mysql -h aws-test.XXXXXXXX.ap-northeast-1.rds.amazonaws.com -u admin -p  #RDSのエンドポイントとRDS作成時のマスターユーザ名(admin)を使用
Enter password:〇〇〇〇〇〇〇〇     #RDS作成時のパスワード(いつものパスワードではないので注意)
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 8.0.20 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)]>  #exitで抜けます

以上、MySQL構築できました!

こんな感じでデータベースを作ります。

$ SET time_zone = 'Asia/Tokyo';
$ CREATE DATABASE project;
$ USE project;
$ CREATE TABLE users (id INT AUTO_INCREMENT, userId TEXT, branch TEXT, name TEXT, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id)) DEFAULT CHARSET=utf8;

$ SHOW tables;
+-------------------+
| Tables_in_project |
+-------------------+
| users             |
+-------------------+
1 row in set (0.01 sec)

$ DESCRIBE users;
+------------+-----------+------+-----+-------------------+-----------------------------------------------+
| Field      | Type      | Null | Key | Default           | Extra                                         |
+------------+-----------+------+-----+-------------------+-----------------------------------------------+
| id         | int       | NO   | PRI | NULL              | auto_increment                                |
| userId     | text      | YES  |     | NULL              |                                               |
| branch     | text      | YES  |     | NULL              |                                               |
| name       | text      | YES  |     | NULL              |                                               |
| created_at | timestamp | NO   |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED                             |
| updated_at | timestamp | NO   |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
+------------+-----------+------+-----+-------------------+-----------------------------------------------+

$ INSERT INTO users (userID, branch, name) values ('000000','本店','山田太郎');

$ select * from users;
+----+--------+--------+--------------+---------------------+---------------------+
| id | userId | branch | name         | created_at          | updated_at          |
+----+--------+--------+--------------+---------------------+---------------------+
|  1 | 000000 | 本店   | 山田太郎     | 2021-06-13 05:11:59 | 2021-06-13 05:11:59 |
+----+--------+--------+--------------+---------------------+---------------------+

0
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
0
0