【超簡単】無料枠内におさまる範囲でAWS環境を構築する

# はじめに

以前、実務で使う AWS 技術を個人で学習するなら『これだけで十分！』という AWS 環境の最小構成 を紹介しましたが、環境構築の方法には全く触れていませんでした。

https://qiita.com/kyooooonaka/items/a20b2c61a19f2e4f337f

そこで、本記事では **『無料利用枠の範囲でも、実務に必要な AWS 技術を十分に学べる AWS 環境の構築方法』** を紹介します。

# 構築環境

今回構築する環境は以下の図のとおりです。

![](https://i.gyazo.com/775940c1165bd60b0ba17dd3705226ed.png)

また、次の手順で環境を構築していきます。

1. VPC の作成
2. サブネットの作成
3. パブリック IP の自動割り当て
4. インターネットゲートウェイの作成
5. ルートテーブルの作成
6. セキュリティグループの作成
7. EC2 インスタンスの作成
8. EC2 インスタンスへ SSH 接続

それでは、実際に環境を構築してみましょう。

# 1. VPC の作成

- AWS コンソールにログイン後、ホーム画面から VPC を選択します。
  [![Image from Gyazo](https://i.gyazo.com/794c031b70dac7aed2a2a6aaf6c86010.png)](https://gyazo.com/794c031b70dac7aed2a2a6aaf6c86010)

- [お使いの VPC]→[VPC を作成]をクリックします。
  [![Image from Gyazo](https://i.gyazo.com/d7892885090f1eb8a6676dce22e4bf80.png)](https://gyazo.com/d7892885090f1eb8a6676dce22e4bf80)

- 必要項目を入力します。
  [![Image from Gyazo](https://i.gyazo.com/bb826eefc0a0f109ffbafbd6c3e7dab2.png)](https://gyazo.com/bb826eefc0a0f109ffbafbd6c3e7dab2)

:::note info
名前タグには VPC を識別しやすくするため、わかりやすい名前をつけます。
:::

:::note info
VPC で使用するプライベートネットワーク用の IP アドレスの範囲は次の 3 つが用意されています。
10.0.0.0〜10.255.255.255（/24）
172.16.0.0〜172.31.255.255（/20）
192.168.0.0〜192.168.255.255（/16）
:::

CIDR ブロックの計算には以下のサイトで簡単に計算ができます。
https://note.cman.jp/network/subnetmask.cgi
一般的には IP アドレスの範囲が広い方が、同じネットワーク内にたくさんの IP アドレスを用意できます。

VPC で指定できるサブネットマスクは最大 16 ビットまでとなっていますが、今回は多くの IP アドレスを用意する必要がないため「10.0.0.0/24」としておきます。（256 個の IP アドレスを用意します。）

- 「タグ」では入力した名前タグの値が表示されるので、[VPC の作成]をクリックします。
  [![Image from Gyazo](https://i.gyazo.com/d0296ffe147b4ed6a7bff0a011e3c3f7.png)](https://gyazo.com/d0296ffe147b4ed6a7bff0a011e3c3f7)

- VPC の作成が完了し、詳細画面が表示されます。
  [![Image from Gyazo](https://i.gyazo.com/a19d6e3afefbda0edd34fd5052fc64ac.png)](https://gyazo.com/a19d6e3afefbda0edd34fd5052fc64ac)

# 2. サブネットの作成

- [サブネット]→[サブネットを作成]をクリックします。
  [![Image from Gyazo](https://i.gyazo.com/45164a360a50f8a7cb515498feb1763e.png)](https://gyazo.com/45164a360a50f8a7cb515498feb1763e)

- 作成した VPC を選択します。
  [![Image from Gyazo](https://i.gyazo.com/dbf6e25bcecb7e8c16af928f0c5864aa.png)](https://gyazo.com/dbf6e25bcecb7e8c16af928f0c5864aa)

- 必要項目を入力します。
  [![Image from Gyazo](https://i.gyazo.com/4b6a57a90655b70fd9e9a65e8a663d90.png)](https://gyazo.com/4b6a57a90655b70fd9e9a65e8a663d90)

- サブネットの作成が完了し、一覧に表示されます。
  [![Image from Gyazo](https://i.gyazo.com/433a3104e6e3c33baf795850eb93e880.png)](https://gyazo.com/433a3104e6e3c33baf795850eb93e880)

# 3. パブリック IP の自動割り当て

:::note info
サブネットを作成した時点では、プライベート IP アドレスしか付与されておらず、パブリック IP アドレスは持っていません。

パブリック IP アドレスはサブネット作成後に設定を編集し、自動割り当てを有効にする必要があります。
:::

- サブネットを選択して、[アクション]→[サブネットの設定を編集]をクリックします。
  [![Image from Gyazo](https://i.gyazo.com/c23a8dc47e76214b5daa506b822ab762.png)](https://gyazo.com/c23a8dc47e76214b5daa506b822ab762)

- パブリック IPv4 アドレスの自動割り当てにチェックして保存します。
  [![Image from Gyazo](https://i.gyazo.com/b277dc1dedf784094f4e63f42b264f53.png)](https://gyazo.com/b277dc1dedf784094f4e63f42b264f53)

- パブリック IP の自動割り当てが完了しました。
  [![Image from Gyazo](https://i.gyazo.com/2104fb39563675023204dab048c20fee.png)](https://gyazo.com/2104fb39563675023204dab048c20fee)

# 4. インターネットゲートウェイの作成

- [インターネットゲートウェイ]→[インターネットゲートウェイの作成]をクリックします。
  ![](https://i.gyazo.com/e6998cfc3f043b70fdca29b3969e20af.png)

- 必要項目を入力します。
  ![](https://i.gyazo.com/440b95e9e96a1340da77ab641cc535b9.png)

- [VPC をアタッチ]をクリックします。
  ![](https://i.gyazo.com/f3ead81359f5a3e9a3d831755a027e99.png)

- 作成した VPC を選択します。
  ![](https://i.gyazo.com/0fcbd624f25699748becf785039267ce.png)

- VPC のアタッチ完了が完了し、「VPC ID」が表示されます。
  ![](https://i.gyazo.com/dcf3725512c6560b3bfff271b3e76a1a.png)

# 5. ルートテーブルの作成

- [ルートテーブル]→[ルートテーブルを作成]をクリックします。
  ![](https://i.gyazo.com/d8f288ed848e04eda32e77605c36fe00.png)

- 必要項目を入力し、[ルートテーブルを作成]をクリックします。
  ![](https://i.gyazo.com/7fb39cc2952d7553a206de984b7e201d.png)

- ルートテーブル作成が完了後、[ルートを編集]をクリックします。
  ![](https://i.gyazo.com/4b1589c1492a567e801081ec406e6d2c.png)

- [ルートを追加]し、「送信先に 0.0.0.0/0」「ターゲットに作成したインターネットゲートウェイ」を指定して[変更を保存]します。
  ![](https://i.gyazo.com/b5a23d9794e51a376c7996dc27fbbf9c.png)
  ![](https://i.gyazo.com/14910e51c35e52d2c345cb6ef086718f.png)

- インターネットに向けたルートテーブルの作成が完了しました。
  [![Image from Gyazo](https://i.gyazo.com/d3e6caf08b8ea18f907ba29cf9acb0b8.png)](https://gyazo.com/d3e6caf08b8ea18f907ba29cf9acb0b8)

- [サブネットの関連付け]→[サブネットへの関連付けを編集]をクリックします。
  [![Image from Gyazo](https://i.gyazo.com/eb0baea6850e841c026009a9e56dc2a6.png)](https://gyazo.com/eb0baea6850e841c026009a9e56dc2a6)

- 利用可能なサブネットから、作成したパブリックサブネットを選択し、[関連付けを保存]します。
  ![](https://i.gyazo.com/33d1e9feaaab391664c935295c773bfc.png)

- サブネットの関連付けが完了し、明示的なサブネットの関連付けに表示されます。
  [![Image from Gyazo](https://i.gyazo.com/964d10f44b8602f1c962856845002f1f.png)](https://gyazo.com/964d10f44b8602f1c962856845002f1f)

# 6. セキュリティグループの作成

:::note info
セキュリティグループはリソース（EC2、ロードバランサーなど）に対して、外部から内部へのインバウンド／内部から外部へのアウトバウンドを制御します。
また、セキュリティグループはステートフルと呼ばれ、インバウンドで許可した対象はアウトバウンドも許可されます。デフォルトでは全て拒否されています。
:::

- [セキュリティグループ]→[セキュリティグループを作成]をクリックします。
  ![](https://i.gyazo.com/89f04cac41bc99f38a79e799da7d19f4.png)

- 必要項目を入力します。
  ![](https://i.gyazo.com/6d1f8a08693bbffc1338a9123c14e97b.png)

- 「インバウンドルール」の[ルールを追加]をクリックし、「タイプ」に SSH、「ソース」に Anywhere-IPv4(0.0.0.0/0)を指定します。
  [![Image from Gyazo](https://i.gyazo.com/476ab4f3ca3e77486e4023bc5fd64def.png)](https://gyazo.com/476ab4f3ca3e77486e4023bc5fd64def)
  [![Image from Gyazo](https://i.gyazo.com/588951aeab776b4e1291957c613bf27f.png)](https://gyazo.com/588951aeab776b4e1291957c613bf27f)
  ![](https://i.gyazo.com/9d2073d475ee0ae21fc1e70972cd2ce5.png)

- セキュリティグループの作成が完了し、インバウンドルールに表示されます。
  [![Image from Gyazo](https://i.gyazo.com/b378c8c8a1db381d5416ebc60b5c03be.png)](https://gyazo.com/b378c8c8a1db381d5416ebc60b5c03be)

# 7. EC2 インスタンスの作成

- AWS コンソールのホーム画面から EC2 を選択します。
  ![](https://i.gyazo.com/23edc7a49a4fc8532fb16d083d50d322.png)

- [インスタンス]→[インスタンスを起動]をクリックします。
  ![](https://i.gyazo.com/de023b90f3fee4e6f681f4e20e088ff0.png)

- インスタンスに付ける名前とタグを入力します。
  ![](https://i.gyazo.com/2216551e3d4a3c9a1e3d94cf16eec092.png)

- マシンイメージは「Amazon Linux」を選択します。
  ![](https://i.gyazo.com/0a60191f0469350830e6a9eeed90dbc2.png)

- [新しいキーペアの作成]をクリックします。
  ![](https://i.gyazo.com/4313519fec00e0d4068737754d47abd4.png)

- キーペア名を入力し、キーペアのタイプは「RSA」、プライベートキーファイル形式は「.pem」を指定します。
  ![](https://i.gyazo.com/1e280e4643f8bb3b372d42bdb68c67fa.png)

- 作成したキーペア名が選択され、プライベートキーが自身のローカル PC にダウンロードされます。
  ![](https://i.gyazo.com/f4fa662c5bd732392b6b4ee320394541.png)

- ネットワーク設定では、これまで作成した VPC、サブネット、セキュリティグループを指定します。
  ![](https://i.gyazo.com/679eb70659ad89f159df18eee235e49c.png)

- ストレージ設定はデフォルトのまま[インスタンスの起動]をクリックします。
  ![](https://i.gyazo.com/00275668bbab9c4f72c7ef70e53a383a.png)

# 8. EC2 インスタンスへ SSH 接続

- [SSH クライアント]を選択して、手順に沿ってプライベートキーの利用権限を変更します。
  [![Image from Gyazo](https://i.gyazo.com/c825a26d88e274ee780866ce4a0011f5.png)](https://gyazo.com/c825a26d88e274ee780866ce4a0011f5)

- `ssh -i [プライベートキーのパス] ec2-user@xxx.xxx.xxx.xxx`で EC2 インスタンスへ SSH 接続します。
  [![Image from Gyazo](https://i.gyazo.com/f7c12bfb01759a47493232a7cd15e2e9.jpg)](https://gyazo.com/f7c12bfb01759a47493232a7cd15e2e9)

# さいごに

今回の環境構築で AWS 技術を学ぶ準備を整えることができました。
実際には権限回り(特に IAM)の設定が重要となりますが、IAM の設定方法については、また次の記事で紹介したいと思います。