はじめてAWSをさわる方が、公式ドキュメントを読み解きながらインフラ構築しようとすると、かなり難しく感じると思います。
一方、AWSマネジメントコンソールがわかりやすく構成されているため(特にドキュメントを読まずに)画面の案内に従ってポチポチするだけで構築できたりもします。ただ簡単にできてしまう分、自分が何をやっていたかイマイチわからなかった、というデメリットも発生してくると思います。
本記事ではなるべくわかりやすく、適度に理解しながらインフラ構築できるようにまとめてみました。
今更EC2感はありますが、新サービスも既存技術の組み合わせで成り立ってるものがあるため、今回扱う知識は決して無駄にはならないと思います。
前提
手順が多いため、2つの記事に分けました。続きはこちらの記事になります。
また、全く同じ環境をTerraformで作成してみたのがこちらの記事になります。
構築するインフラ
ロードバランサーで冗長化しつつ、EC2を2台、Webサーバとして作成します。
またセキュリティーグループで自分のIPアドレス以外からのアクセスはできないように制限します。
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 CIDR | 10.1.0.0/16 |
IPv6 CIDR | なし |
テナンシー | デフォルト |
サブネット – 都道府県
サブネット作成
左ペインの [ サブネット ] → [ サブネットの作成 ] で以下を入力します。
今回大きく東西に分けるイメージで2つの都を作成します。
アベイラビリティーゾーン(AZ)は 指定なし だと同じAZになる場合があるので、自分で入力しましょう。
東の都作成
項目名 | 入力値 |
---|---|
名前タグ | test-sub-east |
VPC | test-vpc と名前のついたものを選択 |
アベイラビリティーゾーン | ap-northeast-1a |
IPv4 CIDR ブロック | 10.1.1.0/24 |
西の都作成
項目名 | 入力値 |
---|---|
名前タグ | test-sub-west |
VPC | test-vpc と名前のついたものを選択 |
アベイラビリティーゾーン | ap-northeast-1c |
IPv4 CIDR ブロック | 10.1.2.0/24 |
インターネットゲートウェイ – 港
インターネットゲートウェイ作成
海外(インターネット)につながる港を作ります。
左ペインの [ インターネットゲートウェイ ] → [ インターネットゲートウェイの作成 ] で以下を入力します。
項目名 | 入力値 |
---|---|
名前タグ | test-gw |
インターネットゲートウェイアタッチ
この時点では、どこの国にも所属していない港なので国に所属させます。
作成後、test-gw をクリック → [ アクション ] → [ VPCにアタッチ ] をクリックします。
次の画面で test-vpc を選択し [ インターネットゲートウェイのアタッチ ] をクリックします。
項目名 | 入力値 |
---|---|
使用可能な VPC | test-vpc |
ルートテーブル – 道路(経路案内)標識
ルートテーブル作成
左ペインの [ ルートテーブル ] → [ ルートテーブルの作成 ] で以下を入力します。
項目名 | 入力値 |
---|---|
名前タグ | test-route |
VPC | test-vpc と名前のついたものを選択 |
ルートテーブル編集
作成した test-route にチェック → [ アクション ] → [ ルートの編集 ] で以下を追加します。
項目名 | 入力値 |
---|---|
送信先 | 0.0.0.0/0 |
ターゲット | InternetGateway → test-gw と名前のついたものを選択 |
ルートテーブルアタッチ
この時点では、どこにも設置されていない標識なので都に設置します。
作成した test-route にチェック → [ アクション ] → [ サブネット関連付けの編集 ] で画像のように test-sub-east と test-sub-west を選択します。
セキュリティグループ – 門番
ノーガードのまま港から外敵に侵入を許すのはまずいので門番を作成します。
左ペインの [ セキュリティグループ ] → [ セキュリティグループを作成 ] で、ロードバランサー用とサーバ用の2つを作成します。
ロードバランサー用セキュリティグループ作成
基本的な詳細
項目名 | 入力値 |
---|---|
セキュリティグループ名 | test-sg-lb |
説明 | わかりやすい説明を(日本語は使用不可) |
VPC | test-vpc |
インバウンドルール
タイプにHTTP、ソースには マイIP を選択し、自分の(アウトバウンドの)IPしか許可しないようにします。
なお、マイIPに関しては固定IPを使用していない限り、誰かとかぶる可能性はあります。
サーバ用セキュリティグループ作成
基本的な詳細
項目名 | 入力値 |
---|---|
セキュリティグループ名 | test-sg-sever |
説明 | わかりやすい説明を(日本語は使用不可) |
VPC | test-vpc |
インバウンドルール
2つ作成します。
サーバSSH接続用
[ タイプ ] に SSH、[ ソース ] に マイIP を選択します。自分の(アウトバウンドの)IPしか許可しないようにします。
ロードバランサーHTTP接続用
[ タイプ ] に HTTP、[ ソース ] に [ カスタム ] → [ セキュリティグループ ] → ロードバランサー用に作成した test-sg-lb を選択します。
これにより、ロードバランサー経由でしかHTTPアクセスできなくなり、よりセキュアになります。
最終的に、以下のようになっていればOKです。
まとめと次回予告
今回は、以上になります。
現実世界でのイメージで考えると、国を興し、都道府県を決めて、港を作り、道路(経路案内)標識を立てて外と貿易できるようにしました。
門番は作成のみでしたが次回ちゃんと働いてもらいます。
それでは、お疲れさまでした。次は最後まで突っ走りマス!(続きはこちらの記事になります。)