EC2作成手順をAWS初心者向けに解説!VPC/サブネットの作成方法から丁寧にご紹介!

awsの学習において、iamの設定をしたあとはVPCで自分用のネットワークを作成してそこにEC2インスタンスを作成できるようになるというのが次のチェックポイントになるかと思います!
今回は、EC2インスタンス作成までの手順を解説していきます。
EC2インスタンスの作成は、何度かやってみて何も見ずにできるようになると良いかなーと思います。
今回作るもの
サービス名 | リソース名 | 用途 |
VPC | VPC | 自分専用のネットワークを作ります。 |
VPC | インターネットゲートウェイ | VPCがインターネットに接続するための出入り口です。 |
VPC | サブネット | VPCを小分けに分割します。 |
VPC | ルートテーブル | VPCの通信をインターネットに送信するための設定です。 |
EC2 | キーペア | EC2インスタンスに秘密鍵認証する時に使います。 |
EC2 | セキュリティーグループ | EC2に接続できるアクセス元やプロトコルを制限します。 |
EC2 | EC2インスタンス | 仮想サーバです。 |
図にするとこんなイメージです。

事前準備
AWSのマネジメントコンソールにアクセスできるIAMユーザがあればOKです!
アカウントの作成がまだの方は、公式の手順がわかりやすいですのでぜひ参考にして作成してください。
ちなみに、、、もうrootユーザは使っていないですよね?
rootユーザは普段の利用には適していないユーザーです。
まだ、IAMユーザを作成していない方は、こちらの記事で作成手順をまとめていますのでこの機会にぜひ作ってみてください!
VPCの作成
VPCのコンソール画面から以下のリソースを作成します。
サービス名 | リソース名 | 用途 |
VPC | VPC | 自分専用のネットワークを作ります。 |
VPC | インターネットゲートウェイ | VPCがインターネットに接続するための出入り口です。 |
VPC | ルートテーブル | VPCの通信をインターネットに送信するための設定です。 |
VPC | サブネット | VPCを小分けに分割します。 |
VPCコンソール画面の表示
マネジメントコンソールにログインしたら、検索窓にVPCと入力してVPCのコンソール画面を表示します。

VPCの作成
ウィザードを使って一括で作成することも可能ですが今回は、ウィザードが実際に何を自動でやってくれているのかを理解してもらいたく手動での実施とします。
何をやってるか理解できていない状態でウィザードを使っても構築自体は可能かと思います。
しかし、VPCを使うために何が必要かわかっていないとトラブルシューティングで苦労するかと思います。。なのでぜひ!
左側の 「VPC」から表示した画面の右側「VPCを作成」をクリックします。

VPC作成画面
次のような画面になりますので各種必要な項目を入力します。
名前タグ -オプション | VPCの名前です |
CIDRブロック | ネットワークのサイズを指定します。 |
IPv6CIDRブロック | IPv6は、使わないです。 |
テナンシー | VPCが作られる物理マシンを占有するかどうかの設定。占有するとお金がかかるのでデフォルトで |
タグ | 自動入力されます。リソースを識別するための情報です。 |

作成確認画面
このような画面になればVPCの作成完了です。
この状態ではVPCが「ただあるだけ」なので以降の手順で接続するために必要なリソースをVPCにくっつけていきます。

インターネットゲートウェイの作成
このリソースはVPCがインターネットに接続するための出入り口です。
これがくっついていないといくら設定してもVPCはインターネットと接続することはできません。
つまり、私たちもVPCに接続できません。
インターネットゲートウェイの画面
先ほどと同じくVPCのコンソール画面から「インターネットゲートウェイ」を選択して右上の「インターネットゲートウェイの作成」をクリックします。

インターネットゲートウェイ作成画面
作成時の入力は少なく、インターネットゲートウェイの名前だけでOKです。
入力したら、「インターネットゲートウェイの作成」をクリックします。

エラーが出なければインターネットゲートウェイの作成は完了です。
VPCにアタッチ
インターネットゲートウェイは作成しただけでは使えず、先ほど作成したVPCに接続してあげる必要があります。
右上の「アクション」から「VPCにアタッチ」を選択して先ほど作成したVPCを選択して「インターネットゲートウェイのアタッチ」をクリックします。

