aws

初心者向け入門 理解しながら構築してみるAWSインフラ(ALB 〜 EC2)その1

公式マニュアルを(読むのが一番なんですが)最初から熟読するのはハードル高いし、誰かのわかりやすいブログみながら、ぽちぽちぽちーって作ったらいつの間にかできてて何をしたかよくわからなかったー。

な人向けに、適度に理解しながらインフラ構築できるを目指してまとめてみました。

今更EC2感はありますが、新サービスも既存技術の組み合わせで成り立ってるのがあるため今回構築するEC2周りで扱う技術が新サービス習得にも役立つと思います。

スポンサーリンク

構築手順

ゴール

EC2 2台をWebサーバとしてアクセス制限しつつ構築します。

なお構築手順が多いため2回に分けて実施します。(2回目はこちらの記事になります)

AWSインフラ構成図(ALB 〜 EC2)

用語説明

入門段階ではAWSの用語を具体的なモノでイメージできたほうが把握しやすいと思います。

以下、自分の主観で現実世界でのイメージを記載しました。

用語概要現実世界
VPC大きなネットワーク範囲
サブネット小さなネットワーク範囲都道府県
EC2サーバ建物(e.g.ビル)
ターゲットグループサーバ群ビル群
ルートテーブル通信データの向き先の設定道路(経路案内)標識
インターネット
ゲートウェイ
内部NW(VPC)と外部NW(インターネット)
を出入りするゲート
海外につながる港
セキュリティグループ通信データの制限の設定様々な箇所に配備する門番
ロードバランサー通信データの負荷分散装置複数車線の道路入り口

前提

AWSコンソールでは、あるものを作成するときに必要な別の設定を自動で用意してくれるのですが自分で手を動かしていない分、全体の流れを理解しづらくなります。

そのため今回は必要なパーツを自分であらかじめ順番に作成していく手法をとります。

またデフォルトでVPCとそれに紐づくリソース(サブネットなど)が存在しますが、消さずに進めていきます。自分が作成したものを選択するほうが理解しやすいので。

構築手順

では実際に作っていきたいと思います。

VPC – 国

VPC作成

まず 10.1.0.0/16 という範囲で国の領土を決めます。

AWSコンソールにログイン後、 画面上部の [ サービス ] → [ VPC ] で検索 → 左ペインの [ VPC ] → [ VPCの作成 ] で以下を入力します。

項目名入力値
名前タグtest-vpc
IPv4 CIDR10.1.0.0/16
IPv6 CIDRなし
テナンシーデフォルト

サブネット – 都道府県

サブネット作成

左ペインの [ サブネット ] → [ サブネットの作成 ] で以下を入力します。

今回大きく東西に分けるイメージで2つの都を作成します。
アベイラビリティーゾーン(AZ)は 指定なし だと同じAZになる場合があるので、自分で入力しましょう。

【東の都作成】

項目名入力値
名前タグtest-sub-east
VPCtest-vpc と名前のついたものを選択
アベイラビリティーゾーンap-northeast-1a
IPv4 CIDR ブロック10.1.1.0/24

【西の都作成】

項目名入力値
名前タグtest-sub-west
VPCtest-vpc と名前のついたものを選択
アベイラビリティーゾーンap-northeast-1c
IPv4 CIDR ブロック10.1.2.0/24

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

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

海外(インターネット)につながる港を作ります。

左ペインの [ インターネットゲートウェイ ] → [ インターネットゲートウェイの作成 ] で以下を入力します。

項目名入力値
名前タグtest-gw
インターネットゲートウェイアタッチ

このままではどこにも所属していない港のままなので、国に所属させます。

作成後、test-gwをクリック → [ アクション ] → [ VPCにアタッチ ] をクリックします。

AWSマネジメントコンソールのインターネットゲートウェイ設定画面


次の画面で test-vpc を選択し [ インターネットゲートウェイのアタッチ ] をします。

項目名入力値
使用可能な VPCtest-vpc

ルートテーブル – 道路(経路案内)標識

ルートテーブル作成

左ペインの [ ルートテーブル ] → [ ルートテーブルの作成 ] で以下を入力します。

項目名入力値
名前タグtest-route
VPCtest-vpc と名前のついたものを選択
ルートテーブル編集

作成したtest-routeにチェックを入れ、[ アクション ] → [ ルートの編集 ] で以下を追加します。

項目名入力値
送信先0.0.0.0/0
ターゲットInternetGateway → test-gw と名前のついたものを選択
AWSコンソールのルート設定画面
ルートテーブルアタッチ

このままではどこにも設置されていない標識なので都に置きます。

作成したtest-routeにチェックを入れ、[ アクション ] → [ サブネット関連付けの編集 ] で画像のように test-sub-east と test-sub-west を選択します。

AWSマネジメントコンソールのルート設定画面

セキュリティグループ – 門番

ノーガードのまま港から外敵に侵入を許すのはまずいので配備する門番を作成します。

左ペインの [ セキュリティグループ ] → [ セキュリティグループを作成 ] で以下の2つを作成します。

セキュリティグループ作成 ロードバランサー用

【基本的な詳細】

項目名入力値
セキュリティグループ名test-sg-lb
説明わかりやすい説明を(日本語は使用不可)
VPCtest-vpc

【インバウンドルール】
タイプにHTTP、ソースには マイIP を選択し、自分の(アウトバウンドの)IPしか許可しないようにします。
※マイIPに関しては固定IPを使用していない限り誰かとかぶる可能性はあります。

AWSマネジメントコンソールのインバウンドルール設定画面
セキュリティグループ作成 サーバ用

【基本的な詳細】

項目名入力値
セキュリティグループ名test-sg-sever
説明わかりやすい説明を(日本語は使用不可)
VPCtest-vpc

【インバウンドルール】
サーバ接続用にタイプにSSH、ソースには マイIP を選択し、自分の(アウトバウンドの)IPしか許可しないようにします。
更にタイプにHTTP、ソースには [ カスタム ] → [ セキュリティグループ ] → ロードバランサー用に作成した test-sg-lb を選択します。

これによりロードバランサー経由でしかHTTPアクセスできなくなり、よりセキュアになります。

AWSマネジメントコンソールのインバウンドルール設定画面

まとめと次回予告

今回は国を興し、都道府県を決めて、港を作り、道路(経路案内)標識を立てて外と貿易できるようにしました。門番は作成のみでしたが次回働いてもらいます。

次回は最後まで突っ走りマス!