Toshiが AWS 初心者向けハンズオンをやってみました ~ Network編#1 AWS上にセキュアなプライベートネットワーク空間を作成する

Hands-on

フェイス・ソリューション・テクノロジーズ株式会社 IS本部オペレーションサービスユニットのToshiです。今回はAWS Hands-on for Beginnersで勉強したことについて書いていきます。

はじめに

以前VPCについて記事をあげましたが、いろいろ勉強不足の点もあると思ったのでこちらで勉強しなおしてみました。内容としましてはAWS におけるAmazon VPCを中心に講義を進められておりました。
この講義で勉強したことを大まかに記事にしていこうと思います。

Amazon VPC

VPCとは自分たちで設備や環境を用意するのではなく、専門のクラウド事業者などにそれらを用意してもらいデータセンター内から自分たち専用の区画を借り受けて運用する方式のことと以前の記事で書きました。
Amazon VPCで作成したネットワーク空間は外部から完全に切り離された空間なのでとてもセキュリティ性の高いネットワーク空間になっています。この空間の中でAWS EC2 やAmazon RDSなどのAWSのリソースを利用することができます。
こちらの講義では実際に自分たちでVPCを作成してみるものとなっておりました。
当記事ではどのようにVPCを作成していったかを書いていきます。

VPCを作成

今回の記事の根幹であるVPCを作成していきます。先ほども書いた通りデータセンター内から借り受けた自分たち専用の区画であり、セキュリティ性の高いネットワーク空間です。

1 まず初めにAWSアカウントでログインし左上の検索窓でvpcと検索しVPCをクリックします。

2 ダッシュボードへ遷移するのでそのあと左ペインのお使いのVPCをクリックすると現在どんなVPCを利用しているのかが見れます。画面右上のVPCを作成をクリックします。

3 VPCの設定をしていきます。作成するリソースはVPCのみにチェックをつけ、名前に関しては私はhandsonと付けましたがなんでもいいです。CIDR ブロックは手動入力にチェックをつけ、IPv4 CIDRを10.0.0.0/16と設定します。これにより10.0.0.0~10.0.255.255の領域のVPCを作成できます。
これらの設定をしたら一番下のVPCを作成ボタンをクリックすることでVPCを作成できます。

4 VPCを作成し、お使いのVPCへ戻ると先ほど作ったVPCを確認することができます。

サブネットを作成

次にサブネットを作成していきます。サブネットはVPC内の分割された小さなネットワークのことです。ここにAWSのリソースを配置して運用していきます。今回はサブネットを4つ作ります。

1 現画面、左ペインのサブネットをクリックし、右上のサブネットを作成をクリックします。

2 VPC IDは先ほど作ったVPCを選択し、サブネット名はhandson public subnet aとつけAZはap-northeast-1aを選択、CIDR ブロックは10.0.1.0/24と設定します。これで10.0.1.0~10.0.1.255の範囲にサブネットを作成できます。

3 先ほどと同じような流れで次のように残り3つのサブネットを設定していきます。
先ほどのページの下部にある新しいサブネットを追加というボタンをクリックすると楽です。
同時に4つまでサブネットを作成できます。

サブネット名: handson public subnet c
アベイラリティゾーン: ap-northeast-1c
CIDRブロック: 10.0.2.0/24

サブネット名: handson private subnet a
アベイラリティゾーン: ap-northeast-1a
CIDRブロック: 10.0.11.0/24

サブネット名: handson private subnet c
アベイラリティゾーン: ap-northeast-1c
CIDRブロック: 10.0.12.0/24

サブネットにはVPCの外と通信の行き来ができるパブリックサブネットとインターネットには接続できず、外からアクセスのできないプライベートサブネットがあります。
それぞれのサブネット名にprivate subnet、public subnetとありますが、この時点ではまだこのサブネットに種類の違いはありません。

インターネットゲートウェイ(IGW)の作成

