KUSANAGI for AWSで超高速WordPressを構築するまでの手順をふんわりした解説とともに
色々と難しそうでややこしそうなAWS。いままで避けてきたが、WordPressを超高速で動かせるKUSANAGIがAWSに対応したので、とうとう手を出さざるを得なくなってしまった。
いちおうKUSANAGIのオフィシャルにも導入手順が載ってはいるのだが "これは・・・何?" 的な項目もちょいちょい有って分からないまま進めていったら後で怖いことになりそうだったので、色々調べながらやってみた。
目次
AWSの参考書・参考サイト
[amazonjs asin="4797382570" locale="JP" title="Amazon Web Services パターン別構築・運用ガイド"]
調べながらやるということで、AWSの参考書にこちらを購入。480ページの大ボリュームでAWSについて細かく書かれており評価も高い。これがあればきちんとAWSの導入が出来るに違いない。
あと、参考として事前に見ておいたのはschooのAWS関連の授業とドットインストール。さらに、もしつまずいた時にはココナラにAWSの資格を多数取得している強者がいらっしゃったのでこの方に質問すればなんとかなりそう(笑)ほんと最近ウェブサービスが充実しすぎててなんでも解決出来ますな。
AWSへの登録・EC2の選択
まずはAWSにログインしてサービス一覧を表示。アカウント作成についてはそんなむずくないので割愛するが、不安な方はschooの「初心者・新卒エンジニアに送る!AWS入門-アカウント作成・ハンズオン編-」を見ながら進めると良い。
まずはアマゾンウェブサービス内のすんごい色々有るサービス内から「EC2(クラウド内の仮想サーバー)」を選択。
AWSには他にも様々な用途に合わせて多種多様なサービスが有るが、一般的なウェブサイトはこのEC2というのを使うようだ。
EC2はいわゆる仮想サーバーが作れるサービス。XSERVERとかは月額制だが、AWSは初期費用不要で利用量に応じた時間課金となる。
EC2でインスタンスの作成
インスタンスの作成
EC2へアクセスしたら次に「インスタンスの作成」をクリック。
仮想サーバーの事をインスタンスと呼ぶようだ。インスタンスにはサーバのメモリやCPUによって色んな種類が有るみたい。
Amazonマシンイメージ(AMI)で「kusanagi」を選択
次に「AWS Marketplace」から「kusanagi」と検索するとkusanagiが出現するので「選択」ボタンをポチ。Marketplaceという事は自分でインスタンスの構成を作って売る事も出来るみたいですな。これは面白い仕組みですね〜。
色んなサーバーの構成の事を「Amazonマシンイメージ(AMI)」と呼ぶみたいですな。有名なAMIMOTOもここで検索したら出てきました。AMIMOTOは時間毎の料金が書かれていたので有料ぽいですね。知らなんだ。KUSANAGIの方は無料。
KUSANAGI for AWSの料金詳細が出たら、右下の「Continue」を選択。KUSANAGIは推奨メモリ4G以上なのでt2.medium〜になるのですが、t2.mediumは$0.08/時間みたいですね。となると1時間9円、24時間で216円、31日で6696円。うん、結構しますね(笑)
「t2.medium」を選択して「次の手順:インスタンスの詳細の設定」をポチ。
ここから急に難しくなってきた!が、ここは色々調べてはみたがとりあえずそのまま何もいじらなくて問題無さそうだったので、そのまま次の手順へと進む。
ストレージの追加
ここではサーバーのストレージの設定が可能。見なれないGiBというサイズが有るが、1KB=1000B・1KiB=1024Bというように1000倍ごとか1024倍ごとかの違いのようだ。とりあえずサイズは後から増やせるぽいので10GiBに設定。
ボリュームタイプはデフォルトでは汎用SSDになっていてそのままで良さ気。普通のハードディスクはマグネティックというやつみたいでちょい安いみたい(どの程度安いかは未確認)
インスタンスのタグ付け
ここではサーバーにタグ付けが出来るようだ。僕の場合だとキーを「yogawa」値を「kusanagi_first」みたいな感じにしておいて、アクセス数が増えてきてまたサーバーを増やしたらキー「yogawa」の値「kusanagi_second」みたいにまたタグ付けしとけば管理しやすい、とそんな感じなんかな。きっとね。
セキュリティグループの設定
ここはインスタンスのトラフィックを制御するファイアウォールの設定。HTTP(ウェブサイト)は皆見れるようにしとかんなんし任意でOKだが、SSHはとりあえず自分の家からだけにしておいた方が良さ気。マイIPを選択すれば自分の家のIPが自動で出る。
インスタンス作成の確認
インスタンス構成の確認画面。もうちょい安い構成だとなんと1年無料のようだが、kusanagi指定の構成だと無料対象ではない模様。
まぁ内容をざざっと確認して「作成」だっ!
キーペアの作成
キーペア?の作成。ちょっと良くわからんが、このキーファイル(.pem)とインスタンスが結びついてて安全にSSH接続出来るようだ。
「新しいキーペアの作成」を選択してキーペア名に任意のファイル名を付け「kusanagi_aws」キーペアのダウンロードをしてから「インスタンスの作成」をクリック。
作成失敗・・・
作成失敗したwwwなんかストレージのサイズが31GiB以上じゃないとダメみたいだ。あぁ、たしかにデフォルト31GiBだったな。
よく分かんないけどt2.mediumは31GiB以上じゃないとダメなんかな・・・まぁとりあえず確認画面に戻り、ストレージのサイズを31GiBにし再度作成を実行!またキーペアの画面が出るが、さっき作ったので既存のやつ〜にすればOK。
インスタンスの作成完了!
上手いことインスタンスが出来たっぽい!
EC2ダッシュボードから「インスタンス」をクリックすると作成したインスタンスが無事に動いておりました。下の方にパブリックIPも出ていて、これをブラウザに入れても見える。
とりあえず該当のIPにアクセスしてみたら、nginxがちゃんと入っていた!が、このパブリックIPは共有IPなのでインスタンスを再起動とかしたら変わってしまうので、本ちゃんでは固定IPのElastic IPというのを使うみたいだ。にしてもいろんな参考サイトだと「パブリック DNS」ができてるのだが、僕のは空・・・。なんでだろうなぁ。
ElasticIPでインスタンスに固定IPを付ける
固定IPの取得
インスタンスに固定IPを割り当てるにはElasticIPという機能から設定出来るようだ。EC2の左ナビから「Elastic IP」を選択し「新しいアドレスの割り当て」をクリック。
EIPの使用箇所は「VPC」を選択して「関連付ける」をクリック。このプルダウンでEC2も選べるのだが、何故かVPCを選択。さっき作ったのはEC2なのだが・・・なんでだろうね(最初EC2で作ったら関連付け出来なかったのだ。VPCなら関連付け出来た。)
お、固定IPが出来たみたいです!(実はElasticIPは一度作り直しててこの上のサムネのIPは使ってません。他の画像では違うIPが出てますが気にしないでくださいw)
固定IPアドレスをEC2インスタンスに関連付け
またEIPの画面に戻ると1個IPアドレスが表示されているので、チェックしてアクションボタンから「アドレスの関連付け」をクリック。
インスタンスをクリックしたらさっき作ったのがプルダウンで出てくるので、それを選択して関連付ければOK!これでさっき作ったインスタンスに固定IPが割り当てられますな。
仮想サーバーの設定
キーペアを使ってMacのターミナルからSSHでAWSの仮想サーバへ接続
お次はインスタンス(仮想サーバっていうのかな)に接続して設定!インスタンス作成時に作成したpemというキーペアを使ってMacのターミナルからSSH接続してみます。
まずはダウンロードしたpemファイルはそのままでは使えず、パーミッションを「400」に変更してやる必要が有りました。
パーミッション変更コマンドのchmod 400って書いてまぁ適当にファイルをドラッグアンドドロップでターミナルに突っ込んでファイルパスを出したらEnter!
chmod 400 /Users/yogawa/Desktop/kusanagi_aws.pem
次にsshコマンドで接続。kusanagiのマニュアル見たらユーザー名はcentosでログインするようです。
ssh -i /Users/yogawa/Desktop/kusanagi_aws.pem centos@設定したIP
KUSANAGIへの接続に成功!やたー!
KUSANAGIの初期設定
(1)初期設定はrootユーザーに切り替えて行うようなので、centosからrootへ切り替え。
$ sudo su -
(2)次にCentOSやKUSANAGIシステムをyumコマンドでアップデート。
# yum update -y
「Complete!」と出たらアップデート完了!アップデートが無事に終わったらKUSANAGIの設定を開始!
# kusanagi init
(3)まずはタイムゾーンの設定が出てくるので、ずらっとある中からAsia/Tokyoを探してEnter!
Applying Location: Asia/Tokyo.
次にキーボードタイプを聞いてくる。Japanなので「1」を入力してEnter!
Select your using keyboard type.
1 : English
2 : Japanese
q : quit
which you using?:
(4)次にkusanagiユーザーのパスワードを変えてくれと出るので、任意のパスワードを設定(これはどこで使うのかは不明・・・)Retypeと出たらもっかい同じのを打ち込みEnter!
Changing password for user kusanagi.
New password:
(5)次は鍵認証の設定。AWSで既にキーペアを作っているのだが、これは何に使うのだろうか・・・
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
このメッセージが出たら好きなパスフレーズを入力してEnter!「Enter same passphrase again」と出たらもう一度同じパスフレーズを打って再度Enter!
Your identification has been saved in /root/kusanagi.pem.
Your public key has been saved in /root/kusanagi.pem.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| |
| |
| |
| |
| |
| |
+-----------------+
この表示が出たら/rootにkusanagi.pemが出来たようです。やっぱ用途がよく分かりませんが、基本的にはAWSで使ったpemを使えばいいと思われる(多分)
(6)お次にMySQLのrootパスワードの設定。
Enter MySQL root password. Use [a-zA-Z0-9.!#%+_-] 8 characters minimum.
8文字以上で好きなパスワードを入力してEnter!「Re-type」と出たらもっかい同じのを打ち込んでEnter!
「innodb_buffer_pool_size〜」みたいに出たら完了!これでKUSANAGIの初期設定は完了のようです。
WordPressのプロビジョニング
プロビジョニングってよく分かりませんが多分 "準備" っていう意味なんでしょうかね。またコマンドを打って進んでいきます。
(1)まずは以下のコマンドを入力。任意のとこは好きな名前を付ければOK。それがディレクトリになってそこにWordPressのデータがインストールされるみたいです。僕はとりあえずオフィシャルに書いてあった「kusanagi_html」って書いて進めました。
# kusanagi provision 【任意のプロファイル名】
入力例)# kusanagi provision kusanagi_html
(2)お次にWordPressの言語設定。
Choose your favorite WordPress language.
1 : en_US
2 : ja
q : quit
Which you want?
ここは2番の「ja」でしょ!2を打ち込んでEnter!
(3)お次はホスト名の設定
Enter hostname(fqdn) for your website. ex) kusanagi.tokyo
と出たら、自分のホスト名を入力。とりあえずドメインは無いので、僕はElasticIPで取得した固定IPを打ち込みました。「Re-type」と出たら同じものを打ち込んでEnter!
ホスト名(FQDN)で入力。
例 : www.example.com ※http://や末尾の/は不要。
(4)次はデータベース名の設定。好きなデータベース名を入力してEnter!「Re-type」と出たらもう一度同じデータベース名を入力して再度Enter!
Enter database name you create.
(5)次はデータベースで使うユーザーのユーザー名を設定。好きなユーザー名を入力してEnter!「Re-type」と出たらもう一度同じデータベース名を入力して再度Enter!
Enter user name for database
(6)次にユーザーのパスワード設定。好きなパスワードを入力してEnter!「Re-type」と出たら同じものを入力してEnter!
Enter password for database user '作成したユーザー名'. USE [a-zA-Z0-9.!#%+_-] 8 characters minimum.
設定後に以下の表示が出ればプロビジョニング完了!
Downloading WordPress 4.3...
Success: WordPress downloaded.
[root@<ホスト名> ~]#
これでKUSANAGIのプロビジョニングとやらは無事に終わりました・・・これでIPを叩けばWordPressが出来ているはず。
キターーーー!
WordPressの画面が開いた!この画面を見るとホッとする・・・。あとはもう通常通りさっき設定したデータベース名やユーザ名を入れてWordPressのセットアップを完了させればOKですな〜。
KUSANAGIインストール直後の管理画面。上部に速度が表示されていていかにも高速だぜ!って感じ。にしても管理画面も早い、サックサック動く。
サイトの方もサックサク。これはもう静的ページ並みに早い・・・KUSANAGI・・・凄い。
GTmetrixで速度計測したら0.9秒だった。まぁ記事が全然無い状態だからあれだが、ページ表示に1秒切ったぜ・・・。
ドメインの設定
ドメイン事業者でDNSの設定
DNS設定は各事業者によって変わると思うのであれですが、僕はムームードメインを使っているのでムームーDNSでこんな感じに指定。
KUSANAGIのサーバー設定を変更してドメインを指定
KUSANAGIのプロビジョニング時のホスト名の設定の時にドメイン名を入れていたら別にこの設定は不要なのですが、僕はIPを入れていたので設定ファイルをドメイン名に変更する必要が有りました。
とりあえずWordPressの設定のアドレス(URL)2箇所をIPからドメインに変更。
次にターミナルでKUSANAGIに接続し、rootユーザーへ変更(上で書いた初期設定を参照)
KUSANAGIはNginxで動いていてホストの設定はnginxのconfファイルに書かれているので、以下のようにNginxのディレクトリへ移動。
# cd etc/nginx/conf.d
上記ディレクトリの中にいろいろconfファイルが入ってますが、プロビジョニング時に設定したプロファイル名のconfファイルを開きます。僕は「kusanagi_html」に設定したので以下のような感じ。
# vim kusanagi_html_http.conf
設定ファイルが出ました!
#=======================================
2 # 52.69.246.25
3 #---------------------------------------
4
5 server {
6
7 listen 80;
8 server_name 52.69.246.25;
9 access_log /home/kusanagi/kusanagi_html/log/nginx/access.log main;
10 error_log /home/kusanagi/kusanagi_html/log/nginx/error.log warn;
ここのserver_nameというところをドメイン名に変えてやればOK。変更して保存したらreloadでNginxの設定ファイルを再読み込み。
# nginx -s reload
これでドメインの設定が完了!
ブラウザでドメインを入れてみると無事に反映されておりました!
これにてKUSANAGI for AWSの構築完了!
AWSでまだ良くわからない単語がちょいちょい有りますが、KUSANAGIのオフィシャル手引を見ながらやれば意外に結構簡単に構築が出来た感じがします。
今回初めてAWSを使ってみて、サーバーを時間単位で使えるのと数分でサーバーを作れるのって結構便利だなと感じました。今後は作ったインスタンスをスケールアップしたり複数台で動かしたりして遊んでみよ〜。
これからAWSでKUSANAGIを初めて構築する人の参考になれば幸いです。
SPONCERD
コメントはまだありません