なにかお手伝いできることがあればご連絡ください。
※Googleフォームが表示されます
「AWS超初心者のメモ プライベートサブネットにMySQLを入れる1」の続きです。
プライベートサブネット内のDBサーバーにMySQLをインストールします。
しかし、DBサーバーはプライベートサブネット内にあるので、インターネットに接続することができません。
この問題を解決する為にNATを利用します。
NAT(Network Address Translation)とは、コンピュータネットワークにおいて、主にグローバルIPアドレスをプライベートIPアドレスに、またはその逆の変換を行う技術のことである
NATを利用すると、プライベートサブネットからインターネットに接続できるようになるが、インターネットからプラベートサブネットに接続することはできないです。
NATゲートウェイはインターネットから接続できるパブリックサブネットに配置する。
VPC > NAT ゲートウェイ > 「NATゲートウェイの作成」を押す
次に、「サブネット」と「Elastic IP 割り当てID」を設定します。
Elastic IP 割り当てIDとは、静的な固定のパブリックIPアドレスのことです。
プライベートサブネットからインターネットに対して通信する場合に、パケットがNATゲートウェイに向かうようにします。
VPC > ルートテーブルから「メイン」が「はい」になっているものを選択。
送信先を0.0.0.0/0
に、ターゲットを先程作成したNATゲートウェイを選択します。
DBサーバーにログインして、HTTP、HTTPSで接続できるかを確認します。
[ec2-user@ip-10-0-2-10 ~]$ curl www.nogson.blog
ステータスコードが3xxになる場合は-Lオプションを付与する。
[ec2-user@ip-10-0-2-10 ~]$ curl -L www.nogson.blog
NATゲートウェイは、利用しなくなったら削除しておいたほうがよいです。
NTAゲートウェイは稼働時間と転送バイトの両方で課金されてしまうので、通信してなくても料金がかかります。
利用したい場合は、再度つくりなおします。
その際は、NTAゲートウェイのIDも変わるので、ルートテーブルも合わせて変更します。
DBサーバーでMySQLをインストールします。
MariaDBがインストール済みかを確認します。
MariaDBが入っていると競合してMySQLがインストールできません。
$sudo yum list installed | grep mariadb
インストール済みの場合は削除します。
$sudo yum remove mariadb-libs
MySQLのリポジトリを追加。
$sudo yum install http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
MySQLをインストールする。
$yum install mysql-community-server
バージョンを確認する
$mysqld --version
mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper
起動する。
$sudo service mysqld start
停止する。
$sudo service mysqld stop
起動しているか確認する。
$sudo service mysqld status
DBサーバー起動時にMySQLが自動で起動するようにする。
$ sudo chkconfig mysqld on
MySQL 5.7では初回起動時にrootにランダムなパスワードが割り振らるらしいので、パスワードを確認します。
$ sudo cat /var/log/mysqld.log | grep 'temporary password'
2020-04-26T07:42:38.420478Z 1 [Note] A temporary password is generated for root@localhost: XXXXXXXXXXX
ログインする。
$mysql -u root -p
パスワードを変更しておく。
mysql> SET GLOBAL validate_password_length=8;
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER root@localhost IDENTIFIED BY 'my_password';
Query OK, 0 rows affected (0.00 sec)
なにかお手伝いできることがあればご連絡ください。
※Googleフォームが表示されます