Amazon VPCのネットワーク空間は外部から完全に切り離された状態なので、先ほど作ったVPCでは外のインターネットへ出ることもインターネットからVPCへ入ることもできません。VPCとインターネットをつなぎたい場合VPCとインターネットとの出入口が必要になります。この出入口となるのがインターネットゲートウェイ(IGW)です。

1 左ペインのインターネットデートウェイをクリックしインターネットゲートウェイの作成をクリック

2 インターネットゲートウェイの作成に関しては名前を入力し、インターネットゲートウェイの作成ボタンを押すだけです。私はhandson-igwと付けました

3 IGWを作成した後は先ほど作ったVPCにアタッチをしてあげます。handson-igwのチェックボックスにチェックをいれて右上のアクションの▼のリストを表示させVPCにアタッチをクリックします。

4 先ほど作ったVPCを選択し、インターネットゲートウェイのアタッチをクリックしたらOKです。

ルートテーブルの作成

Amazon VPCとインターネットとの出入口が確保できたとしてもVPC内に作成しているサブネットは現段階ではプライベートサブネットの状態、つまりデフォルトの状態ではVPC内でしか通信ができない状態になっているためVPCの外と通信ができるようにするためにインターネットゲートウェイとサブネットとのルーティングをしなければなりません。このルーティングに関して設定が書かれたテーブルのことをルートテーブルといいます。

1 左ペインのルートテーブルをクリックから右上のルートテーブルを作成をクリック

2 名前に関しては例によって何でも構いません。私はhandson public route table という名前を付けました。こちらはパブリックサブネットのルートテーブルとして使用します。VPCに関しては最初に作ったものを選択し、一番下のルートテーブルを作成をクリックします。

3 ルートテーブルを作成したら左ペインのルートテーブルをクリックし、次に作成したルートテーブル表示されているところのチェックボックスにチェックを入れると画面下にいろいろなタブが出てきます。この中のルートを選択し、ルートを編集をクリックします。

4 次にルートを追加をクリックし、送信先に0.0.0.0/0と入力し、ターゲットはテキストボックスをクリックすると候補がいろいろと出てくるのでインターネットゲートウェイを選択します。そうするとその中での候補がまたでてくるので選択し、変更を保存します。ルーティングはルートテーブル内に定義された最も具体的なルートが優先されます。例えば10.0.0.10というトラフィックを受信した場合は作成したVPCの領域である10.0.0.0~10.0.255.255の範囲内に収まっているのでVPC内、つまりローカルに発信されるという具合です。

5 パブリックサブネットのルートテーブルはこれで完成ですが関連付けをしないと動作しません。ルートテーブルの選択画面に行き、チェックをつけ、サブネットの関連付けタブを選択し、サブネットの関連付けを編集をクリックします。(下3つの画像は作成中のスクリーンショットを取り忘れたので代わりの画像になってます。)

6 あとは関連付けたいhandson public subnet a とhandson public subnet cにチェックを入れ、関連付けを保存をクリックすればパブリックサブネットのルーティングは終了です。

ちなみにサブネットにはデフォルトでメインルートテーブルが作成され、付与されており、残りのプライベートサブネットはこの時点では特に設定しなくても問題はないのですがサブネットの関連付けを行っておくとこの後の作業がやりやすくなります。自動で作成されたメインルートテーブルは名前がついてないので下スクショの赤で囲っているところをクリックすることで名前を変えることができます。
私はhandson private route tableとしました。

NATゲートウェイの作成

プライベートサブネットはインターネットと接続できないと先に書きましたがソフトウェアのアップデートなどでどうしてもインターネットにつなぎたいときに使用するのがNATゲートウェイです。NATゲートウェイは、サブネットからインターネットへ接続することはできてもインターネットからサブネットへつなげることはできないようにすることができます。

