AWS

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

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

何をしたかよくわからなかった。。な方へ向けて、適度に理解しながらインフラ構築できるを目指してまとめてみました。

今更EC2感はありますが、新サービスも既存技術の組み合わせで成り立ってるものがあるため、今回構築するEC2周りで扱う知識は決して無駄にはならないと思います。

スポンサーリンク

前提

手順が多いため、2つの記事に分けました。続きはこちらの記事になります。

また、全く同じ環境をTerraformで作成してみたのがこちらの記事になります。

構築するインフラ

ロードバランサーで冗長化しつつ、EC2を2台、Webサーバとして作成します。

またセキュリティーグループで自分のIPアドレス以外からのアクセスはできないように制限します。

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

AWS用語説明

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

完全自分の主観ですが、現実世界でのイメージになります。

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

構築手順の流れ

AWSコンソールでは、あるものを作成するときに必要な別の設定を自動で用意してくれます。

とても便利なのですが、デメリットとして自分で手を動かしていない分、全体の流れを理解しづらくなります。


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

また、デフォルトでVPCとそれに紐づくリソース(サブネットなど)が存在しますが、消さずに進めていきます。

自分が作成したものを2つのうちから選択するという流れのほうが理解しやすいと思います。

構築手順

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

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しか許可しないようにします。

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

なお、マイIPに関しては固定IPを使用していない限り、誰かとかぶる可能性はあります

サーバ用セキュリティグループ作成

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

インバウンドルール

2つ作成します。

【サーバSSH接続用】
[ タイプ ] に SSH、[ ソース ] に マイIP を選択します。自分の(アウトバウンドの)IPしか許可しないようにします。


【ロードバランサーHTTP接続用】
[ タイプ ] に HTTP、[ ソース ] に [ カスタム ] → [ セキュリティグループ ] → ロードバランサー用に作成した test-sg-lb を選択します。

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


最終的に、以下のようになっていればOKです。

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

まとめと次回予告

今回は、以上になります。

現実世界でのイメージで考えると、国を興し、都道府県を決めて、港を作り、道路(経路案内)標識を立てて外と貿易できるようにしました。

門番は作成のみでしたが次回ちゃんと働いてもらいます。


それでは、お疲れさまでした。

次は最後まで突っ走りマス!
(続きはこちらの記事になります。)

関連書籍

更新履歴

  • 2021.08.16 全面的に文章、レイアウトを改善