AWSでブログサーバ構築(WordPress)
近年AWSがいろんなシステムで使われてるね。
個人的に興味がありポチポチいじって遊んでます。(業務で使ってみたい)
「名前は知ってるけど実際どういう風に使われてるの。。。?」という人が意外と多いのではと思い、今回は最も単純な構成でAWSを使いWordPressのサーバを構築するよ。
構成
本来はDBサーバとWebサーバは分けるべきですが、今回はまずはやってみようということで一台のサーバにDBとWebサーバを入れます。
前準備
インスタンス作成
[Instance] > [Launch Instance]
まずはAMIを選択します。UbuntuやCent OS、RedHat等よりどりみどりですが今回はAmazonLinuxを使用。
次にPCのスペックを選びますが、無料枠はmicroのみです。
Step3はデフォルト設定のまま
ストレージの設定
【設定値】
Size:8GB
Volume Type:Magnetic
Instance名を設定
【設定値】
Value:任意の値
前準備で作成したセキュリティグループをここで紐付けます
そのまま次へ
警告が出ていますがこれはセキュリティグループでIPアドレスによる制限をかけていないためです。実際に構築を行うときは環境に応じてIPアドレスで制限を行うよう、セキュリティグループを設定しましょう。
[Launch]を選択すると次のポップアップが出ることがあります。
SSDの使用を促すものなので、ここではこれに従いSSDを選択しましょう。
次にKey Pairを選択します。前準備で作成したものを使用しましょう。
【設定値】
Select a key pair:前準備で作成したKey Pair名
インスタンスの設定は以上です![View Instances]から設定を確認しましょう。
インスタンスにSSHで接続しよう
Macなのでターミナルから接続を行います。
まずはKeyPairの権限を変更しておきましょう。
所有者は読み書き可能.所有者以外はファイルに対する権限は付与しません。
chmod 600 【Key Pair】
例)
chmod 600 /Users/apple/Desktop/mykey_tokyo.pem
ssh -i 【Key Pair】 ec2-user@【パブリックDNS】
例)
ssh -i /Users/apple/Desktop/mykey_tokyo.pem ec2-user@ec2-XX-XX-XXX-XXX.ap-northeast-1.compute.amazonaws.com
これで接続ができました!
必要SW導入(Apache, php, MySql, WordPress)
パッケージのアップデート
sudo yum -y update
apache,php, mysql(とmbstring)のインストール
sudo yum -y install httpd mysql-server php php-mysql php-mbstring
オプションでつけている"-y"は、yesかnoかを求められる際に全てyesとしてコマンドを実行するものです。都度yesと入力しても良いですが面倒なので"-y"はつけといた方がよいでしょう
sudo /etc/init.d/httpd start
sudo /etc/init.d/pysqld start
【補足】サービスの自動起動
デフォルトの設定では、OSの再起動を行うたびapacheやmysqlは上記のコマンドで起動しなければいけません。それは手間なのでOSが立ち上がった際に自動でサービスが立ち上がるようにしておきましょう。
sudo /sbin/chkconfig mysqld on
$ sudo /sbin/chkconfig httpd on
最後にWordPressの導入
・ファイルのダウンロード
wget http://ja.wordpress.org/latest-ja.tar.gz ~/・ファイルの解凍
tar zxvf ~/latest-ja.tar.gz・解凍したWordPressPressのコンテンツを公開ディレクトリに配置
sudo cp -r ~/wordpress/* /var/www/html/・コンテンツの所有者をapacheに変更
sudo chown apache:apache -R /var/www/html
WordPressで使用するDBの設定を行いましょう。
・ログイン
mysql -u root・DBの生成
mysql> create database wordpress;・ユーザ作成
mysql> grant all privileges on wordpress. * to "【ユーザ名(任意の値)】"@"localhost" identified by "【パスワード(任意の値)】";
例)
grant all privileges on wordpress. * to "wpuser"@"localhost" identified by "wppassword";
これでいちおうWordPressを用いたブログサーバの構築は完了です!
確認として以下URLにブラウザからアクセスしてみましょう
正しく設定されていれば以下の画面が表示されます
今回は以上となりますがいかがだったでしょうか。(最後の方は書くのが面倒になってきて雑になってますごめんなさい)
たったこれだけの作業で極小規模ながら一つのシステムが作れてしまうあたり、SIerで働く身としては仕事でやることががっつり減ってしまうので冷や汗ものです。。。
余談ですが、アメリカと日本ではSIerの意味合いが違います。アメリカではユーザ(SIerから見たお客さん)は「できることは自分たちでやっちゃえ」スタンスなので、AWSをはじめとするクラウドサービスの台頭により、お客さん自らでインフラ構築をしてしまうことも少なくないそうです。
気が向いたらWebサーバとDBサーバ別々に立てる構成やロードバランサ(ELB)を使った負荷分散構成についても書きたいと思います。
もう月曜か。。。鬱だ。