1 例のごとく左ペインにあるNATゲートウェイをクリックし右上のNATゲートウェイを作成をクリックします。その後名前を入力し、サブネットはhandson public subnet c を選んでおります。接続タイプはインターネットとの接続を意識してパブリックに入れます。グローバルIPに変換するためにパブリックIPをNATゲートウェイは持っている必要があるためElastic IPを割り当てをクリックしてグローバルIPを割り当てます。そのあとNATゲートウェイを作成をクリック。

2 NATゲートウェイが作成出来たらプライベートサブネットからNATゲートウェイと通信できるようにルートテーブルを追加します。左ペインのルートテーブルからメインルートテーブル(私の場合はhandson private route table)を選び、下のルートタブ、ルートを編集をクリック。

3 ルートを追加をクリックし、送信先に0.0.0.0/0と入力し、ターゲットはNATゲートウェイを選択し、変更を保存をクリックします。

エンドポイントの作成

AWSのすべてのサービスがVPC内におけるわけではなく、そういったサービスにS3やDynamoDBなどがあげられます。VPCからインターネット回線を介してそういったサービスを使用するのはセキュリティ的に不安が残るため、AWSのVPC外サービスとVPCを直結できるものがエンドポイントです。
エンドポイントにはインターフェース型とゲートウェイ型があります。

インターフェース型

1 インターフェース型の事前の準備としてまずVPCのページからhandsonを選択し、右上のアクションからDNSホスト名を編集をクリック。

2 DNSホスト名の有効化にチェックを入れて変更を保存します。

3 VPCのページに戻り、左ペインの下のほうのセキュリティグループをクリック、そのまま右上のセキュリティグループを作成をクリックします。遷移した画面でセキュリティグループ名、説明にssmと入力、VPCを選択します。その後、下のインバウンドルールでHTTPSを選択、IPアドレスとしてVPCの10.0.0.0/16を入力しセキュリティグループを作成をクリック。

4 VPCのページ左ペインのエンドポイントをクリックし、右上のエンドポイントの作成をクリックします。エンドポイントの名前は自由につけてサービスカテゴリはAWSのサービスを選択します。

5 利用したいサービスとエンドポイントを作成したいところのVPC、サブネットを選択し、サブネットのセキュリティグループのところは先ほど作成したものを選択し、エンドポイントを作成します。

ゲートウェイ型

1 まずエンドポイントの作成をクリックします。そのあとはエンドポイントの名前は自由につけてサービスカテゴリはAWSのサービスを選択するところは同じです。

2 利用したいサービスとエンドポイントを作成したいところのVPCとこちらはルートテーブルを選択し、エンドポイントを作成します。

まとめ

以下AWS Hands-on for Beginnersで学んだことの大まかな流れとなっています。
AWSアカウントについてはあらかじめ知っている前提となっており、こちらのHands-onではかなり簡素な説明になっていたのでハンズオンはじめの一歩:AWSアカウントの作り方&IAM 基本のキで勉強することをおすすめします。

①VPCの作成
②サブネットの作成
③インターネットゲートウェイの作成
④ルートテーブルの作成からの設定方法
⑤NATゲートウェイの作成、設定
⑥エンドポイントの作成、設定

ちなみに今回の記事に関しましてNATゲートウェイなどいくつか有料のサービスを用いているので使わないサービスについては削除することをおすすめします。

プロフィール
この記事を書いた人
Toshi

AWS初心者のToshiです。
こちらのIT業界に来るまでは電気工事の仕事をしておりました。
いろいろと粗末なところもあると思いますがよろしくお願いいたします。

Toshiをフォローする
フェイスでは一緒に働く仲間を募集しています

フェイス・ソリューション・テクノロジーズ株式会社では、一緒に働いてくれる仲間を募集しています。
いろいろな案件があるので、いろいろなことに挑戦できる会社です。
「面白いこと」に積極的なので、あなたの「面白そうなことだからやってみたい」を形にできるチャンスがあります!

Hands-on
フェイススタッフブログ

コメント

タイトルとURLをコピーしました