【はじめての AWS】VPC と EC2 を利用した仮想サーバー作成

AWS#7_VPCとEC2を利用した仮想サーバー作成

こんにちは、YaaRuu です!

AWS アカウントの初期設定ができたら、システムで必要となる様々なリソースをクラウド上で作成していきましょう。

AWS ではコンピューティングサービスやデータベースサービス、オブジェクトストレージサービスなど多くのサービスが利用できます。

ここでは AWS サービスを利用した仮想サーバーの構築を行いたいと思います。

シンプルな構成の仮想サーバーを構築するため、AWS サービスとして「VPC」「EC2」を利用します。

今回は VPC と EC2 の作成を記事にしております。

もしお役に立つような情報があれば幸いです。それではどうぞよろしくお願いいたします。

1. 実施する対応概要

本記事では以下の対応を行います。

項目利用サービス概要
VPC の作成VPC仮想サーバーを配置するため、AWS 上に自分専用のネットワーク空間を作成します。
EC2 の作成EC2仮想サーバーを提供するためのコンピューティングサービスです。リソースや OS などを選択して仮想サーバーを作成します。
またチュートリアルの対象となっており、EC2 を作成することで無料利用枠の 20 USD のクレジットを受け取ることができます。

2. 想定構成

作成する VPC と EC2 の構成は以下を想定します。

実際のシステムでは冗長性や可用性、セキュリティなどを考慮して構築しますが、今回は簡単にインターネットにアクセスできるように簡易的な構成で構築します。

本構成はインターネットからアクセス可能なパブリックサブネットに仮想サーバーを作成するため、セキュリティグループの設定に留意することや、仮想サーバーが不要になったら削除するなど適切に管理してください。

  • アベイラビリティゾーン : 2 つ
  • パブリックサブネットの数 : 2 つ
  • プライベートサブネットの数 : 4 つ
  • インスタンス : 1 つ
  • インターネットゲートウェイ : 1 つ
  • エンドポイント(S3 ゲートウェイ) : 1 つ

構成図は以下の通りです。

構成図画像

3. VPC の作成

まずは AWS 上に仮想ネットワーク空間を作成していきます。

仮想ネットワーク空間を作成するために VPC の IP アドレス範囲を指定する必要がありますので、利用する IP アドレスの検討から始めます。

1. 利用する IP アドレスの検討

VPC を作成する際、仮想ネットワーク空間の IP アドレス体系を検討する必要があります。

ネットワークは PC やスマートフォンなどの情報端末をお互いに接続して、データをやり取りするために必要なものとなります。

遠方の人と手紙のやり取りをする際に自分と相手の住所が必要であることと同じように、ネットワーク上でデータをやり取りするために IP アドレスが必要となります。

IP アドレスは利用範囲によって「グローバルアドレス」と「プライベートアドレス」に分けられます。

VPC の IP アドレスは Classless Inter-Domain Routing (CIDR)表記で表され、「192.168.0.0/16」などの IPv4 CIDR ブロックを指定する必要があります。

VPC を作成するときは、インターネット技術の標準化を推進する任意団体(IETF)が発行する RFC(Request For Comments)という文書に指定されているプライベートアドレスの範囲から設定することが推奨されています。

種類概要
グローバルアドレスインターネットで利用する IP アドレスです。一意でありインターネット上で重複しないように管理されています。
プライベートアドレスインターネットに出ない閉じたネットワーク内で利用する IP アドレスです。VPC 内のインスタンス間の通信に利用できます。

3. プライベートアドレス空間

Internet Assigned Numbers Authority (IANA)は次の三つのIPアドレス空間
ブロックをプライベートインターネットのために予約している。

10.0.0.0 – 10.255.255.255 (10/8 prefix)
172.16.0.0 – 172.31.255.255 (172.16/12 prefix)
192.168.0.0 – 192.168.255.255 (192.168/16 prefix)

引用元:プライベート網のアドレス割当(RFC 1918) – JPNIC

本記事ではプライベートアドレスの 172.16.0.0/16 を利用することにします。

実際にはそれぞれのシステムに合わせてアドレス体系を検討してください。

2. VPC の作成

AWS マネジメントコンソールへサインインします。

右上のリージョン部分を変更します。

※下記は東京リージョンに変更する場合の参考画像です。

東京リージョン変更参考画像

AWS マネジメントコンソール左上の検索バー①に「VPC」と入力し、出てきた VPC ②をクリックします。

VPCクリック画像

デフォルト VPC を削除している場合、リージョン別のリソースにおける DHCP オプションセット以外が 0 となっていることを確認します。

リージョン別のリソース作業前画像