特にエラーが出なければアタッチ完了です。
サブネットの作成
先ほど作成したVPCでCIDRを10.0.0.0/16というように設定しました。この場合、今回作成したVPCの中で使えるIPアドレスは10.0.0.1~10.0.255.254までとなります。
ただ、これをそのまま使うのではなく小分けにして使わないといけません。その小分けにする設定がサブネットです。
今回は10.0.0.0/24のサブネットを作成し使えるIPアドレスを10.0.0.0~10.0.0.254となります。
サブネットについてはこちらの記事で少し触れていますので参考にしてみてください。
今回作成するEC2インスタンスはサブネットの中に作成するリソースとなります。
必ずサブネットの中に作るというわけではなく、S3やAthenaなどVPCに依存しないものもあれば、VPCエンドポイントのようにVPCにアタッチするサービスもあります。この辺りは使用するサービスをよく調べてみてください。
サブネットの画面
今までと同じく、左側の「サブネット」を選択して「サブネットを作成」をクリックします。

サブネット作成画面

次に作成するサブネットの設定です。
アベイラビリティーゾン(以下AZ)とはAWSというクラウドサービスが動作しているデータセンターの集まりです。
(どこにあるかはわかりません)
これを分けることで大規模なの災害や停電が発生した時でも、別のAZで作ったサブネットであれば問題なく稼働させることができます。
仕事で使う場合は、一般的に複数のAZでリソースを冗長化して可用性を高ます。
今回はやりませんが、画面下の「新しいサブネットを追加」で別のAZを指定してサブネットを追加します。
入力が完了したら「サブネットを作成」をクリックして完了です。
また、サブネット名には1a/1c/1dのようにどのAZに配置したかを記載しておくと障害発生時などにパッとみAZを判別できて良いと教わりました。

ルートテーブルの作成
これは、先ほど作成したサブネットにくっつけてあげるものです。
このあと、EC2インスタンス(仮想サーバ)をサブネットの中に構築することになるのですが、インターネットに接続する時に先ほど作成してVPCにアタッチしたインターネットゲートウェイを利用してインターネットに接続します。
そのために設定するのがルーティングテーブルです。
ルートテーブルの作成画面
VPC画面の左側「ルートテーブル」から右上の「ルートテーブルを作成」を選択します。

ルートテーブルの作成画面
ルートテーブルの名前と、このルートテーブルをどのVPCの中で使うのかを選択します。

ルートテーブルにルートを追加
ルートテーブルを作成しただけでは、必要なルーティング情報は設定されません。
先程の、「インターネットに接続するにはどこにいけばいいか」を次に指定してあげる必要があります。
作成後の画面から「ルートを編集」をクリックします。
ルートの編集画面で「ルートを追加」を選択肢新しい枠を表示させ以下のように入力します。
送信先 | 0.0.0.0/0 |
ターゲット | [インターネットゲートウェイ]>[先ほど作成したインターネットゲートウェイ] |
入力できたら「変更の保存」をクリックします。これで、インターネットに接続するための準備ができました。
ルートテーブルをサブネットにアタッチ
ルートテーブルが先ほど作成したルートテーブルを使うにはインターネットゲートウェイと同様にアタッチしてあげる必要があります。
先ほど作成したサブネットにチェックを入れて「関連づけを保存」をクリックします。

特にエラーが出なければOKです。
キーペアの作成
EC2インスタンスに接続する時に使用する秘密鍵を先に作成します。
作成方法はこちらの記事の事前準備>キーペアの作成で解説していますので参考にしてください!
セキュリティグループの作成
EC2インスタンスに対する通信のアクセス元とポート番号を制限します。
セキュリティグループの画面
セキュリティグループは、EC2のサービスで提供されています。
VPCのコンソールを表示させた時のように検索窓から「EC2」と入力してEC2のコンソール画面を表示させます。
その後、左側の「セキュリティグループ」を選択して「セキュリティグループを作成」を選択します。

セキュリティーグループの作成画面
セキュリティグループの各種項目を入力しまう。
VPCは先ほど作成したものを選択してください。
その下のインバウンドルールでは自分のIPアドレスからSSH接続を許可します。
アウトバウンドの通信は、今回設定する必要はありません。
タイプ | プロトコル | ポート | ソース |
SSH | TPC | 22 | マイIP |
設定できたら右下の「ルールを保存」をクリック

