AWS_WEB3層環境構築①

AWSでWEB3層の環境構築に挑戦。
とりあえず、作りたい環境は以下の図のような感じ。
APサーバの/etc/hostsかtomcatのserver.xmlを更新することによって、
参照するDBがMySQL1からMySQL2に切り替わるかを検証したい。
![構成図_v1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/ce2a2f0e-ac27-0f44-d5ee-9fc710a99fc8.png)
◆VPC
⑴VPCの作成
サービスから[VPC]を選択。
左ペインの[VPC]から[VPCを作成]。
※VPCダッシュボードからウィザードでの作成もできるみたいだ
サブネットは172.16.0.0/20とした。
![VPC.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/ebd847c4-40da-954b-21ff-009b8ebf3b7b.png)
⑵サブネットの作成とVPC関連付け
左ペインの[サブネット]から[サブネットを作成]。
先ほど作成したVPCを選択。
アベイラビリティゾーンは東京リージョン1aを選択。
サブネットは172.16.1.0/24とした。
![サブネット.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/02a2f7b4-c932-1891-2496-b22df3b1751e.png)
◆インターネットゲートウェイの作成
左ペインの[インターネットゲートウェイ]から[インターネットゲートウェイの作成]。
![インターネットゲートウェイ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/b5d17947-a97c-24c4-e2de-7d83d9679384.png)
作成したら、VPCに関連付けする。
![インターネットゲートウェイ_アタッチ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/ed7c17f2-4c41-6b3d-9ce5-aafa08f9ab56.png)
![インターネットゲートウェイ_アタッチ2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/c5e0bf2e-6b57-58b5-b7f0-327bb7a3cb47.png)
現状ここまでできた。
![構成図_v1.1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/e71f485a-92e6-60c7-324f-fb3eed666868.png)
◆ルートテーブルの作成と関連付け
左ペインの[ルートテーブル]から[ルートテーブルの作成]。
名前つけて、VPCに関連付けする。
![ルートテーブル1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/bae51b71-8772-03a5-ea5b-3e2a74ee4bed.png)
ルートテーブル(箱)ができたら、中身を編集する。
[ルート]タブから[ルートの編集]
![ルートテーブル4.5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/4c008fc7-a7aa-3d5d-d8e3-8173342ab30c.png)
送信先にすべてのネットワーク(0.0.0.0/0)を入力し、ターゲットには作成したインターネットゲートウェイを選択する。
![ルートテーブル5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/3e330953-0bdc-fcdd-b4cd-4338598743e5.png)
次はルートテーブル(箱)とサブネットを関連付けさせる。
[サブネットの関連付け]タブの[サブネットの関連付けの編集]から、
ルートテーブルとサブネット(パブリック)を関連付けする。
![ルートテーブル2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/75d30f33-5a84-5315-d548-06aa3a71c91f.png)
![ルートテーブル3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/0bd2b4e1-88d8-be14-a098-65f647092e6e.png)
現状を絵で表すとこんな感じになる。
![構成図_v1.2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/a61fb1b1-7ceb-91a5-09da-b3ab923ef6a3.png)

◆EC2インタンスの作成
土台ができたので、仮想サーバを立てる。
AWSマネージメントコンソールのサービスから[EC2]を選択。
※上記までの手順で[VPC]を開いているため、ブラウザの別タブで開くことをおすすめする。

左ペインの[インスタンス]から[インスタンスの起動]。
無料枠のAmazon Linux2を選択。
![EC2_1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/01ccb4cd-e512-32a6-2279-5766203b2927.png)
インスタンスタイプは無料枠のt2microを選択して、次のステップ。
![EC2_2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/2b9b2e04-a657-4e28-7e77-0f040583ab82.png)
ステップ3では以下の項目を変更し、次のステップ。
・ネットワーク項目では作ったVPCを関連付けする
・サブネット項目も同様に作ったPublic-subnetを関連付けする
・自宅PCからsshするため、自動割り当てパブリックIPを有効
・終了保護の有効化はチェックをしておく（※AWSにおいて、インスタンスの終了=破壊なので要注意)
![EC2_3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/b5fc4828-cac0-58b7-605b-7d05ad519701.png)
ステップ4ではEBS(EC2インスタンスのディスクにあたり、ネットワーク経由で保存データにアクセスしている)は汎用SSD 8Gのまま。
[終了時に削除]にチェックが入っていないと、インスタンスを消したあともEBS分で課金されるので要注意。
![EC2_4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/60d2dd0a-19f0-16e4-acba-0f603b9d8cc4.png)
タグにはNameキーで"WEB用"とつけておく。
名前つけておかないと、インスタンスが増えてきたときに意味不明になる。
![EC2_5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/bb81aebf-ecb5-d393-280c-7694d903798f.png)
セキュリティグループでは、新しいセキュリティグループを作成し、名前もわかりやすいのをつけておく。
※セキュリティグループの名前は作成後に変更できない仕様。代替手段として、セキュリティグループをコピーして別名で新規作成するしかない。
ここではWEBサーバ用なので、以下プロトコルをフルオープン(0.0.0.0/0)で開ける。
・HTTP(80)
・HTTPS(443)
・SSH(22)
・ICMP(疎通確認ping用)
![EC2_6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/4ed055d9-50a4-d4aa-01b9-d280d2a9e09f.png)
最後にキーペアを新規作成して、ダウンロードする。

※EC2インスタンスにアクセスする際に必要になるため、大事に保管する。紛失しても何とかなるが。
![EC2_7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/47764090-7353-a2f4-3440-1b732d408ba9.png)

⑥SSHでEC2インスタンスにアクセス
TeraTermで、ホスト名にEC2のパブリックIPアドレスを入力し、SSH接続する。
※パブリックアドレスはEC2インスタンスの[詳細]タブから確認できる
![SSH1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/9d5ff544-8410-2099-3a96-fa1e04d2e032.png)
AmazonLinuxの初期ユーザはec2-user
※OSによりAWSでの初期ユーザが異なるため注意
ディストリビューション/初期ユーザ
Ubuntu　Ubuntu
RHEL　ec2-user
CentOS　centos
![SSH2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/13aeae1c-827c-147c-67f9-8297d37fa781.png)
秘密鍵の項目で、先ほどダウンロードしたキーペアを選択することで、EC2インスタンスへSSH接続ができたことが確認できた。
![SSH3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032344/4c8f7926-87f7-4b81-1229-77f7813da8b9.png)


長くなってしまったので、初回はここまでで一回切る。
次回は、プライベートサブネットに配置予定のAPサーバ/DBサーバのEC2インスタンスを構築。
WEBサーバにはnginxのインストールとnginx.confの作成。
APサーバにはtomcatのインストールとMySQLドライバーのインストール。
DBサーバにはMySQLのインストールをしたいと思う。
次回で全部できるかな・・・

つづく
https://qiita.com/shinichi_yoshioka/items/e358f57a3ecb7735c091