Blogical

AWS/Salesforceを中心に様々な情報を配信していきます(/・ω・)/

【AWS入門】スケーラブルな構築をしてみよう(1)

こんにちは、ロジカルアーツの井川です。

この連載記事は、2か月程前に参加したAWSベーシックトレーニンセミナーのハンズオンの内容をもとにして、自分自身の理解を深めることを目的として書いています。丁寧に書いていくつもりなので、AWSを始めたばかりでよく分からない方の参考になれば幸いです。

だいたい次のような内容で記事を書いていく予定です。最後の補足記事は、この連載記事で出てくるAWSに関する用語をまとめたものになります。辞書代わりにお使いください。

最終目標はスケーラブルな環境を構築をすることです。構成は以下の図のようになります。

f:id:logicalarts:20191226164515p:plain

この構成はそれほど難しくないスケーラブルな構成ですが、初心者からするとなかなか大変(私も苦労しました)で、いい題材になるかなと思ったので選びました。いきなりで何のことやらとお思いの方もおられるかもしれませんが、この構成を作ることを通してAWSの理解を深めていこうというつもりなので、今の時点では何もわからなくても大丈夫です。

また、いきなりこの構成を作るのは大変ですから、今回はサーバを置くためのシンプルなネットワーク環境を作ってみたいと思います。

f:id:logicalarts:20190925104735p:plain

それでは、始めていきましょう!

VPCの作成

まずはVPCというものを作成しましょう。VPCとはVirtual Private Cloudの略で、AWSクラウド内のプライベートな(自分専用の)ネットワーク環境のことです。

はじめにAWSマネジメントコンソール画面にサインインします。リージョンは東京に設定します。リージョンとは領域といった意味合いで、VPCは指定したリージョン内で作られます。設定方法は、下の画像を参照してください。

同じくAWSマネジメントコンソール画面から、「サービスを検索する」VPCを検索します。表示されたVPCをクリックして、VPC管理ページに移動します。

f:id:logicalarts:20190919174907p:plain

左側のVPCを選択してVPCの作成」をクリックします。

f:id:logicalarts:20190919175005p:plain

「名前タグ」「sample」IPv4 CIDR ブロック」「10.0.0.0/16」と入力し、「作成」をクリックします。

f:id:logicalarts:20190919175010p:plain

次にサブネットの作成に移ります。

サブネットの作成

サブネットとは

サブネットとは、簡単に言うとVPC内の部分環境です。直感的には、冒頭の構成図にあるようにVPC全体の一部分のことです。図ではアベイラビリティゾーン(Availability Zone)というものに囲まれていますが、サブネットは必ず一つのアベイラビリティゾーンに含まれ、複数のアベイラビリティゾーンにわたって作成することはできません。アベイラビリティゾーンとは、ひとつ以上のデータセンターで構成される領域のことを指します。上でリージョンという言葉が出てきましたが、リージョンは複数のアベイラビリティゾーンで構成されています。

プライベートサブネットとパブリックサブネット

サブネットにはプライベートサブネットと呼ばれるものと、パブリックサブネットと呼ばれるものがあります。サブネットには関連付けられたルートテーブルというものがあり、そのテーブルのルートでインターネットゲートウェイ(インターネットとの通信を可能にするもの)に向かっているものがあれば、パブリックサブネットと言います。逆に言えば、どのルートもインターネットゲートウェイに向かっていないものがプライベートサブネットとなります。

作成

それではサブネットを作成していきましょう。VPC管理ページで左側の「サブネット」を選択し、「サブネットの作成」をクリックします。

f:id:logicalarts:20190919174950p:plain

「名前タグ」「sample-public」と入力します。VPCは先程作成したものを選択します。プルダウンメニューをクリックし、「sample」という名前タグをつけたVPCを選択します。アベイラビリティゾーン」「ap-northeast-1a」を選択し、IPv4 CIDR ブロック」「10.0.1.0/24」と入力して「作成」をクリックします。

f:id:logicalarts:20190919174955p:plain

もうひとつサブネットを作りましょう。変更点は、「名前タグ」「sample-private」となることと、IPv4 CIDR ブロック」「10.0.2.0/24」となることだけです。

f:id:logicalarts:20190919175000p:plain

上でも書きましたが、サブネットがプライベートかパブリックかどうかは、それらに関連付けられたルートテーブルのルートによって決まるものでした。この時点では、上で作成したサブネットはメインルートテーブルというものに自動的に関連付けられているのですが、デフォルトではこのテーブルのルートにインターネットゲートウェイに向いているものがないので、両方ともプライベートサブネットになります。 これから「sample-public」と名付けたサブネットをパブリックにしていきます。まずはインターネットゲートウェイというものを、サブネットを作成したVPCにアタッチします。今回は新しくインターネットゲートウェイを作りましょう。

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

VPC管理ページで、左側の「インターネットゲートウェイを選択し、「インターネットゲートウェイの作成」をクリックします。

f:id:logicalarts:20190920093219p:plain

「名前タグ」「sample」と入力し、「作成」をクリックします。

f:id:logicalarts:20190920093223p:plain

作成したインターネットゲートウェイ(sample)を選択し、「アクション」プルダウンメニューからVPCにアタッチ」をクリックします。

f:id:logicalarts:20190920093227p:plain

VPCは、「sample」と名前を付けたVPCを選択し、「アタッチ」をクリックします。

f:id:logicalarts:20190920093231p:plain

これでVPCにインターネットゲートウェイがアタッチされました。

次にルートテーブルを作成していきましょう。

ルートテーブルの作成

例のごとくVPC管理ページの左側の「ルートテーブル」を選択し、「ルートテーブルの作成」をクリックします。

f:id:logicalarts:20190920101250p:plain

「名前タグ」「sample-public」と入力し、VPC「sample」と名前を付けたものを選択します。最後に「作成」をクリックします。

f:id:logicalarts:20190920093250p:plain

今作ったルートテーブル(「Name」「sample-public」になっているもの)を選択し、「ルート」を選択した状態で、「ルートの編集」をクリックします。

f:id:logicalarts:20190920101255p:plain

「ルートの追加」をクリックし、送信先「0.0.0.0/0」と入力します。「ターゲット」「Internet Gatewayをクリックし、上で作成したインターネットゲートウェイ(「sample」と名前が付いたもの)を選びます。

f:id:logicalarts:20190920093237p:plain

次に、作成したルートテーブルをパブリックにしたいサブネットに関連付けます。もう一度同じルートテーブル(sample-public)を選択し、「サブネットの関連付け」タブを選択した状態で、「サブネットの関連付けの編集」をクリックします。

f:id:logicalarts:20190920100513p:plain

「sample-public」と名前の付いたサブネットを選択し、「保存」をクリックします。

f:id:logicalarts:20190920093241p:plain

これでパブリックサブネットになりました!

おわりに

これで、今回の目標としたネットワーク環境ができましたが、どうでしたでしょうか。私としては、記事を書きはじめて理解が足りないてないことを思い知らされました。それほど難しいことはしていませんが、色々調べなおしたりして結構大変でした。そのぶん勉強になりましたが、、、

次回はEC2インスタンスの話をメインに記事を書くつもりです。

参考サイト