【超初心者向け】AWSの基本的なネットワークを理解しよう

AWSは、避けて通ることはできません。しかし、沢山あるサービス、独特の用語、管理画面の操作など難しそうなものばかりで、とっつきにくいと感じている方も多くいると思います。そんな方々の参考になればと、専用サーバーしか触ったことがない筆者が、AWS上でWebサイトを公開するまでの方法を解説します。

利用するAWSの基本サービス

今回は、AWSの最も基本的なネットワークを理解するために、シンプルにVPCを作成し、その中にEC2インスタンスを立ててWebサーバーとして外部に公開するまでを実践します。まずはVPCとEC2について簡単に説明を見てみましょう。

VPC

VPCとは、Virtual Private Cloudの略です。AWSの公式サイトによると、「論理的に隔離されている定義済みの仮想ネットワーク内で AWS リソースを起動」できるサービスとのこと。

引用元:Amazon VPC とは?
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/what-is-amazon-vpc.html(2023/11/22 確認)

AWS内でユーザーがリソースを専用で使うためのネットワークの範囲であると理解しました。複数のAWSのデータセンター(※AZ)をまたいで設定できるようですし、もちろんVPC間の通信も簡単に設定できるようです。

※AZ(Availability Zones):アベイラビリティゾーンの略。「1つのAWSリージョン内でそれぞれ切り離され、冗長的な電力源、ネットワーク、そして接続機能を備えている1つ以上のデータセンター」のこと。
引用元:リージョンとアベイラビリティーゾーン
https://aws.amazon.com/jp/about-aws/global-infrastructure/regions_az/
(2023/11/22 確認)

EC2

EC2とは、Elastic Compute Cloudの略です。AWSの公式サイトによると、「事実上すべてのワークロードに対応するセキュアでサイズ変更が可能なコンピューティング性能」とのこと。

引用元:「Amazon EC2」https://aws.amazon.com/jp/ec2/(2023/11/22 確認)

なんだかよくわかりませんね。要はAWS上で便利・安全に使えるバーチャルサーバーで、そのサーバーリソースの増減も簡単にできるということのようです。

VPCの基本要素

サブネット

VPC内のIPアドレスの範囲です。ルーティングの方法によって、おおまかに以下の2種類に分けられます。

・パブリックサブネット:インターネットゲートウェイへの接続経路がある。

・プライベートサブネット:インターネットゲートウェイへの接続経路がなく、インターネットと通信するためにはNATデバイスが必要になる。

インターネットへの接続経路がある、パブリックサブネットを今回は使います。

ルートテーブル

VPC利用時の通信経路の情報・決まりごとです。オンプレでいうところのルーティングテーブルと同じと理解しました。

インターネットゲートウェイ

まさにそのまま、VPCからインターネットに接続するための出入り口のことです。

AWSでの設定作業

ここからは実際にAWS上で行う作業を解説します。今回は、AWSサービスコンソールにログインした状態から始め、シングルAZのEC2にApacheをインストールしてWebを公開するまでが作業になります。今回作成するAWSの構成はこのようになります。

全体の大まかな流れは以下となります。

  1. VPCの作成
  2. サブネットの作成
  3. インターネットゲートウェイの設定
  4. ルートテーブルの設定
  5. EC2インスタンスの起動
  6. Elastic IPを紐づける

VPCの作成

VPCのダッシュボード内で「お使いのVPC」項目をみると、初期状態でデフォルトVPCが一つ存在します。これを使って作業を進めることも可能です。しかし初心者向けである本記事では、設定を1つ1つ見ていくために新規で作成します。

初めに、ダッシュボードの 右上の「VPCを作成」をクリックします。

VPCを作成する前に構成全体を大まかに検討・設計しておく必要があります。今回は冒頭に示した通りシンプルな構成なので、以下の手順でVPCを1つ作成します。

「名前タグ-オプション」に任意の名前を入力(今回はmy-vpc-01とします)
「IPV4 CIDR」の欄に192.168.100.0/24 を入力
右下の「VPCを作成」 をクリック

「VPCを作成」をクリック後、ダッシュボードに画面が遷移します。

サブネットの作成

上記のVPC 192.168.100.0/24 の中にパブリックサブネットを作成します。

ダッシュボード左側のメニューにある「サブネット」をクリック

ダッシュボードの右上の「サブネットを作成」をクリック
以下「サブネットを作成」画面に遷移後の作業
「サブネット名」の欄に 任意の名前を入力(今回はpublic-subnetとします)
「IPV4 CIDR」の欄に192.168.100.0/25を入力
右下の「サブネットを作成」をクリック

これでパブリックサブネットができました。

インターネットゲートウェイの設定

次にインターネットゲートウェイを作成します。

ダッシュボード左側のメニューにある「インターネットゲートウェイ」をクリック
ダッシュボードの右上の「インターネットゲートウェイ」をクリック
以下「インターネットゲートウェイの作成」画面に遷移後の作業
名前タグの箇所に任意の名前を入力(今回はmy-internetgatewayとします)
右下の「インターネットゲートウェイを作成」をクリック

