Blogical

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

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

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

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

だいたい次のような内容で記事を書いていく予定です。

  • 第1回(今回):VPC、サブネットの作成
  • 第2回:EC2インスタンスAmazon Linux)の作成、接続
  • 第3回:RDSの作成(Multi-AZ配置)
  • 第4回:ELBの作成
  • 第5回:スケーラブルな構築の作成

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

f:id:logicalarts:20190925125957p:plain

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

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

f:id:logicalarts:20190925104735p:plain

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

VPCの作成

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

はじめにAWSマネジメントコンソール画面に行きます。リージョンは東京に設定します。リージョンとは領域といった意味合いで、VPCは指定したリージョン内で作られます。

f:id:logicalarts:20190919174907p:plain

「サービスを検索する」で「VPC」を検索します。遷移した画面で左側の「VPC」を選択して「VPCの作成」ボタンを押下します。

f:id:logicalarts:20190919175005p:plain

すると次の画面になります。

f:id:logicalarts:20190919175010p:plain

ここでは名前タグに「sample」、IPv4 CIDR ブロックに「10.0.0.0/16」と入力し、「作成」ボタンを押下します。うまくいきましたらサブネットの作成に移ります。

サブネットの作成

サブネットとは

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

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

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

作成

それではサブネットを作成していきましょう。左側の「サブネット」を選択し、「サブネットの作成」ボタンを押下します。

f:id:logicalarts:20190919174950p:plain

今度は次の画面ですね。

f:id:logicalarts:20190919174955p:plain

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

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

f:id:logicalarts:20190919175000p:plain

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

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

左側の「インターネットゲートウェイ」を選択し、「インターネットゲートウェイの作成」ボタンをクリックします。

f:id:logicalarts:20190920093219p:plain

名前タグに「sample」と入力し、「作成」ボタンを押下します。

f:id:logicalarts:20190920093223p:plain

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

f:id:logicalarts:20190920093227p:plain

上で作成した「sample」という名前を付けたVPCを選択し、「アタッチ」ボタンを押下します。

f:id:logicalarts:20190920093231p:plain

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

というわけで、次にルートテーブルを作成しましょう。

ルートテーブルの作成

例のごとく左側の「ルートテーブル」を選択し、「ルートテーブル作成」ボタンを押下します。

f:id:logicalarts:20190920101250p:plain

名前タグに「sample-public」と入力し、VPCは「sample」と名前を付けたものを選択します。最後に「作成ボタン」を押下します。

f:id:logicalarts:20190920093250p:plain

今作ったルートテーブルを選択し、「ルートの編集」ボタンをクリックします。

f:id:logicalarts:20190920101255p:plain

画面が遷移したら「ルートの追加」ボタンを押下し、送信先に「0.0.0.0/0」と入力します。ターゲットは「Internet Gateway」を選択し、上で作成したインターネットゲートウェイ(「sample」という名前が付いたもの)を選びます。

f:id:logicalarts:20190920093237p:plain

次に、作成したルートテーブルをパブリックにしたいサブネットに関連付けます。もう一度同じルートテーブルを選択し、「サブネットの関連付けの編集」ボタンを押下します。

f:id:logicalarts:20190920100513p:plain

「sample-public」と名前の付いたサブネットを選択し、「保存」ボタンを押下します。

f:id:logicalarts:20190920093241p:plain

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

おわりに

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

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

参考サイト