VPC を作成ボタン③を押します。

VPCを作成押下画像

名前タグの自動生成④に任意の名前を入力します。

IPv4 CIDR ブロック⑤に検討したアドレス体系を入力します。

名前タグおよびIPv4CIDR入力画像

プライベートサブネットの数で「4」を選択⑥します。

サブネット CIDR ブロックをカスタマイズ⑦をクリックして、パブリックサブネットとプライベートサブネットの CIDR ブロックに任意の値を入力します。

サブネットの数や各 CIDR などは作業環境に合わせて設定してください。

プライベートサブネットの数およびサブネットCIDRブロック入力画像

VPC を作成ボタン⑧を押します。

VPCを作成押下画像

画面下側の VPC を表示ボタン⑨を押します。

VPCを表示押下画像

VPC の詳細が表示されることを確認します

VPCの詳細画像

リソースマップのインターネットゲートウェイ⑩をポイントして、関連するサブネットがパブリックサブネットであることを確認します。

パブリックサブネットにはインターネットへの直接ルートがあるためインターネットにアクセスできます。
プライベートサブネットにはインターネットへの直接ルートがありません。インターネットへアクセスするには NAT デバイスが必要となりますが今回は作成しておりません。

本構成でインターネットへ接続するためにはパブリックサブネットに属している必要があるため、パブリックサブネットに仮想サーバーを作成します。

インターネットゲートウェイポイント画像

エンドポイント⑪をポイントして、関連するサブネットがプライベートサブネットであることを確認します。

S3 ゲートウェイを利用すると、プライベートサブネットから S3 へアクセスすることができます。

エンドポイントポイント画像

左側のツリーの VPC ダッシュボード⑫をクリックします。

VPCダッシュボードクリック画像

作成されたリソースが 0 から増加していることを確認します。
今回は VPC、サブネット、ルートテーブル、インターネットゲートウェイ、エンドポイント、ネットワーク ACL、セキュリティグループが作成されています。

リージョン別のリソース作業後画像

これで VPC の作成は完了です。

4. EC2 の作成

AWS 上に仮想ネットワーク空間を作成できたら、次は EC2 の作成を行います。

今回は EC2 へ接続する方法として SSM Session Manager を利用します。
SSM Session Manager を使用するとブラウザで EC2 に接続することができます。

通常サーバーなどの EC2 に接続する場合は、通信するために外部から EC2 に向かうポートを開放したりする必要があります。

ですが SSM Session Manager で利用するポートは、HTTPS の外部向けポートを開放することで通信を行うことができるためセキュリティ体制の向上に役立ちます。

EC2 を作成する前に SSM Session Manager を利用するためのロールやセキュリティグループ、EC2 の EBS 暗号化設定やキーペア作成などを行い、EC2 を作成していきます。

1. SSM Session Manager 接続用ロールの作成

SSM Session Manager で接続するための準備を行います。

ここでは IAM ロールを作成していきます。

左上の検索バー①に「IAM」と入力し、出てきた IAM ②をクリックします。

IAM検索クリック画像

左側のツリーのアクセス管理 – ロール③をクリックし、ロールを作成ボタン④を押します。

ロールクリック画像
ロールを作成ボタン押下画像

サービスまたはユースケースに「EC2」と入力し EC2 を選択⑤します。
下に表示されるユースケースで EC2 を選択⑥し、次へボタン⑦を押します。

EC2選択および次へボタン押下画像

許可ポリシーの検索バー⑧に「AmazonSSMManagedInstanceCore」と入力します。
表示されたポリシー名 AmazonSSMManagedInstanceCore のチェック⑨を付け、次へボタン⑩を押します。

AmazonSSMManagedInstanceCore選択および次へボタン押下画像

ロール名を入力⑪し、画面を下にスクロールしてロールを作成ボタン⑫を押します。

ロール名入力画像
ロールを作成押下画像

作成したロール名が表示されていることを確認します。

ロール確認画像

これでロールの作成は完了です。

2. SSM Session Manager 接続用セキュリティグループの作成

SSM Session Manager で接続するための準備を行います。

ここではセキュリティグループを作成していきます。

左上の検索バー①に「EC2」と入力し、出てきた EC2 ②をクリックします。

EC2検索クリック画像

左側のツリーのネットワーク & セキュリティ – セキュリティグループ③をクリックします。

セキュリティグループクリック画像

セキュリティグループを作成ボタン④を押します。

セキュリティグループを作成ボタン押下画像

基本的な詳細のセキュリティグループ名⑤に任意の名前を入力します。
VPC ⑥では先ほど作成した VPC を選択します。

