KaQiita

新米 Web エンジニアが適当なことを書いてます。温かく見守ってやってください。

EC2 と VPC でキャンペーンサイトを最小構成で作る

はじめに

最近「最小構成の Web サーバーをサクッと作りたい」ということが二回あったため、その作り方をまとめておこうと思います。

今回はこのブログ kaqiita.com に新たに別ドメインの campaign.kaqiita.com というキャンペーンサイトを作成することを目標として、実際に手を動かしてみようと思います。

VPC・EC2 でサクッと環境を作りつつ、このブログはお名前ドットコムでドメインを取得してはてなブログ Pro を使っているので、そのような環境と上手くマージされる部分をしっかり書いていければと思います。

今回作るもの

「最小構成で作る」と述べましたが、具体的には以下のようなものを作ろうと思います。

f:id:KakkiiiiKyg:20200330143314p:plain

手順

VPC

まずは VPC の設定から行います。

VPC のコンソールから「VPC の作成」を選択して、以下のように入力して VPC を作成します。名前タグは自分の分かるように入れて、「IPv4 CIDR ブロック」には何のことかよく分からない場合は例のように入れておくで問題ないかと思います。

f:id:KakkiiiiKyg:20200330143645p:plain

次にこの VPC 内にサブネットを作成します。同じく VPC のコンソールの左のタブから「サブネット」を選択して「サブネットの作成」をクリックします。

作成ページでは先程作った VPC を選択して以下のように作成します。

f:id:KakkiiiiKyg:20200330144114p:plain

次にインターネットゲートウェイの設定を行います。これは管理者がサーバーと通信して色々な設定を行うために、このサーバーとインターネットの通信を可能にするものです。

VPC のコンソールの左のタブから「インターネットゲートウェイ」を選択して「インターネットゲートウェイの作成」をクリックし、名前を入力して作成します。

f:id:KakkiiiiKyg:20200330144554p:plain

その後インターネットゲートウェイの画面の「アクション」から「VPC にアタッチ」を選択して、先程作成した VPC にアタッチします。

f:id:KakkiiiiKyg:20200330144811p:plain

最後に VPC とサブネットにアタッチされているルートテーブルの設定をします。これは先程作成したインターネットゲートウェイVPC・サブネットを紐付けるための操作です。

VPC のコンソールの左のタブから「VPC」を選択して先程作成した VPC を選び、「説明」タブからこの VPC に紐付くルートテーブルを選択します。

するとルートテーブルの一覧画面に遷移するので、このルートテーブルの「ルート」タブから「ルートの編集」を選択し、先程作成したインターネットゲートウェイを紐付けます。

f:id:KakkiiiiKyg:20200330145451p:plain

これで VPC の設定は終了です。

EC2

次に EC2 インスタンスを作成します。

EC2 のコンソールから「インスタンスの作成」を選択して、Amazon Linux 2 の AMI を選択します。

f:id:KakkiiiiKyg:20200330145816p:plain

次にインスタンスタイプを選択します。アクセス量に応じたタイプを選択してあげる必要がありますが、ここでは無料枠の t2.micro を選択しておきます。

f:id:KakkiiiiKyg:20200330145945p:plain

次にインスタンスの詳細の設定を行います。ここでは先程作成した VPC とサブネットに紐付けるのを忘れないようにし、「自動割り当てパブリック IP」は無効化します。これはインスタンスを再起動する度に IP アドレスが変わると後々面倒なので、変わらないようにするためです。

f:id:KakkiiiiKyg:20200330150206p:plain

「ストレージの追加」はここではそのままにしておきます。

次の「タグの追加」は Name だけ付けておきます。

f:id:KakkiiiiKyg:20200330150354p:plain

次はセキュリティグループの設定です。以下の 3 つの設定を行います。

  • マイ IP から SSH できるようにする
  • HTTP 通信をどこからでもできるようにする
  • HTTPS 通信をどこからでもできるようにする

f:id:KakkiiiiKyg:20200330150619p:plain

上記の設定で起動しようとするとキーペアの選択を求められるため、キーペアを作成します。これはサーバーに SSH する際に使います。

f:id:KakkiiiiKyg:20200330150822p:plain

これで EC2 インスタンスが作成されました。しかし先程「自動割り当てパブリック IP」は無効化ため、作成したサーバーはパブリック IP アドレスを持っていない状態です。

そこで次に Elastic IP の設定をします。

EC2 のコンソールの左のタブから「Elastic IP」を選択して「Elastic IP アドレスの割り当て」から新しい IP アドレスを取得します。

f:id:KakkiiiiKyg:20200330151202p:plain

新たに割り当てられた IP アドレスを選択して、「Action」から「Elastic IP アドレスの関連付け」から先程作ったサーバーに IP アドレスを関連付けます。

f:id:KakkiiiiKyg:20200330151427p:plain

これで EC2 の設定は終了です。

Web サーバー構築

次に Web サーバーの構築を行なっていきます。しかしここは何をすべきかケースバイケースなので、ここでの説明は省略します。

一応ここでは以下のドキュメントを参考に Apache を入れたとして先に進みます。

docs.aws.amazon.com

f:id:KakkiiiiKyg:20200330152101p:plain

Route 53

最後に Route 53 の設定をします。「はじめに」でも述べた通り、kaqiita.com はお名前ドットコムで取得したドメインです。このお名前ドットコムで取得したドメインサブドメイン campaign.kaqiita.com のみを Route 53 で管理するというようにしようと思います。

まずは Route 53 のコンソールで「ホストゾーンの作成」を選択し、以下のようにホストゾーンを作成します。

f:id:KakkiiiiKyg:20200330152512p:plain

次に A レコードを作成します。これは campaign.kaqiita.com のドメイン名で名前解決して、先程サーバーに割り振った IP アドレスをブラウザが取得できるようにするためです。

f:id:KakkiiiiKyg:20200330153000p:plain

最後に Route 53 で作ったネームサーバーをお名前ドットコムに登録する必要があります。お名前ドットコムの「DNS レコード設定」で Route 53 の NS レコードをお名前ドットコムにも登録します。

これで campaign.kaqiita.com で先程の Apache のページが返ってくるようになったかと思います。

終わりに

以上、最小構成でキャンペーンサイトを作ってみました。

参考文献