前回の記事Terraform で VPC,EC2,RDS
を構築してみたで作成したインフラが意図通りに動作するかテストをします。
はじめに
本記事は、前回の記事でVPC/EC2/RDSが構築済みである前提です。
確認する項目
- クライアント → ALB → EC2 の疎通確認
- EC2 → RDS の接続テスト
クライアント → ALB → EC2 の疎通確認
期待する結果
Nginx の初期ページが表示される
確認手順
※マネジメントコンソールで確認します。
作成した ALB の DNS をコピーします。
コピーした DNS 名をブラウザのアドレスバーに貼り付けてアクセスします。
http://<ALBのDNS名>
ALB→EC2
EC2 インスタンスは、起動時に実行された userdata.sh によって Web サーバー(Nginx)がインストールされ、ポート 80 番でリクエストを待ち受けています。ALB はこのポートに対してヘルスチェックを行い、正常なインスタンスにのみトラフィックを転送します。
これで ALB→EC2 へのアクセスが可能であることが確認できました。
EC2 → RDS の接続テスト
期待する結果
RDS にデータベースとテーブルができる
確認手順
作成した RDS インスタンスのエンドポイントをコピーする。
作成した EC2 を選択し、接続をクリック。
セッションマネージャータブで接続をクリック。
ターミナル画面が立ち上がるため、以下のコードで MySQLをインストール
sudo yum install -y mysql
以下のコードで mysql へアクセスします。
mysql -h <作成したRDSのエンドポイント> -u admin -p
このあとパスワードが質問されます
-u の後の admin は、terraform で作成する際に[username = admin]としているからです。
パスワードは、dev.tfvars で設定したものになります。
接続に失敗する場合は以下を確認してください。
• RDS のセキュリティグループが EC2 のプライベート IP からの接続を許可しているか
• パスワードが正しいか
以下のコードを実行し、データベースとテーブルを作成してみます。
CREATE DATABASE db_test;
USE db_test;
CREATE TABLE User(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL);
User テーブルを確認してみます。
DESCRIBE User;
無事データベースとテーブルが作成できていることが確認できました。
最後に
テストする方法に悩まれている方々の参考になれば幸いです。
不要であれば、リソースを削除しましょう。