🚀

ハンズオン【シンプルな構成でブログサービスを構築する】 VPC,EC2,RDS

2021/08/13に公開

【シンプルな構成でブログサービスを構築する】

作成する環境は以下に図示

【やること】
・EC2とRDSを用いて、簡単なブログサイトを構築する。(サーバ、DB共に冗長化無しのシングル構成)
※ブログサイトはwordpressをインストールします。

【使用リソース】
--ネットワーク--
・VPC
・IGW
・サブネット(パブリック、プライベート)
・ルートテーブル
・セキュリティグループ
--コンピューティング--
・EC2
--データベース--
・RDS(MySQL)

【環境構築】
実際に環境構築へ入っていきます。ゼロベースから作成するのでNW環境から作成します。
今回の環境構築の大まかな手順を以下に示します。
・NW作成(VPC,サブネット,ルートテーブル,セキュリティグループ)
・リソース作成(EC2、RDS)
・EC2上でソフトウェアインストール等の作業
・ブラウザからEC2へ接続し、wordpressの設定等

NW作成

・VPCを作成します。コンソールからVPCへ作成し、以下のようなCIDR範囲で作成する。

ちなみにVPCのテナンシーとは、ハードウェアを占有(物理的に確保するか否か)するかどうか、というオプションです。デフォルトのままだと占有はしないので、特に要件がなければデフォルトで問題ないかと思います。

VPCが作成できました。VPC内部で、DNSの名前解決が必要なので、作成した直後にVPCを選択してアクション→DNSホスト名を編集とDNS解決を編集をそれぞれ有効化します。
DNSサービスは、Route53がありますが、VPC作成と共にVPC内部でDNSが作成され、そちらのオプション(設定)になります。

・サブネット作成を作成します。↑で作成したVPC内部に二つのサブネットを作成
パブリックサブネット :172.16.0.0/24
プライベートサブネット:172.16.1.0/24
プライベートサブネット2:172.16.2.0/24(RDSのサブネットグループ用)

・インターネットゲートウェイの作成
VPCにIGWを関連付ける為、IGWを作成します。コンソールで名前を入力するだけで作成ができます。

作成したIGWを、VPCに関連付けます。こちら関連付けないとVPCはインターネットへのアクセスの入口を持たないので、忘れないよう行います。

こちらの作業で、VPCとIGWの関連付けができましたので、コンソールでも確認してIGWがAttachedになっているのを確認します。

・ルートテーブル
次に、二つ作ったサブネット用にルートテーブルを作成します。
VPCを作成した段階で、デフォルトのルートテーブルがありますが
今回は二つのサブネット用(パブリック、プライベート)に二つルートテーブルを作ります。
ルートテーブルを二つ作成したあとに行う作業は以下の2点です。
・ルートテーブルとサブネットの関連付け:明示的にパブサブ:パブRT、プラサブ:プラRT と紐づける
・ルートテーブルへのルートの追加:パブリックサブネットへ作成したIGWへのルートを追加する。(0.0.0.0 で作成したIGWを設定)

上記で、VPC内のルーティング設定が終了、パブリックサブネットはインターネット経由で通信ができ、DBを配置するプライベートサブネットはVPC内部のみの通信ができる状態。インターネットアクセスができない、させない状態。

・セキュリティグループの作成
セキュリティグループを作成します。EC2作成時にも作れますが、コンソールから二つのセキュリティグループ(EC2,RDS用)を作成します。
・EC2用のSG:インバウンドのみ編集(http,SSHの穴あけ。IP制限は自PCからのみ)
・RDS用のSG:インバウンドの編集(MySQLのポートでEC2のSGからのみ許可)

以上でNWの作成、構築の方は終了です。

インスタンス作成

EC2を作成します。
OS:Amazonlinux2
インスタンスタイプ:T2.micro
デフォルト寄りの設定で作成します。


EC2が作成されたので、Teratermからアクセスします。
EC2のパブリックIPをコピーし、秘密鍵を選択(EC2作成時にDLできる。紛失しないよう注意)

Teratermから、SSHでEC2へ接続ができたのを確認。

・RDS作成
RDSを作成する。
エンジンタイプ:MySQL
インスタンスクラス:db.t2.micro
ストレージ:汎用SSD、20GiB (デフォルトではプロビジョンIOPSになっているので変更すること)
・マルチ構成:なし(今回はシングル構成)

〇ソフトウェア等のインストール作業
先ほど接続したEC2のプロンプトへ戻り、wordpressをインストールしていきます。
・ユーザをrootに切り替え
・apatch,php,mysqlのソフトウェアをインストール
EC2のパブリックIPをアドレスバーに貼り付け、以下の初期設定画面に推移する。

※初期設定で、EC2からRDSへの通信がGatewaytimeoutなど、通信ができない場合はRDS側のSGを要確認。ここで行っている事はEC2にインストールしたwordpressの設定、つまりEC2側でどのDBを使うか、の設定なので通信がうまくいかない場合はそこを見る。

接続確認として、EC2からmysqlコマンドでDBへ接続は以下
【mysql -h <MySQLのエンドポイント> -P 3306 -u wordpress -p】

戻りまして、ユーザ名やRDSで設定したパスワードなどを入力しwordpressとDBが通信できている状態を確認し、インストールを実行

wordpressのトップページから、いくつか記事を投稿しEC2上で表示されるかテスト。

上記作業までで、EC2上で簡単なブログサイトの構築が完了。詳細な設定はwordpressの管理側で操作できます、今回対象外なのでそこまでは深堀はしません。

Discussion