【AWS入門】AWSでWordPressの環境構築をしてみる_ネットワーク構築編①

目的

AWSの勉強を進めているものの、やっぱりなにか作ってみないと理解が進まないなーと思いました。

なので、WordPressをAWSで構築することをゴールとして構築してみようと思った次第です。

WordPressを用意するぐらいだったら簡単にできますからね。

対象読者

  • これからAWSを勉強しようと思っている方
  • AWSを絶賛勉強中の方
  • クラウドのインフラ構造を知りたい方

構築完成図

一つのAZ(アベイラビリティゾーン)の中に、一つのVPCを作成して、パブリックサブネットとプライベートサブネットの2つを用意していきます。それぞれのサブネットにEC2インスタンスを用意して、パブリックサブネットはインターネットに公開し、プライベートサブネットはNAT経由でインターネットにつなげ、外部から入れないような設定にします。最後に必要なツール郡をインストールして完了という感じです。

一つずつ説明していきますので、ここでは何言ってるかわかんなくて大丈夫です(笑)

また、業務上ではAZを2つ以上用意し、同じ環境を複数用意しておくことで冗長性を確保した形にすると思うのですが、テスト用なので今回作成するのは一つでいっかなと思います。

記事の構成

一つの記事でやるのはちょっと量おおいなと思ったので、4部構成でいこうと思います。

  1. ネットワーク構築編①(パブリックサブネットの構築とインターネットゲートウェイの設定まで)
  2. サーバー構築編(EC2インスタンスの作成とSSHでの接続、apacheのインストールと公開設定まで)
  3. ネットワーク構築編②(プライベートサブネットの構築とNATゲートウェイの設定、接続まで)
  4. 完成編(mariaDBのインストールとWordpressのインストール、公開設定まで)

という流れでいきます。

今回の記事は、ネットワーク構築編①(パブリックサブネットの構築とインターネットゲートウェイの設定まで)を取り上げます。

参考図書

今回の内容は、以下の書籍を参考にしてます。説明する際に色んなものを例にたてて紹介してくれているので、非常にわかりやすかったです。

前提知識編

IPアドレス、CIDR、サブネットマスクってなんだっけ?

AWSの話に入る前に、ネットワークを構築する上で必要な用語について理解していきます。

「IPアドレス」についてはほとんどの方が知っているかなと思います。ネットワーク機器やWEBサイトなどの場所を特定するために利用するもので、重複がない一意の32ビットデータのことです。

こんな感じのやつ:10.0.0.0

よく「住所」に例えられるやつですね。

このIPアドレスは、「パブリックIPアドレス」と「プライベートIPアドレス」の2つに分けることができます。

パブリックIPアドレス=インターネットに接続する際に使用するアドレス

プライベートIPアドレス=インターネットで使われないIPアドレス

そして、ネットワークの範囲というのは、このIPアドレスを使って決めていきます。IPアドレスの範囲を示す際に「CIDR(Classless Inter-Domain Routing)表記」と「サブネットマスク表記」という2つの方法を用いて示します。

CIDR表記は、IPアドレスの後ろに/16や/24といった固定するビットの数を指定してあげる表記方法です。

例)10.0.0.0/16→前から16ビットを固定して、後ろを自由に設定できるよという意味。10.0.0.0~10.0.255.255と同じ。

サブネットマスク表記は、IPアドレスの後ろに/255.255.0.0や/255.0.0.0といったようにIPアドレスの指定範囲を表記する方法です。

例)10.0.0.0/255.255.0.0→前から16ビットを固定して、後ろを自由に設定できるよという意味。10.0.0.0~10.0.255.255と同じ。

2つとも概要は同じで表記する方法が異なるという感じです。

このようにネットワークを構築する際は、IPアドレスの知識が必要不可欠なのでしっかりと抑えておきましょう!

とはいえ、深く入りすぎるとわけわからなくなるので、ネットワーク作るときはIPアドレスが必要で、IPアドレスは範囲を指定して自分の領域を確保するのね。ぐらいがわかっていればいいでしょう。(私もそこまでわかってない)

これをどこで使うのかというと、VPCを作成するときに使いますので抑えておいてくださいね。

AWSのロケーションについて

AWSではリージョンがあり、その中にアベイラビリティゾーン(AZ)があり、その中にエッジロケーションが含まれている構造になっています。

イメージとしては、

リージョン→国
AZ→県
エッジロケーション→市区町村

みたいな感じです。

AWSで仮想ネットワークの作成(VPC)と仮想サーバー(EC2)を構築する場合、「どのリージョンでどのAZに置くのか」を決めていかなければいけません。