アウトバウンドルールのルールを追加ボタン⑦を押します。

基本的な詳細入力およびルールを追加ボタン押下画像

タイプ⑧で HTTPS を選択します。
送信先の右部分⑨をクリックし CIDR ブロックの「0.0.0.0/0」を選択します。

その後、セキュリティグループを作成ボタン⑩を押します。

アウトバウンドルールではアウトバウンドトラフィックの制御ルールを設定します。
今回は HTTPS 通信(443 ポート通信)について、任意の IPv4 アドレス(0.0.0.0/0)へ通信することを許可しています。
このセキュリティグループを EC2 に関連付けることで、EC2 から外向きへの HTTPS 通信を行うことができます。

アウトバウンドルール設定およびセキュリティグループを作成ボタン押下画像

作成したセキュリティグループが表示されていることを確認します。

セキュリティグループ確認画像

これでセキュリティグループの作成は完了です。

3. デフォルト EBS 暗号化設定

AWS クラウド環境での仮想サーバーのことを EC2 インスタンスと呼びます。

インスタンスを起動するために必要な構成要素のひとつとして EBS ボリュームというものがあります。

EBS ボリュームは物理ハードドライブのように機能するストレージデバイスで、インスタンスの容量を追加することができます。

この EBS ボリュームについて、AWS の機能でボリューム内の保存データなどを暗号化することができます。

ボリュームを作成するときに暗号化設定することも可能ですが、ここでは暗号化することを忘れないようにデフォルトで暗号化が有効となるように設定を行います。

デフォルトで暗号化を有効にすると、作成した新しい EBS ボリュームとスナップショットコピーの暗号化を強制する設定となります。

デフォルトで暗号化が有効になっている場合、暗号化されていないボリュームを作成することはできません。
もし暗号化しないなどの要件がある場合は留意してください。

左側のツリーの EC2 – ダッシュボード①をクリックします。

ダッシュボードクリック画像

画面右側に表示されるアカウントの属性 – データ保護とセキュリティ②をクリックします。

データ保護とセキュリティクリック画像

EBS 暗号化の管理ボタン③を押します。

管理ボタン押下画像

有効化④にチェックを付け、EBS 暗号化を更新するボタン⑤を押します。

有効化チェックおよびEBS暗号化を更新するボタン押下画像

常に新しい EBS ボリュームを暗号化が有効となっていることを確認します。

常に新しいEBSボリュームを暗号化有効確認画像

これでデフォルト EBS 暗号化設定は完了です。

4. キーペアの作成

EC2 インスタンスへ接続する際、身分証明書としてキーペアを利用します。

Linux インスタンスの場合は SSH 接続で利用し、Windows インスタンスの場合は管理者パスワードを復号化する時に利用します。

今回は SSM Session Manager を利用して接続するためキーペアを使いませんが、EC2 インスタンス作成時には必要となるため事前に作成します。

左側のツリーのネットワーク & セキュリティ – キーペア①をクリックします。

キーペアクリック画像

キーペアを作成ボタン②を押します。

キーペアを作成ボタン押下画像

名前③に任意の名前を入力し、キーペアを作成ボタン④を押します。

名前入力およびキーペアを作成ボタン押下画像

任意の場所にファイルを保存します。

保存したキーペアのファイルは大切に保管してください。
今回は SSM Session Manager を利用して接続するため使いませんが、SSH 接続や管理者パスワードを復号化する際に利用します。

重要

Amazon EC2 ではプライベートキーのコピーが保持されないため、プライベートキーを失った場合、復元することはできません。ただし、プライベートキーを失くしたインスタンスに接続する方法はまだあります。詳細については「プライベートキーを紛失しました。自分のインスタンスに接続するにはどうすればよいですか?」を参照してください。

引用元:Amazon EC2 のキーペアと Amazon EC2 インスタンス – Amazon Elastic Compute Cloud

ファイル保存後、作成したキーペアが表示されていることを確認します。

キーペア確認画像

これでキーペアの作成は完了です。

5. 利用する AMI の確認

インスタンスを起動するために必要な構成要素のひとつとして AMI というものがあります。
AMI は Amazon Machine Image の略で、インスタンスの起動時に使用するオペレーティングシステムとアプリケーションを決定します。

今回は AWS が提供している Amazon Linux 2023(AL2023)を利用します。

その中でもアーキテクチャなどで様々な AMI が存在するため、利用する AMI ID を事前に確認します。

左側のツリーのイメージ – AMI ①をクリックします。

AMIクリック画像

自己所有②をクリックし、パブリックイメージ③を選択します。

パブリックイメージ選択画像

