【AWS】初心に戻って1からVPCを構築してみた　仮想サーバー構築編

昨日の記事の続きです。VPC、パブリックサブネット、プライベートサブネット、ルートテーブルを構築しました。本日はパブリックサブネットの中に仮想サーバー(EC2)を構築します。なおAmazon EC2で作成した仮想サーバーのことをインスタンスと呼びます。このインスタンスには後ほどWEBサーバの機能を持たせようと思います。
インスタンスには割り当て可能なプライベートIPアドレスを割振ります。前回パブリックサブネットを[10.0.1.0/24]にしたため、[10.0.1.0〜10.0.1.255]まで割り当てることができます。

●ご参考
正確にはawsが使用する予約アドレスが5つあります。このため以下は利用できません。

・10.0.0.0: ネットワークアドレスです。
・10.0.0.1: VPC ルーター用に AWS で予約されています。
・10.0.0.2: Amazon DNS サーバーで予約されています。
・10.0.0.3: 将来の利用のために AWS で予約されています。
・10.0.0.255: ネットワークブロードキャストアドレスです。


過去の記事は以下から参照ください。

https://qiita.com/hirockio2206/items/303f7f4ac993f7dabdb8

https://qiita.com/hirockio2206/items/f6060486fc6ec0f2c904

https://qiita.com/hirockio2206/items/b02026b430425f05c2b2

#構成図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1966337/302ff1f8-6311-cde4-c954-08f9fa81e47b.png)


#手順
1.AWSマネジメントコンソールからEC2を選択し、東京リージョンであることを確認してから[インスタンスを起動]をクリックします。
![スクリーンショット 2021-09-21 6.28.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1966337/a9c949df-1832-83f1-1ee2-50dfd87e44e1.png)

2.AMI(Amazon Machine Image) を選択します。無料利用枠の対象である[Amazon Linux 2 AMI]を選択します。
![スクリーンショット 2021-09-21 6.30.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1966337/1b57be94-e34d-9f14-d1ad-0d81969e4b7f.png)

3.インスタンスタイプ(CPUやメモリの大きさの選択)は無料利用枠の対象である[t2.micro]を利用します。
![スクリーンショット 2021-09-21 6.37.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1966337/36aca279-f451-6541-dec0-a7f59f719476.png)


4.インスタンスの詳細の設定では以下を選択します。
ネットワーク：自分で作成したVPC
サブネット：自分で作成したパブリックサブネット
自動割り当てパブリックIP：有効
![スクリーンショット 2021-09-21 6.41.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1966337/e3351917-c6dc-9520-a4f7-a08c92bc4862.png)
プライマリIP：10.0.1.10
![スクリーンショット 2021-09-21 6.43.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1966337/1b97c9da-716e-d121-4a4f-9abf9401693e.png)

5.ストレージの追加では特に変更はしません。PCでいうところのCドライブの容量や種類の選択と思ってください。
![スクリーンショット 2021-09-21 6.45.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1966337/3f8bf2c0-66d4-5138-6a33-72442293c814.png)

6.タグの追加では以下を入力します。これは管理しやすいように名前をつけておくという意味です。
またシステム毎に費用を算出したい場合、グルーピングできるので便利です。
キー：Name
値：Webサーバー
![スクリーンショット 2021-09-21 6.48.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1966337/0230dc1a-2a60-4026-aa58-e88b102b8088.png)

7.セキュリティグループの設定では以下とします。
セキュリティグループ名：WEB-SG
![スクリーンショット 2021-09-21 6.53.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1966337/9d208099-380d-ae57-06b3-618d8017bbd3.png)

なお、デフォルトのセキュリティグループはSSHというプロトコルで接続できるように設定されています。SSHとは「Secure Shell」の略で、ネットワークに接続された機器を遠隔操作し、管理するためのプロトコルです。サーバ運用現場では、Tera Termをよく用います。macOSの場合はターミナルで行います。
このSSHのエントリーを削除するとクライアント端末からSSHでこのサーバーに接続し操作することができなくなります。
ただし、どこからでもSSHでアクセスできる[0.0.0.0/0]という設定は好ましくありません。
そのため、[警告]が出ています。今回はここまま進めます。

7.起動をクリックすると[キーペア]の作成画面となりますので以下の通り進めます。
[新しいキーペアの作成]を選択
キーペア名：web-sv(任意)
[キーペアのダウンロード]をクリック(無くすとサーバーにアクセスできなくなりますので注意)
インスタンスの作成
![スクリーンショット 2021-09-21 7.04.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1966337/3087fb61-a3f5-9510-fee5-a1196b96382a.png)

8.EC2のトップ画面に戻り、左側のメニューペインでインスタンスをクリックします。
インスタンス状態がpending→実行中になり、ステータスチェックが2/2のチェックに合格しましたと出たら作成完了です。
![スクリーンショット 2021-09-21 7.11.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1966337/f4047dab-c812-3825-a2f2-9fd3595e5f0d.png)

9.パブリック IPv4 アドレスを確認します。Webサーバーをクリックした際に下側に出てきます。
接続の際に利用しますのでメモしてください。
![スクリーンショット 2021-09-21 7.24.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1966337/f8f9cc04-f2dd-d92f-86df-751f99c7d7d1.png)





10.SSHで接続します。
[web-sv.pem]をデスクトップに配置します。
macOSでターミナルを起動し、デスクトップに移動します。

```
% cd desktop
desktop %
```


XXXのところは先ほど確認したパブリック IPv4 アドレスを入力してください。

```
desktop %　sudo ssh -i web-sv.pem ec2-user@XXX.XXX.XXX.XXX
```
パスワードは管理者パスワードを入力してください。

```
The authenticity of host 'your-host (XXX.XXX.XXX.XXX)' can't be established.
RSA key fingerprint is 7s:ca:8a:a8:2d:1a:44:2b:96:e8:9e:s3:21:s8:3e:07.
Are you sure you want to continue connecting (yes/no)?
```
初回は上記が聞かれるので[yes]と入力してください

```
Last login: Mon Sep 20 22:20:00 2021 from flh2-133-201-141-192.tky.mesh.ad.jp

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

https://aws.amazon.com/amazon-linux-2/
11 package(s) needed for security, out of 35 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-0-1-10 ~]$ 
```

上記画面が出たらインスタンスの構築と接続が成功です！おめでとうございます。

#最後に
いかがでしたでしょうか。無事EC2インスタンスを起動し、端末からアクセスできましたでしょうか。
慣れればVPC構築からここまで30分以内にできるようになるかと思います。
ご参考になれば幸いです。