LoginSignup
0
1

More than 3 years have passed since last update.

【AWS】基本的なブログサービス(シングル構成)を構築してみた。

Last updated at Posted at 2021-03-21

はじめに

この記事はインフラ初心者の私がAWS Cloudtechを通して学んだことを
記録&アウトプットするための備忘録です。

ゴール

自宅PCからインターネット経由でWord PressがインストールされたEC2にアクセスしてブログ閲覧ができるようにする。

目的

・RDSの作成方法の理解
・WordPressの構築方法の理解
・基本的なシングル構築方法の理解

環境

・Windows10
・TeraTerm Version 4.105
・Word Press Version 5.7

環境構築

今回作成する構成は以下の通り。
image.png

手順

VPC作成からEC2ログインまで

ざっくりとした手順(詳細手順を確認したい方は以前書いたこちらの記事を参照してください)

①VPCの作成
②AZ1-aにてPublicSubnet、PrivateSubnetを作成
③PublicSubnet内にEC2作成、セキュリティグループの設定(Web-SG-1)
④WebServer-1にログインするためにインターネットゲートウェイを作成
⑤VPCにアタッチ
⑥ルートテーブル編集(宛先がローカル以外の通信は全てIGWに向けるように設定する)
⑦セキュリティグループの確認(ssh接続をするため22番ポートが空いているかを確認)
⑧ssh接続

補足
※対象のインスタンスを選択し、[接続]→EC2 InstanceConnectを選択し、[接続]クリックすると
ブラウザ上でssh接続ができる
image.png

■現在の構成図
image.png

RDSの作成

Subnet Groupの作成

RDSを作成するためにはSubnet Groupを作成する必要がある。
※シングル構成であろうとsubnetグループが存在していないとRDSは構築できない。
※subnetグループを作成するためには2つ以上のsubnetをグルーピングかつsubnetは複数のAZにまたがっている必要がある。

①AZ1cにPublic SubnetとPrivate Subnetを作成する。

image.png

②サービスからRDSを選択
image.png

③左ペインから「サブネットグループ」を選択し、[DBサブネットグループを作成]をクリック
image.png

④設定を入力して[作成]をクリック
image.png

項目 概要
VPC Subnet Groupを作成するVPCを選択
アベイラビリティーゾーン Subnet Groupを作成するAZを選択
サブネット Subnet Groupに含めるSubnetを選択

データベースの作成

①左ペインをからデータベースを選択して[データベースの作成]をクリック
image.png

②各種設定を入力し、[データベースの作成]をクリック

■データベースの作成
今回は標準作成を選択。

■エンジンのオプション
今回はMySQLを選択。
image.png

■テンプレート
今回は無料利用枠を選択

■設定
各種入力。
image.png

■DB設定
今回はバースト可能クラス:db.t2.microを選択

■ストレージ
今回はデフォルト設定。
image.png

■可用性と耐久性
今回は「スタンバイインスタンスを作成しないでください」を選択

■接続
今回は以下の設定を入力。
image.png

■追加設定-1
データベース名を入力し、その他はデフォルト設定。
image.png

■追加設定-2
image.png

③作成したDBのステータスが利用可能になっていることを確認する。
image.png

④作成したSG(RDS-SG-1)のインバウンドルールを編集する

image.png

インバウンドルールのソースに「Web-SG-1」を指定して、[ルールを保存]をクリック。
こうすることでWeb-SG-1に所属しているもの(今回ではWebServer1)からしかアクセスできなくなる。

image.png

■現在の構成図
image.png

WordPressのインストール

①ec2-userからrootに権限切り替え
②yum -y updateでパッケージを最新の状態にアップデートする

yum -y update 

image.png

③Apache,MySQL,PHP等必要なものをインストールする。

amazon-linux-extras install php7.2 -y
yum -y install mysql httpd php-mbstring php-xml gd php-gd

④Apacheのサービスを再起動後も自動的に起動する用に設定する。

systemctl enable httpd.service

⑤Apacheのサービスを起動する。

systemctl start httpd.service

⑥(念の為、)Apacheサービスの起動状態を確認する。

systemctl status httpd.service

image.png

⑦WordPressをダウンロードする
以下のコマンドでWordPressをダウンロードする

wget http://ja.wordpress.org/latest-ja.tar.gz ~/

WordPressのサイト上で以下の操作を行うのと同じみたいですね。
image.png

llでWordPressの最新ファイルが存在することを確認。
image.png

※wgetコマンドは指定したURLに存在するファイルをダウンロードするコマンド

■参考URL
wgetコマンド

⑧圧縮ファイルを展開する
以下のコマンドで圧縮ファイルを展開する。

tar zxvf ~/latest-ja.tar.gz

※-zオプションは無くても展開できました。

■tarコマンドのオプション

オプション 説明
-v(--verbose) アーカイブ結果を表示する。
-x(--extract) アーカイブされたファイルを解凍し展開・復元を行う
-f(--file=ARCHIVE) アーカイブファイル名を指定する
-z gzip方式の圧縮または展開を同時に行う(省略可能っぽい)

※tarコマンドはアーカイブを作成/展開するコマンド

■参考URL
tarコマンド

⑨展開したwordpressディレクトリをドキュメントルートにコピーする
llで確認するとwordpressディレクトリができている。

image.png

これを以下のコマンドでドキュメントルートにコピーする。

cp -r ~/wordpress/* /var/www/html/

⑩所有者とグループを変更する
以下のコマンドで/var/www/htmlの所有者とグループをapacheに変更する

chown apache:apache -R /var/www/html

※chownはファイルやディレクトリの所有者を変更するためのコマンド
■参考URL
chownコマンド

ブラウザでWordpressの確認

①インスタンスのパブリックIPアドレスをアドレスバーに貼り付けてEnterを押す

WordPressの初期設定ページが表示されることを確認し、[さあ、始めましょう]を選択
image.png

②赤枠箇所を入力し、[送信]をクリック
image.png

※データベースのホスト名はRDSのエンドポイントの箇所からコピー&ペースト
image.png

③[インストール実行]をクリック
image.png

④各種項目を設定し、[WordPressをインストール]を選択
image.png

⑤インストール後、WordPressにログインできることを確認
image.png

image.png

■現在の構成図
image.png

終わりに

今回は基本的なシングル構成の構築方法について学びました。
今回のハンズオンを通してRDSの作成やWordPressの構築といったことができるようになりました。
以前学んだVPCやEC2の知識が身についているように実感できたのが嬉しかったです。

講座の内容以外にも何でこうするのか?や各コマンドの詳細を調べることで理解が深まりました。
疑問に思っていたことが解決することで「勉強楽しい!」と思えるようになりました。

次は冗長構成での環境構築にも挑戦します。

この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com

おまけ:ドキュメントルートとは?

今回、なぜ/var/www/htmlに/wordpress配下のファイルをすべてコピーする必要があるのかがわからなかったため調べてみました。

調べた結果、以下のように理解しました。

単語 説明 設定ファイルの格納場所
ドキュメントルート Webサーバで公開するコンテンツを配置するディレクトリ。 /etc/httpd/conf/httpd.conf

・ドキュメントルートでApacheがどこのディレクトリに置かれたファイルを Webサーバとして公開するかを決めており、対象のディレクトリが"/var/www/html"だったと理解。
・CentOSのhttpdではデフォルトのドキュメントルートとして"/var/www/html"が設定されている。

■参考URL
今さら聞けない!Webサーバーの仕組みと構築方法
DocumentRootディレクティブ

0
1
0

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
0
1