検索ボックス④をクリックし、AMI 名⑤を選択します。
さらに「AMI 名 : 次を含む」⑥を選択します。

検索ボックスクリックおよびAMI名選択画像
AMI名次を含むクリック画像

「al2023-ami-2023」⑦を入力し、Enter を押します。

検索文字入力およびEnter押下画像

検索で出てきた AMI の中から、以下の条件に合致する AMI ID を確認します。

・記事作成時点で AL2023 のカーネルの推奨バージョンとなる 6.18 であるもの ※2026年5月時点
・所有者のエイリアス列に「amazon」が表示されているもの
・アーキテクチャが arm64 であるもの
・パッケージが AMI であるもの

カーネルやアーキテクチャは要件によって読み替えてください。
パッケージについては AMI と Minimal AMI が存在しますが、Minimal AMI では SSM Session Manager 接続で必要となる amazon-ssm-agent が含まれていないため、AMI を選択しています。

AMIID確認画像

AMI ID を確認できたら EC2 の作成に進みます。

6. EC2 の作成

EC2 の作成を行います。

また EC2 の作成はチュートリアルの対象となっており、EC2 を作成することで無料利用枠の 20 USD のクレジットを受け取ることができます。

右上のアカウント部分をクリックし Billing and Cost Management ①をクリックします。

BillingandCostManagementクリック画像

左側のツリーの請求と支払い – クレジット②をクリックします。

クレジットクリック画像

現在のクレジットを確認します。

クレジット確認画像

左上の検索バー③に「EC2」と入力し、出てきた EC2 ④をクリックします。

EC2クリック画像

左側のツリーのインスタンス – インスタンス⑤をクリックします。

インスタンスクリック画像

インスタンスを起動ボタン⑥を押します。

インスタンスを起動ボタン押下画像

その他の AMI を閲覧する⑦をクリックします。

その他のAMIを閲覧するクリック画像

コミュニティ AMI ⑧をクリックします。

コミュニティAMIクリック画像

検索バー⑨に確認した AMI ID を入力し Enter を押します。
出てきた情報の AMI ID ⑩が検索バーに入力した ID と一致することを確認し、選択ボタン⑪を押します。

AMIID検索および選択ボタン押下画像

選択したイメージ ID が表示されていることを確認します。

イメージID確認画像

画面上部の名前⑫に任意の名前を入力します。

名前入力画像

任意のインスタンスタイプ⑬を選択します。

本記事では、無料利用枠の対象となっている t4g.micro を選択しています。

インスタンスタイプ選択画像

キーペア名⑭で作成したキーペアを選択します。

キーペア選択画像

ネットワーク設定の編集ボタン⑮を押します。

編集ボタン押下画像

VPC ⑯では作成した VPC を選択します。
サブネット⑰では作成したパブリックサブネットの内、任意で 1 つのパブリックサブネットを選択します。
パブリック IP の自動割り当て⑱で有効化を選択します。

本記事では、インターネットからアクセス可能なパブリックサブネットとパブリック IP を設定することで、インターネット接続を行います。
インターネットから直接インスタンスに接続させないなど、要件に合わせて変更してください。

VPCとサブネットおよびパブリックIPの自動割り当て選択画像

ファイアウォール(セキュリティグループ)では、既存のセキュリティグループを選択する⑲を選択し、共通のセキュリティグループ⑳で作成したセキュリティグループを選択します。

既存のセキュリティグループを選択するおよび共通のセキュリティグループ選択画像

高度な詳細㉑をクリックします。
IAM インスタンスプロフィール㉒で作成した SSM Session Manager 接続用ロールを選択します。
クレジット仕様㉓をスタンダードに変更します。

必要な時間だけ能力をベースライン以上にバーストさせる必要がある場合などは、クレジット仕様を要件に合わせて変更してください。

高度な詳細設定IAMインスタンスプロフィール選択およびクレジット仕様スタンダード選択画像

画面右側のインスタンスを起動ボタン㉔を押します。

インスタンスを起動ボタン押下画像

すべてのインスタンスを表示ボタン㉕を押します。

すべてのインスタンスを表示ボタン押下画像

インスタンスが作成されていることを確認します。

インスタンス確認画像

インスタンスを更新ボタン㉖を何度か押し、ステータスチェックの表示が「x/x のチェックに合格しました」に変わるまで待ちます。
ステータスチェックの表示が変われば接続できる状態となっています。

インスタンスを更新ボタン押下画像
ステータスチェック確認画像

EC2 の作成を行ったため無料利用枠の 20 USD のクレジットを受け取っているか確認します。

右上のアカウント部分をクリックし Billing and Cost Management ㉗をクリックします。

