LoginSignup
1
0

More than 1 year has passed since last update.

AWSでWebサイトを作ってみた(2) サーバー構築編

Last updated at Posted at 2022-03-18

前回の記事はこちら
次回の記事はこちら

今回はAWSを利用し、自身でサーバーを立て、記事のキーワードを自動抽出するWebアプリケーションを作成してみました。

目次

概要

今回はAWSを使用してWebサーバー、DBサーバー、それらを置くローカルネット、外部からインターネットからアクセスできるようDNSの設定を行っていきます。

まずは全体の概要図です。
abstract.png

  • AWS上にローカルネット(右 VPC 10.0.0.0/16)を作成し、2つのサブネットを作成します。
    • パブリックサブネット(10.0.10.0/24)
      • Webサーバーでありインターネットからアクセス可能
    • プライベートサブネット(10.0.20.0/24)
      • DBサーバーでありパブリックサブネット以外アクセス不可能
  • AWSのDNSサービスであるRoute 53を使用し、グローバルIPアドレスとドメイン名を紐づけ

このような構成を作成しています。

利用しているサービス

ドメイン取得

お名前.com

ローカルネット、サブネット構築関連

VPC

Webサーバー関連

仮想マシン導入 WebサーバーOS導入 Webサーバー用ソフトウェア
EC2 AMI Apache

DBサーバー関連

DBサーバー構築 DB用ソフトウェア
RDS MySQL

DNS(Domain Name System)

Route53

VPC作成

VPC(Virtual Private Cloud)はAWS上に仮想ネットワークを作成できるサービスです。
今回はWebサーバーはインターネットから接続できるようにしたい。しかし、DBサーバーはWebサーバーからしか接続できないようにしたいので、VPC内のサブネットを2つ作成することにしました。

VPC.png

VPCを作成

まずは、下記のようにVPCを選択し、VPCを作成 をクリックし作成してください。

  • リージョンを作りたいところに選択しましょう。(どこでもいいなら東京リージョンでOK)
    vpc_select.png

作成したVPCの設定

作成するリソース 名前(任意) IPv4 CIDR(任意) IPv6 CIDR タグ
VPCのみ aws-and-infra-vpc 手動で 10.0.0.0/16 IPv6 CIDRブロックなし タグなし

今回ローカルIPアドレスはCIDR形式で記述しています。これをサブネットマスク形式で書くと10.0.0.0/255.255.0.0になります。
CIDR形式をもっと知りたい人はこちらの記事に詳しく書いてありますので参考にしてください。

サブネットを作成

今回はパブリックサブネットとプライベートサブネットの2つを作成していきます。

まずは、下記のようにVPCを選択し、サブネットを作成 をクリックし作成してください。
makkesbnet.png

今回は先程作成したVPC内でサブネットを作成するため以下のようにVPC IDを設定します。

sbnet.png

Webサーバーを置くサブネットの設定

サブネット名(任意) アベイラビリティーゾーン(後述) IPv4 CIDR(任意) タグ
aws-and-infra-public-subnet-1a アジアパシフィック(東京)/ap-northeast-1a 10.0.10.0/24 タグなし

DBサーバーを置くサブネットの設定

サブネット名(任意) アベイラビリティーゾーン(後述) IPv4 CIDR(任意) タグ
aws-and-infra-private-subnet-1a アジアパシフィック(東京)/ap-northeast-1a 10.0.20.0/24 タグなし
  • アベイラビリティーゾーン(AZ)とはリージョンよりも小さな区分けで、特定エリア内のデータセンターの集まりのこと。
    • これにより、AZで障害が発生しても他のAZは利用可能なため、可用性の高いサーバーを構築できる。

ルーティング設定

上記でVPCとサブネットを作成しましたが、現状ではインターネットに接続できません。なのでVPC内のルーティングテーブルにインターネットゲートウェイを登録し、インターネットと接続できるようにします。

まず、左側のメニューからインターネットゲートウェイを選択し、インターネットゲートウェイの作成 をクリックし作成してください。

インターネットゲートウェイの設定

名前タグ(任意)
aws-and-infra-igw

作成したインターネットゲートウェイを上記で作成したVPCへアタッチしてください。

そしてルートテーブルを作成していきます。

まず、左側のメニューからインターネットゲートウェイを選択し、ルートテーブルを作成 をクリックし作成してください。

ルートテーブルの設定

名前タグ(任意) VPC
aws-and-infra-igw aws-and-infra-vpc

作成したルートテーブルを選択し、下記の図のルートからルートの編集、サブネットの関連付けからパブリックサブネットに関連付けを行います。

rt.png

ルートの編集(下記を追加)

送信先 ターゲット
0.0.0.0/0 先程作成したインターネットゲートウェイ
  • 0.0.0.0/0は指定されていない通信すべてを指す。

サブネットの関連付け

  • パブリックサブネット(aws-and-infra-public-subnet-1a )

を実行してください。

これでAWS上に仮想ネットワークが構築され、インターネットゲートウェイを通じてインターネットと通信が可能になりました。

Webサーバー構築

EC2を使用して、WebサーバーをVPC内のパブリックサブネット上に作成しました。
EC2とはAWSクラウド上の仮想サーバーを作成できるサービスです。様々なマシンスペック、OSなど細かく設定でき、サーバーの追加・削除・仕様変更などを簡単に操作することができます。

基本的な流れは

  • EC2インスタンスを設置する
    • 基本的に無料枠を選択
  • SSHでEC2に接続
  • Apacheのインストール
  • ファイアウォールの設定
    • 基本的な方針
      • インバウンド通信はSSHのみ
      • アウトバウンド通信はすべて
  • ElasticIPアドレス
    • 固定グローバルIPを取得

です。
詳細はこちらの記事を参考にしてください。

DBサーバー構築

RDSを使用して、DBサーバーをVPC内のプライベートサブネット上に作成しました。
RDSとはフルマネージドなリレーショナルデータベースを作成できるAWSのサービスです。具体的にはOSインストールやアップデートスケーリングなどの構築・運用の手間を軽減することが出来ます。また、DBサーバーに必要な可用性(DBサーバーを継続的に運用する能力)を簡単に獲得することも可能です。

基本的な流れ

  • プライベートサブネット作成(マルチAZにする人)
    • 注意
      • DBサーバーを置くサブネットは前回作成しているので必要ないです。
      • マルチAZにするためなのでAZを違うところに置いておくことに注意してください。
  • セキュリティグループ設定
    • セキュリティグループはDB専用を設定
  • RDSでDB作成
    • 注意
      • マルチAZにしない限り無料枠を使いましょう。
      • 費用が2000円ぐらいになるため、ちょっときつい。
  • Webサーバーから接続確認

DNS

DNSとはDomain Name Systemというドメイン名の管理システムです。具体的な処理としてはドメイン名をIPアドレスに変換する作業を行っています。AWSにはRoute 53というDNSサービスがあり、今回はそれを使用して取得したドメイン名をIPアドレスに変更するシステムを構築していきます。

執筆途中

Elastic IP

終わりに

本記事では主にVPC,EC2,RDSなどを使いWebサイトのサーバーを構築してきました。このあたりまで終えるとWebサイトを立ち上げることができ、とても実感がわきます。

注意点ですが、無料枠を使用していないRDSの料金が思った以上にかかりました...マルチAZにしないのであれば、無料枠を使用したほうがいいかと思います。

次の記事ではWebサイト上に記事のキーワード抽出ができるサービスを実装していきます。

参考文献

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0