「インターネットゲートウェイの作成」をクリック後、ダッシュボードに画面が遷移しますが、どのVPCで使うか(アタッチするか)、設定が必要になります。

ダッシュボード右上の「アクション▲」をクリック
「VPCにアタッチ」にクリック

ルートテーブルの設定

作成したインターネットゲートウェイ用のルートテーブルを作成します。

ダッシュボード左側のメニューにある「ルートテーブル」をクリック
ダッシュボードの右上の「ルートテーブル」をクリック
以下「ルートテーブルを作成」画面に遷移後の作業
任意のものを「名前-オプション」欄に入力(今回はmy-routetable-01とします)
先ほど作成したVPC(今回はmy-vpc-01)を「VPC」欄でプルダウンから選択
右下にある「ルートテーブルを作成」をクリック

「ルートテーブルを作成」をクリック後、作ったルートテーブルの詳細ページに遷移します。ルートテーブルを作成した後はインターネットゲートウェイと紐付ける必要があります。

詳細ページの右下の「ルートの編集」をクリック
「ルートを編集」画面に遷移
インターネットゲートウェイの欄をクリックし、プルダウンから、先ほど作成したインターネットゲートウェイ(今回はmy-internetgateway)を選択
右下の「変更を保存」をクリック

これでルートテーブルとインターネットゲートウェイが紐づきました。

EC2インスタンスの起動

EC2ダッシュボードにて「インスタンスを起動」を押します。

・名前とタグ・・・任意にわかりやすいもの(my-ec2-01としました)

・クイックスタート>AmazonLinux>AmazonLinux 2023 AMI

・アーキテチャ・・・64bit (x64)を選択

・インスタンスタイプ・・・t2micro (無料利用枠の対象)

・キーペア名
→キーペアを作成
→キーペアを入力(任意にわかりやすいもの:my-ec2-01-keyとしました)
→キーペアのタイプ RSA を選択
→プライベートキファイル形式 .pem を選択
「キーペアを作成」を押してクライアントPCに保存します。
※キーペア・・・EC2 インスタンスへのSSH接続時に身分証明として使用するセキュリティ認証情報。 秘密鍵と公開鍵が含まれる。

・ネットワーク設定
VPC・・・作成したもの(my-vpc-01)を選択
サブネット・・・作成した、パブリックサブネットを選択
パブリックIPの自動割り当て・・・無効化

・ファイアウォール(セキュリティグループ)
「セキュリティグループを作成」を選択
 →ssh の接続元を限定(自分のIPを選択)
http/https の接続元を公開(0.0.0.0/0 を選択)

・ストレージを設定
8GiB(デフォルト表示のまま)
「インスタンスを起動」を押して、EC2が起動したことを確認します。

Elastic IPを紐づける

EC2ダッシュボードの左側のメニューから、Elastic IP を選択
ダッシュボード右上の「Elastic IPを割り当てる」をクリック
以下「Elastic IPを割り当てる」画面に遷移後の作業
右下の「割り当て」をクリック

画面がダッシュボードに遷移するので、割り当てられたElastic IPを、作成したEC2インスタンスに関連付けます。

ダッシュボード内で、先ほど割り当てたElastic IP アドレスの行を選択
ダッシュボード右上の「アクション△」をクリック
「Elastic IPアドレスの関連付け」をクリック

「Elastic IPアドレスの関連付け」の画面が出てくるので以下の作業を行います。

プライベートIPアドレスの欄クリックし、プルダウンで、作成したEC2のIDと、EC2自体のIPアドレスを選択
右下の「関連付ける」をクリック

これでEC2への接続準備が終わりました。

次は、Elastic IPをコピーした上で、一旦ログアウトしてTera Termというシミュレーターからつなぎます。なお、現在最新のAmazon Linux2023はopensshの関係上Tera Term5でないとつながりません。Tera Termで接続するEC2のホスト名とユーザ名は以下のとおりです。

ホスト:Elastic IP
ユーザ:ec2-users ←★EC2起動時に必ず用意されるアカウントです。

Tera Termを起動すると、「新しい接続」画面が出てくるので、右下のOKを押すと、「SSH認証」の画面が現れます。その後以下の作業で、SSH認証を行います。

ユーザ名を入力(今回はec2-usersを選択)
「認証方式」内の「RSA/DSA・・・鍵を使う」を選択
「秘密鍵」はEC2インスタンスを起動する際に作成し、PCに保存したものを指定
「OK」をクリック 

「OK」を押すと・・・つながりました!!

sudo su –  でroot にもなれます!

ブラウザでも作ったEC2を確認しようと思います。

Apacheをインストールします。
$ sudo su - 
# dnf -y install httpd
Apacheの自動起動を有効化します。
# systemctl enable httpd
Apacheを起動します。
 systemctl start httpd
Apacheの起動状態を確認します。
# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled)
Active: active (running) since Tue 2023-11-21 23:39:39 UTC; 1min 23s ago
以下略

ブラウザで、Elastic IPを入力すると・・・

無事表示されました!!!

実際にWebサイトとして公開するには、SSL証明書の実装や、ドメインの設定、Webコンテンツのアップロードなどが別途必要ではありますが、それについてはそれぞれ詳しいサイトを参照してみてください。