【AWS】EC2でWebサーバの構築 – VPC作成 -【Nginx】
2019.11.08
みなさん、こんにちは。むつたくです。
朝晩はすっかり冷え込み、肌寒くなってきました。
それでも自転車通勤には暑いので、会社に到着早々扇風機を起動する毎日が続いてます。
さて今回は、フロントエンドから離れ、AWSについて紹介していきます。
VPCを作成し、そのVPCを使ってEC2を構築、そのインスタンスを使ってWebサーバを立てると言った手順を紹介していきます。今回はVPCの作成です。
今更感は否めませんが、初めてAWSを触る方々の足掛かりになれればと思います。
やること
- AWS について
- VPC を作成してみる
AWSについて
AWSとはなんぞや?という方には、公式ホームページを参照して頂きましょう。
言い方雑ですが、Amazon社のビジネス課題を解決するために色々なサーバが構築されたのですが、それを外部公開したのが始まりだそうです(たぶん…)。
仮想サーバのEC2、ストレージのS3、RDB環境が使用できるRDS等々…、100以上ものサービスがあります。選り取り見取りです。
初期コストを抑えられる従量課金制、セキュリティも高く、人的リソース削減にも繋がるのだとか。メリットがたくさんあるようなので、クラウド化を考えているのでしたら、AWSをオススメします。
参考:amazonクラウド、AWSとは?何ができるかデメリット含めわかりやすく説明
あと、導入事例を読んでいてびっくりしたのが、FCバルセロナもAWSを使用していたことです。色々なところで使用されているのですね。読んでいてこういう活用方法もあるのかと勉強になったので、気になる方はぜひ、こちらの導入事例から!
VPCを作成してみる
では、AWSのサービスを使用していきましょう。(ブラウザ上コンソールから設定できるので、ここからはコンソールで設定していきます。)
まずは、VPCの作成です。VPCとは、Amazon Virtual Private Cloudの略で、AWSアカウント上に複数作成することが出来るプライベートなネットワークの単位です。AWSをマンションとして、そのマンションの一室毎がVPCみたいな感じです。
VPCを設置してあげないと、どこからでもアクセスできてしまう、ガバガバセキュリティになるので、注意して下さい。
参考:AmazonVPCとは?
そして、その中にAZ(Availability Zone)があります。AZとは、リージョンををさらに分割したもので、複数のデータセンタからなる集合体です。リージョンとAZについては、AWSのリージョンとアベイラビリティーゾーンに記載されてますので、そちらを読んで頂ければ。
脱線してしまいましたが、VPCを作成します。
大まかな流れとしては、こんな感じです。
- VPCネットワークの作成
- サブネットの作成
- ルートテーブルの作成
- インターネットゲートウェイの作成
- セキュリティグループの作成
① VPCネットワークの作成
サービス一覧からVPCを選択し、「VPCの作成」をクリックします。
「VPCの作成」ページでは、名前タグ、IPv4CIDRブロック、IPv6CIDRブロック、テナンシーを設定します。
IPv4CIDRブロックは必須です。
- 名前タグ: VPCの名前を決めます。ここでは、「trial-vpc」とします。
- IPv4CIDRブロック: IPv4でのアドレス範囲をCIDR形式決めます。ここでは、「10.0.0.0/16」とします。(参照:Wikipedia)
- IPv6CIDRブロック: IPv6でのアドレス範囲を決めます。必要がある場合、Amazon提供のものを選択して下さい
- テナンシー: ハードウェアを占有するかどうかです。占有はしないので、ここでは「デフォルト」で。(参照:AWS-ハードウェア占有インスタンス)
これで、「作成」をクリックすれば、VPCが作成されます。
② サブネットの作成
次にサブネットの作成です。
サブネットはVPCで大まかに分離したネットワークをさらに細かく分離します。役割的には、総務部のネットワークを作成して、総務部以外の人はアクセス出来ないようにする…とか、細かく分離させたので、別のサブネットでは障害が発生したけど、こっちのサブネットは影響がない…とかでしょうか。
ダッシュボードより、「サブネット」を選択し、「サブネットの作成」をクリックします。
「サブネットの作成」ページでは、ネットワークを細かく分離させる設定を記載します。
- 名前タグ: サブネットの名前を決めます。ここでは「trial-subet」とします。
- VPC: サブネットに使用するVPCを決めます。ここでは先ほど作成したVPC「trial-vpc」を選択します。
- アベイラビリティーゾーン: リージョン毎で使用できるAZを選択します。ここでは「ap-northeast-1d」を選択。
- IPv4CIDRブロック: サブネットのIPv4のアドレス範囲を決めます。範囲を狭めるため、ここでは「/24」とします。
これでサブネットが作成されました。また、もし同じVPCでサブネットを複数作成したい場合は、IPv4CIDRブロックを「10.0.1.0/24」、「10.0.2.0/24」…という感じにすれば可能です。
③ ルートテーブルの作成
次にルートテーブルの作成です。その名の通り、ルーティングです。IPアドレスの値が、これの時は、このAというネットワークに、このIPアドレスの時は、Bというネットワークに渡すといったことをします(説明が下手ですみません…)。サブネット単位に設定ができます。
ダッシュボードより、「ルートテーブル」を選択し、「ルートテーブルの作成」をクリックします。
「ルートテーブル作成」ページでは、どのVPCのルーティングを設定するか決めます。
- 名前タグ: ルートテーブルの名前を決めます。ここでは「trial-table」とします。
- VPC: 先ほど作成したVPCを選択します。
これでルートテーブルが作成されました。サブネット単位に設定ができるので、ルートテーブル作成後は、サブネットに関連付けを行います。
先ほど作成したサブネットを選択し保存します。そうすることで、どこに通信できるのかを決定し、不要なパケットは送信しなくなるので、必ず設定します。
④ インターネットゲートウェイの作成
次に、インターネットゲートウェイの作成です。外部通信を可能にするため、設定する必要があります。
ダッシュボードより、「インターネットゲートウェイ」を選択し、「インターネットゲートウェイの作成」をクリックします。
「インターネットゲートウェイの作成」ページでは、ゲートウェイの名前を決めるだけです。機能は決まってますので。
- 名前タグ: インターネットゲートウェイの名前を決めます。ここでは「trial-gateway」とします。
これでインターネットゲートウェイが作成されました。作成されただけですので、デタッチ状態です。VPCにアタッチしてあげないと、意味を成しませんので、最初に作成したVPCにアタッチします。
アタッチすることによって、外部へ通信が可能となりますので、アタッチをお忘れなく。>br> また、次回作成するEC2インスタンスでは、この設定だけでは外部へ通信ができませんので、ルートテーブルに今作成した「trial-gateway」を設定してあげる必要があります。
ダッシュボードの「ルートテーブル」を選択し、先ほど作成した「trial-table」を選択します。画面下の「ルート」タグを選択し、「ルートの編集」をクリックします。
送信先に「0.0.0.0/0」を、ターゲットには先ほど作成したインターネットゲートウェイを選択し、保存します。
そうすることで、EC2インスタンスが外部へ通信することができます。
⑤ セキュリティグループの作成
最後に、セキュリティグループを設定します。このセキュリティグループは言わば、ファイアウォールになります。ポート番号443を開けて、IPはこのグループを許可して…とかです。受信する「インバウンド」、送信する「アウトバウンド」に分けられます。
また、インスタンス毎に設定することができますが、1インスタンスにつき、5グループぐらい設定できるので、SSH用のグループ、HTTPS用のグループとかに分けると後々わかりやすくなるかもしれないので、一工夫するといいかもしれません。
ダッシュボードより、「セキュリティグループ」を選択し、「セキュリティグループの作成」をクリックします。
「セキュリティグループの作成」ページでは、セキュリティグループ名を決め、そのグループの説明、どのVPCに設定するかを決めます。
- セキュリティグループ名: セキュリティグループの名前を決めます。ここでは「trial-securitygroup」とします。
- 説明: 説明を入力します。ここでは「SSH and HTTP」とします。
- VPC: 最初に作成したVPCを選択します。
これで、作成をクリックすれば、セキュリティグループは作成できました。あとは、インバウンドルールとアウトバウンドルールの設定になります。
まず、インバウンドのルールからです。
外部からの通信を受信するためのルールを決定します。先ほど説明に入力した通り、SSHとHTTPのアクセスを可能にするためルールを追加します。
「タイプ」からSSH、HTTPを選択します。SSHのソースには「マイIP」を、HTTPの方は「カスタム」にします。マイIPを選択すると、今現在コンソールにアクセスしているグローバルIPが入力されます。カスタムでは、全てのIPからアクセス可能な形式が入力されます。
もし、アクセス制限をかけたい場合は、ソースを「任意の場所」に設定し、適当なIPアドレスを入力してください。
入力完了したら、ルールの保存をクリックし、作成完了です。
アウトバウンドでは、基本的に外に出る通信になるのでデフォルトのままで問題ないと思います。
まとめ
以上がVPCを作成する上での基本的なことになります。コンソールで操作すると楽な分、間違って別なのを選択してしまった…とかあるので注意が必要ですが、慣れてくれば数分でEC2まで立ち上げが出来るので、AWSはやっていて損はないと思います。でもやっぱり、サーバ関係はやることが多くて大変です…。
次回は、EC2インスタンスを立ち上げて、そのインスタンス内にWebサーバをNginxで構築していこうと思います。
それではまたの機会に!
↓↓↓ぜひチェックしてください
~提供中のヒューマンセンシング技術~
◆人物検出技術
歩行者・来店者数計測やロボット搭載も
https://humandetect.pas-ta.io
◆視線検出技術
アイトラッキングや次世代UIに
https://eyetrack.pas-ta.io
◆生体判定技術
eKYC・顔認証のなりすまし対策を!
https://bio-check.pas-ta.io
◆目検出技術
あらゆる目周りデータを高精度に取得
https://pupil.pas-ta.io
◆音声感情認識技術
会話から怒りや喜びの感情を判定
https://feeling.pas-ta.io
◆虹彩認証技術
目の虹彩を利用した生体認証技術
https://iris.pas-ta.io