リージョンは、各リージョンごとに値段が異なり、使える機能も異なるので注意が必要です。なるべく東京リージョンを使いましょう

AZ(アベイラビリティゾーン)は、リージョンの中にある完全に分離された独立した設備を指します。これは障害が起きたときに使えなくなってしまうことを考えて、複数のAZが一つのリージョンに用意されているようです。もしものときを考えて、複数のAZに同じ構成を作っておいて、もし災害がおきてどこかのAZがぶっ壊れたときでも、すぐに違うAZに切り替えることができるようにしておくのが推奨されてます。

エッジロケーションは、AZの中にあるさらに細かい設備を指します。ただエッジロケーションは、現状設定するものがほとんどないので気にしなくても大丈夫だと思います。

ここで抑えておくべきことは、

  • リージョンはなるべく東京リージョンを使う
  • 複数のAZを用意し、冗長性を確保する

の2点です。

Virtual Private Cloud(VPC)について

VPCはAWSクラウドのネットワークからユーザー専用の領域を切り出してくれる仮想ネットワークサービスです。要するに自分専用の領域をつくるためのサービスですね。

「IPアドレス、CIDR、サブネットマスクってなんだっけ?」で説明したように、VPCでは自分専用の領域を作るときにIPアドレスの範囲を指定します。

VPCの範囲を区切ったら更にネットワークを分割して利用するのが一般的で、この分割したネットワークのことを「サブネット」といいます。

サブネットの中にサーバーやデータベースを設置していき、ネットワーク環境を作っていくのがVPCの使い方です。

サブネットについて

VPCの中にもう一つ領域を作ってあげて、区別できるようにするのがサブネットです。

区別する理由は「全世界に公開していいもの=WEBサイト」「自分だけみれるようにしたいもの=データベース」を分けるために使います。誰でもデータベースに入ってこれたらまずいですよね、、、。それを解決するためにサブネットを使います。

種類としては、以下の2つです。

・パブリックサブネット

→インターネットからアクセスできるネットワーク

・プライベートサブネット

→インターネットからアクセスできないネットワーク

プライベートサブネットは、基本的にインターネットにアクセスできないのですが、全くアクセスできないとそもそもオープンソースのデータベースのインストールやソフトウェアのダウンロードができなくなってしまいますね。

それを解決するのが、「Network Address Translation(NAT)」というツールで「プライベートサブネットからインターネットに接続できる」環境を実現することができます。

NATについては「③ネットワーク構築編②(プライベートサブネットの構築とNATゲートウェイの設定、接続まで)」で説明します。

インターネットゲートウェイとルートテーブルについて

VPCやサブネットはただ作成しただけだとインターネットに繋げられず、インターネットに繋げる橋渡しとして「インターネットゲートウェイ」「ルートテーブル」というツールを使います。

インターネットゲートウェイは、サブネットをインターネットに接続するために用いるツールです。VPCに紐付けて使います。

ルートテーブルは、ネットワークにデータを流すために用いるツールで、「宛先IPアドレスの値が、いくつのときには、どのネットワークに流すべきか」を設定するものです。要するに、インターネットの経路を教えてあげる設定です。

各サブネットごとにルートテーブルを設定していきます。

注意すべきことは、特定のサブネットに対してルートテーブルを変更する際は、新しくルートテーブルを作成して紐付けてあげることです。

VPCを作成したときにデフォルトでルートテーブルが作成されるのですが、それはVPC全体に設定されているため、他のサブネットにも影響を与えてしまうため全体に適応したいときだけデフォルトのルートテーブルを編集していきます。

パブリックサブネットにだけ、プライベートサブネットにだけといったように特定のセブネットのルート設定をしたいときは、新しくルートテーブルを作成して紐づけてあげましょう。

テキストだとわかりにくいと思うので、次から実際に構築する部分でイメージをつかんでいただければと思います。

実践編

この記事の構築完成図

この記事で実施することは以下です。

  1. 東京リージョンでVPCを作成し、自分専用領域を作る
  2. 作成したVPCの中にパブリックサブネットを作る
  3. 作成したパブリックサブネットをインターネットゲートウェイとルートテーブルを使い、インターネットからアクセスできるようにする

早速やっていきましょう!

AWSのアカウント作成

もしまだAWSのアカウントを作成できていない方は、以下の記事を参考にアカウント作成をお願いいたします。

【AWS入門】AWSでできること

VPCの作成

①AWSの画面から「東京リージョン」を選択し、VPC画面に遷移します。

