第6回目(11/6)

1.講義メモ

本題であるAWSの講義に入った。AWS環境の完成イメージをメモに残す。

・CloudFormatinを用いてインフラ環境のコード化
・Ansibleを使い、Webアプリケーションが動作するのに必要なアプリをインストール、設定する
・SeverSpecやawspecにて設定された環境のテストを行う
・テスト後、Webアプリケーションのデプロイ
・Jenkinsを使い、全て自動化する
・その後、Webアプリケーションの動作確認

2.課題

・EC2とRDSを構築し、EC2からRDSへの接続確認

構成図

スクリーンショット 2021-11-08 16.27.50

構築メモ
1)VPCについて
・リージョン(東京)にVPCを作成
・VPCにパブリックサブネットとプライベートサブネットを作成。プライベートサブネットが2つあるのは、RDSのサブネットグループを作成する必要があったため。Single-AZ構成の場合の、RDSインスタンスの配置されるAZを指定する項目
<参考URL>
https://dev.classmethod.jp/articles/rds-has-two-configs-concerning-availability-zone/

2)EC2について
・インスタンスをシャットダウンするごとに、グローバルIPが変更になるためElastic IP を割り当てを行なった
・初期設定のため、パッケージの更新、タイムゾーンの変更、日本語ロケールの追加を行なった。設定内容と設定後の結果は下図の通り

#パッケージの更新
yum update -y

#タイムゾーンの変更
timedatectl status
sudo timedatectl set-timezone Asia/Tokyo

#日本語ロケールの追加
localectl status
sudo localectl set-locale LANG=ja_JP.UTF-8
sudo localectl set-keymap jp106

設定結果

スクリーンショット 2021-11-08 16.57.12

・今後の課題に備えてRubyをインストール。ローカル環境と同じRubyバージョン2.6.8p205をインストール
 - 以下の参考URLの手順でインストール
  https://dev.classmethod.jp/articles/amazon-linux_rbenv/
  ※以下はRubyインストールの箇所のみ参考にした
  https://blog.serverworks.co.jp/tech/2020/01/19/rails6/

設定結果

スクリーンショット 2021-11-08 17.33.51

・EC2のSSHがすぐ切れるので、ClientAliveIntervalとClientAliveCountMaxを設定
<参考URL>
https://qiita.com/qualitia_cdev/items/b7138b1280e693585267

3)RDSについて
・RDSを作成する際、一緒にRDS用のセキュリティグループを新規作成
これがキッカケでハマった。セキュリティグループのinboundでMySQLポート3306のソースが何故かおかしなIPアドレスが設定されており、EC2からアクセスできなかった。本来はEC2のセキュリティグループをソースに設定しないといけない

4)EC2からRDSへ接続
・EC2にmysqlをインストールする

sudo yum install mysql

・RDSへ接続する

mysql -u admin -p -h <RDSのエンドポイント>

<参考URL>
https://dev.classmethod.jp/articles/sales-rds-ec2-session/

接続結果は下図の通り

スクリーンショット 2021-11-08 15.50.25


この記事が気に入ったらサポートをしてみませんか?