BillingandCostManagementクリック画像

左側のツリーの請求と支払い – クレジットをクリックし、クレジットが $20 増えていることを確認します。
※クレジットが増えていない場合は、10 分程度経過した後に確認してみてください。

クレジット増加確認画像

これで EC2 の作成は完了です。

7. EC2 への接続

EC2 への接続を行います。

作成した EC2 にチェック①を付け、接続ボタン②を押します。

EC2チェックおよび接続ボタン押下画像

SSM Session Manager を選択③し、接続ボタン④を押します。

SSMSessionManager選択および接続ボタン押下画像

新しいタブが開き OS に接続できることを確認します。

bash や ip a コマンドなどを実行し、割り当てられている IP などから該当の EC2 であることを確認します。

コマンド参考例
sh-5.2$ bash
[xxx-xxxx@ip-xxx-xxx-xxx-xxx bin]$ ip a
[xxx-xxxx@ip-xxx-xxx-xxx-xxx bin]$ hostname
[xxx-xxxx@ip-xxx-xxx-xxx-xxx bin]$ exit
sh-5.2$ exit
など

割り当てられている IP は、インスタンスのネットワーキングタブから確認することができます。
対象の EC2 にチェックを付けネットワーキングをクリックすると、プライベート IPv4 アドレスを確認することができます。

※プライベート IPv4 アドレス参考画像

プライベートIPv4アドレス確認参考画像

終了する際は exit を入力して抜けるとセッションの終了画面が表示されるので、閉じるボタン⑤を押します。

exit入力画面
閉じるボタン押下画像

これで EC2 への接続は完了です。

8. EC2 の停止

EC2 の停止を行います。

EC2 の停止は「インスタンスを停止」で行います。

「インスタンスの終了(削除)」は EC2 の削除となるため十分に注意してください。

対象の EC2 にチェック①を付けます。

インスタンスの状態②をクリックし、インスタンスを停止③をクリックします。

EC2チェックおよびインスタンスを停止クリック画像

内容を確認し、停止ボタン④を押します。

停止ボタン押下画像

インスタンスを更新ボタン⑤を何度か押し、インスタンスの状態⑥の表示が「停止済み」に変わるまで待ちます。

インスタンスを更新ボタン押下画像
インスタンスの状態確認画像

これで EC2 の停止は完了です。

9. EC2 の削除

EC2 の削除を行います。

EC2 の削除は「インスタンスの終了(削除)」で行います。

仮想サーバーが不要となった場合に EC2 の削除を行ってください。
EC2 を削除しない場合は利用リソースに応じたクレジットが発生するため留意してください。

対象の EC2 にチェック①を付けます。

インスタンスの状態②をクリックし、インスタンスを終了(削除)③をクリックします。

EC2チェックおよびインスタンスを終了(削除)クリック画像

内容を確認し、終了(削除)ボタン④を押します。

終了(削除)ボタン押下画像

インスタンスを更新ボタン⑤を何度か押し、インスタンスの状態⑥の表示が「終了済み」に変わるまで待ちます。

インスタンスを更新ボタン押下画像
インスタンスの状態確認画像

これで EC2 の削除は完了です。

インスタンスはしばらくの間削除されずに表示されたままとなるため、ある程度の時間経過後に表示が消えたか確認してください。

3. まとめ

この記事では VPC と EC2 を利用した仮想サーバー作成に関する部分を記載してきました。

仮想サーバーを配置するため VPC でネットワーク空間を作成し、その中に仮想サーバーを作成します。

今回は Amazon Linux 2023(AL2023)の EC2 インスタンスを作成しましたが、Windows Server も作成できるため要件に合わせて適切な環境を構築することが可能です。

EC2 に限った内容ではありませんが、AWS では必要に応じてリソースを柔軟に変更できる点が魅力の 1 つです。
インスタンスタイプの変更では仮想サーバーの停止が必要となりますが、運用していく中でリソースに過不足があれば適宜変更することでコストの最適化を図ることも可能です。

柔軟に仮想サーバーの作成や削除を行い、最適な環境を構築するために活用していきましょう。

IT 応援ブログはあなたの IT ライフを応援します!!

x. 参考

アーキテクチャアイコンのページ
VPC とサブネットの IP アドレス指定 – Amazon Virtual Private Cloud
VPC CIDR ブロック – Amazon Virtual Private Cloud
AWS Systems Manager Session Manager – AWS Systems Manager
Amazon EC2 とは – Amazon Elastic Compute Cloud
Amazon Elastic Block Store とは? – Amazon EBS
What is Amazon Linux 2023? – Amazon Linux 2023