②「VPC」を選択し、「VPCを作成」をクリックします。最初にデフォルトVPCというデフォルトで作成されているものがあるかと思います。これは削除しないようにしてください。

③名前を「test-vpc」にして、CIDRブロックを「10.0.0.0/16」にしましょう。そして「VPCを作成」をクリックします。このCIDRブロックというのが「IPアドレス、CIDR、サブネットマスクってなんだっけ?」で説明した自分の領域をIPアドレスで範囲指定してあげる部分です。AWSではCIDR表記を使って範囲指定をします。今回のは、IPアドレス「10.0.0.0」を16ビットの範囲で設定するという意味です。

これでVPCの作成は完了です。続いて、作成したVPCの中にさらに分割した領域(サブネット)を作っていきます。

パブリックサブネットの作成

①「サブネット」を選択し、「サブネットを作成」をクリックします。

②先程作成したVPCを選択します。

③サブネット名を「test-publicsubnet」にして、AZを「ap-northeast-1a」で作っていきましょう。ちなみに、東京リージョンのAZは1a、1c、1dの3つ存在しますので、どれを使っていただいても構いません。そして、CIDRブロックを「10.0.1.0/24」にして、VPCより狭い範囲で指定してあげます。その後、「サブネットを作成」をクリックします。

これでVPCの中にパブリックサブネットを作成することができました。最後に作成したパブリックサブネットがインターネットにつながるように設定していきます。

インターネットゲートウェイ、ルートテーブルの設定

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

②名前を「test-igw」とし、「インターネットゲートウェイの作成」をクリックします。

③「インターネットゲートウェイとルートテーブルについて」で説明したように、インターネットゲートウェイはVPCに紐づけて使用します。紐付けることを「アタッチ」、紐付け削除を「デタッチ」と言います。作成した「test-igw」をVPCに紐づけていきましょう。「test-igw」をチェックして、アクションから「VPCにアタッチ」をクリックします。

④作成したVPCを選択して、アタッチします。

⑤これでステータスが「Dettaced」から「Attached」に変更されました。

⑥これでインターネットに接続できる準備が整いました。ですが、まだ接続はできません。最後にルートテーブルでアクセス可能なIPアドレスの範囲を指定してあげます。

VPCの画面に遷移していただいて、「ルートテーブル」を選択し、「ルートテーブルを作成」をクリックします。(「インターネットゲートウェイとルートテーブルについて」でも説明したように、VPCを作成した段階でデフォルトのルートテーブルが作られていますが、これはVPC領域全体のものとして認識してください。各サブネットに対しては、別で新しくルートテーブルを作成する必要があります。)

⑦名前を「test-routetable」とし、作成したVPCを選択して、「ルートテーブルを作成」をクリックします。

⑧最後に作成したルートテーブルにパブリックサブネットを割り当てます。

「test-routetable」をチェックして、「サブネットの関連付け」のタブに移動し、「サブネットの関連付けを編集」をクリックします。

⑨「test-publicsubnet」をチェックして、「関連付けを保存」をクリックします。

⑩これでパブリックサブネットにだけ作成したルートテーブルが割り当てられました。そしたら、ルートを編集していきます。

「ルート」タブを選択し、「ルートを編集」をクリックします。

⑪「ルートを追加」をクリックして、送信先のIPアドレスを「0.0.0.0/0」とします。これはどのIPアドレスもアクセスを許可するという意味で、フルオープンと言われます。そして、ターゲットに先程作成したインターネットゲートウェイを選択します。ターゲットというのは、流すべきネットワーク先のことを指します。最後に「変更を保存」をクリックします。

これでパブリックサブネットがインターネットゲートウェイを通して、インターネットに接続できるようになりました。最後に本当に設定が変更されているかパブリックサブネットのルートテーブルを確認してみましょう。

パブリックサブネットのルートテーブルにインターネットゲートウェイ経由でアクセスできるように設定が変更されてました。

【まとめ】現状の構築図と次回実施事項

以上で、VPCの作成からインターネットゲートウェイを経由してインターネットに接続するところまで完了しました。

現状の構築図を再度確認しておきましょう。

次回は、パブリックサブネットの中にEC2インスタンスというサーバー構築のツールを入れて、サーバーの中にapacheをインストールしてネット上に公開するところまで進めていきます。

次回の構築図はこんな感じです。

次の記事は以下より。

【AWS入門】AWSでWordPressの環境構築をしてみる_サーバー構築編

ABOUTこの記事をかいた人

株式会社メンバーズ データアドベンチャー所属 データエンジニアとしてデータ基盤の構築から運用を行っております。 得意なことは、データ活用推進です。 日々の学びをアウトプットしていきます。