セキュリティグループはここに記載されたもののみ通信を許可して記載のないルールは全て拒否します。
私の職場では「ホワイトリスト方式」と言って必要な通信を都度許可してあげるような設定になります。
逆に基本全て許可して、怪しい通信を拒否する方式を「ブラックリスト方式」と呼んでいました。
ITの世界では一般的かと思いますのでぜひ覚えておいてください。
EC2インスタンスの作成
いよいよEC2インスタンスを作成します。
EC2インスタンスの画面
左側の「インスタンス」から「インスタンスの起動」をクリックします。

Amazonマシンイメージの選択
作成するEC2インスタンスのAmazonマシンイメージ(AMI)を選択します。
今回はAmazonLinux2というAWSが提供するAMIを使用します。
他にも、Windows・Ubuntu・RHELなど様々なものが用意されており用途に合わせて選択できるようになっています。
さらにこのAMIは自分でカスタマイズもできるためいつか記事にしたいと思っています。

インスタンスタイプの選択
ここでは、作成するEC2インスタンスのスペックを選択します。
今回は、無料枠で利用な最小の「t2.micro」を選択します。
インスタンスタイプはGPUを搭載したものやストレージのI/0が最適化されているものなど複数の種類があります。
業務で使うときは用途を考えて選択すると良いかと思います。

インスタンスの詳細設定
ここでは、EC2インスタンスを作成するVPCやサブネットを選択します。
選択項目が多いですが、とりあえず動かすと言った場合は以下の3点で問題ありません。
項目名 | 設定するもの | 説明 |
ネットワーク | 先ほど作成したVPC | EC2インスタンスを作成するサブネットが所属するVPCを作成します |
サブネット | 先ほど作成したVPC | VPCを選択すると自動でそのVPCに所属するサブネットを選択できるようになります。 |
自動割り当てパブリックIP | 有効 | グローバルIPアドレスを設定するか否かの項目です。今回インターネット経由でEC2インスタンスに接続するため有効にします。(グローバルIPについてこちらの記事で軽く触れています。) |

タグの設定
今まで出てきたタグと同じ用途です。説明は割愛します。

セキュリティグループの設定
先ほど作成したセキュリティグループをEC2に紐付けます。
これで設定した通信のルールがEC2インスタンスに適用されます。

キーペアの指定
最後に設定内容の確認画面がありますので「起動」をクリックします。
すると次のようなウィンドウが出てきて使用するキーペアを選択できます。
「既存のキーペアを選択」にして先ほど作成したキーペア名を指定します。
最後に、ちゃんとその秘密鍵が使える旨の承諾にチェックを入れて「インスタンスの作成」をクリックします。
作成中のメッセージが表示されますので、右下の「インスタンスの表示」をクリックして一覧のページに戻ります。

作成したインスタンスが表示されていればOKです!
これでEC2インスタンスの作成は完了です!お疲れ様でした。
EC2インスタンスに接続
作成したEC2インスタンスへの接続には先ほど作成したキーペアの秘密鍵を使います。
手順はこちらの記事でご紹介していますので参考にしてみてください!
接続できればEC2の作成と接続は完了です!
この作業がサッとできれば自分で何か検証したり学習に使ったりする場合でもスムーズにサーバーの用意ができます。
今後のAWSの勉強にも非常に役立つと思うのでぜひ覚えてしまいましょう!
リソースの削除について
AWSではEC2などのリソースは起動時間に対して課金されていきます。
ですので不要なリソースは削除するようにしましょう。
今回作成したリソースの削除方法は以下の通りです。
EC2インスタンスの削除
こちらを先に削除しないとVPCの削除ができません。
インスタンス一覧の画面から、「インスタンスの状態」を開き「インスタンスの終了」を実行してください。
1分ほどで削除が完了します。「終了済み」になればOKです

VPCの削除
EC2の削除が完了したら、残りのリソース(ルートテーブル、サブネットなど)はVを削除することで一緒に削除されます。
VPCの削除は「アクション」から「VPCの削除」を行うことで実行できます。
これで作成したリソースの削除は完了です。
最後までご覧いただきありがとうございました!