[cmsどうでしょう 札幌] 網元起動隊ハンズオン
TRANSCRIPT
網元起動隊 in CMSどうでしょう札幌
•WordCamp Kyoto2009,Kobe2011 実行委員長•WordCamp Yokohama2010,Kobe2011 スタッフ•WordCamp Nagoya2010,Tokyo2012,Kobe2013,Kansai2014 スピーカー•AWS SAMURAI AWARD 2013受賞•JAWS-UG 三都物語2013,2014 実行委員/スピーカー•AWS SUMMIT TOKYO 2012 AWSスタートアップチャレンジ スピーカー•JAWS DAYS2013 パネラー•JAWS FESTA Kansai2013 実行委員•JAWS DAYS2014 実行委員/スピーカー•JAWS-UG神戸支部長
あんた誰?
JAWS-UG
WordPress Community
網元起動隊とは?
Thailand
網元起動隊 ユニフォームI'm Amimoto compatible.
デジタルキューブ
• Amazon Web ServicesAPN アドバンスドコンサルティングパートナー
• WordPressCodePoet Directory コンサルタント
分散型のワークスタイル
• 事業所:神戸/東京/福岡/長岡/仙台リモート:串本/鹿児島/横浜/男木島
• メンバー:14人
• 主なツール:1. Google Apps2. Backlog / Cacoo 3. Google Hangout / TypeTalk /Slack4. GitHub 5. Dropbox
更に進化させる
強いチームは
オフィスを捨てる
即!実践
–Johnny Appleseed
“Type a quote here.”
強いチームはオフィスを捨てる
–Johnny Appleseed
“Type a quote here.”
強いチームはオフィスを捨てる?
強いのかこれ?
営業ゼロ。100%インバウンド
WordPress on AWS
教育機関
WordPress on AWS
大規模メディア
WordPress on AWS
カンパニーサイト
WordPress on AWS
多言語/エンタープライズ
“苦悩”
•調達•自由度•拡張性•価格
•開発環境•試験環境•本番環境•バックアップ
•パフォーマンス•安全性•メンテナンス性•サイジング
•リソース•共同作業•効率•属人性
問題点
“理想的なWordPress環境がない事による悪循環”
世界8リージョン25種類 24時間365日 完全自動提供
30%は海外ユーザー
WordPress専用のクラウドホスティング
WordPress専用のクラウドホスティング
ハイパフォーマンス
一秒あたりの処理数 ( Requests per second ) で比較してみると、網元AMIが 108.41 [#/sec] なのに対し、Bitnami では 1.01 [#/sec] と、実に100倍以上の開きがあります。ちなみに 総リクエスト数 1000、同時接続数 100 で負荷テストを行った所、網元AMIでは一秒あたりの処理数は 267.46 [#/sec] を記録しました。Bitnami では、残念ながら計測できませんでした。
100倍以上
“砲撃を迎撃”
迎撃CDP
複雑な構成も一撃で構築
安全・安心
世界第一級の保護
AWS の SecurityCheck 済み
php-fpm, nginx, mysql のプロセスが終了したことを監視自動で再起動してくれます
プロセス監視 MONIT搭載
強力なオプションサービスも連携
Trend Micro Deep Security™ as a Service
Trend Micro Deep Security™ as a Service
開発者向け機能も搭載
WP-CLI
強力な拡張機能も標準搭載
NGINX のキャッシュコントロール
NGINX環境でのUA判定とTheme設定
Contents Delivery Network
S3への画像アップロード
おまけ
“永代供養”
StaticPress
http://ja.staticpress.net/
“ハンズオン”
AWSへログインする
AMIMOTO(EC2インスタンス)を起動
IPアドレスを関連付ける
インスタンスのスケールアップ
•インスタンスを止める•Change Instance Typeでインスタンスタイプを変更•インスタンス起動
インスタンスのスケールダウン
•インスタンスを止める•Change Instance Typeでインスタンスタイプを変更•インスタンス起動
スケールアップと同じ手順
Termination Protection設定を変更する
Terminateion Protectionとは?
インスタンス自体を終了 → 消す稼働中のサイトでやらかすと… ( ꒪⌓꒪)Termination ProtectionをEnableにして、誤ってインスタンスのterminateをクリックしても、terminateできないようにする設定です。
※ 逆に言うと、このTermination Protectionをdisableにし忘れると、terminateボタンが有効化されないことになります。(インスタンスを消すとき注意)
バックアップ・リストア
バックアップ・リストアのながれ
今回は作成した網元ハンズオンサイトにテーマテストユニットデータをインポートし、その状態でSnapshotを作成。作成後、投稿データを全て削除し、Snapshotから作成したVolumeでリストアして、元の状態に戻す流れです。
バックアップ(Snapshot)
Snapshotのながれ
Snapshotとは、その時点でのサーバの状態を抜き出すこと。インスタンスに接続されているVolumeのIDを確認し、そのVolume IDのSnapshotを作成する。
【参考】スナップショットの作成と、スナップショットからのリストア http://ja.amimoto-ami.com/2014/10/01/creating-snapshot-and-restore/
リストア
リストアのながれ
1.稼働中のインスタンスに接続されているVolumeの接続情報を確認する2.Snapshotから新規にVolumeを作成する3.インスタンスを停止する4.インスタンスからVolumeを接続解除(Detach)する5.2で作成したVolumeをインスタンスに接続(Attach)する6.インスタンスを起動(Start)させる
【参考】スナップショットの作成と、スナップショットからのリストア http://ja.amimoto-ami.com/2014/10/01/creating-snapshot-and-restore/
SFTPで接続する
SFTP対応クライアントをダウンロード
お持ちでない場合、Cyberduckを今回使用します
Cyberduckhttp://cyberduck.io/index.ja.html?l=ja
•nginxユーザーとしてssh接続できるようにする•nginxユーザーのログインシェルをbashに変更•passwdコマンドでnginxユーザーのパスワードを変更する•nginxユーザーのホームディレクトリを/var/www/vhostsに変更する•↑のために各種プロセスを一度止める•設定が完了したらプロセスを起動する•SFTPソフトへ設定
SFTP接続するまでの流れ
参照URL•nginx ユーザとして ssh 接続できるようにするには? http://ja.megumi-cloud.com/2013/11/11/how-to-ssh-as-nginx-user/
•網元で作成したインスタンスに(S)FTPクライアントソフトで接続するには?http://ja.megumi-cloud.com/faq/amimoto-sftp-client-access/
AMIMOTOインスタンスへログインする
•Macの場合、Applications > ターミナルを起動•Windowsの場合、PuTTY などをマシンへインストール【参考】PuTTY Download Page http://www.chiark.greenend.org.uk/~sgtatham/putty/download.htmlPuTTY で loginhttp://www.ep.sci.hokudai.ac.jp/~epnetfan/tebiki/server-login/putty.html
.pemファイルのアクセス権を600へ変更
chmod 600 {.pemファイルまでのパス}
AMIMOTOインスタンスへログインする
ssh -i {.pemまでのパス} ec2-user@IPアドレス
※ .pemまでのパス例)デスクトップ上のawsフォルダ内の場合で、IPアドレス54.64.60.18の場合ssh -i /Users/{ユーザー名}/Desktop/aws/amimto-hands-on-2.pem [email protected]
※ IPアドレス : インスタンスに紐付けたElastic IPsの値
sudo /usr/sbin/usermod -s /bin/bash nginx
※ 半角スペースに注意
nginxユーザーのログインシェルをbashに変更
sudo passwd nginx
passwdコマンドでnginxユーザーのパスワードを変更
nginxユーザーのホームディレクトリを/var/www/vhostsに変更する
sudo /sbin/service monit stopsudo /sbin/service nginx stopsudo /sbin/service php-fpm stopsudo usr/sbin/usermod -d /var/www/vhosts nginxsudo /sbin service php-fpm startsudo /sbin/service nginx startsudo /sbin/service monit start
※ nginxユーザーのホームディレクトリを変更するためにnginx, php-fpm のプロセスをいったん終了してからusermodでホームディレクトリを変更
ec2-userと同じpemキーで接続できるように.ssh/authorized_keysをコピーする
sudo mkdir /var/www/vhosts.sshsudo cp /home/ec2-user/.ssh/authorized_keys/var/www/vhosts/.ssh/sudo chown -R nginx:nginx /var/www/vhosts/.ssh/
.pemファイルのアクセス権を600へ変更
•インスタンス起動時にローカルへダウンロードされた.pemファイルのアクセス権を変更する
chmod 600 {.pemファイルまでのパス}
SFTPクライアントソフト設定
•サーバ: インスタンスのIPアドレス•ユーザー名:nginx•Key pair(インスタンス起動時にダウンロードされた.pemファイル)•パス: /var/www/vhosts/{インスタンス名}•接続ポート: 22