Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WordPress 環境の構築について考えてみた

WordPress 環境の構築について考えてみた

WordPress のデザイン以外について考えてた時の資料

Avatar for miyamiya

miyamiya

July 23, 2015
Tweet

More Decks by miyamiya

Other Decks in Technology

Transcript

  1. 自己紹介 • プログラムが好きですが、最近はあまり書けて いないです • PMC, ITC というオジサンが持ちそうな資格を 持っているライン管理職です •

    仕事ではシステム構築以外をやらそうとするオ ジサン達が増えてきて困っています • エンジニアの化石にはなりたくないです • 40歳超えましたのでもうダメです
  2. WordPress の特徴 • PHP による動的なページ生成 • 標準添付のテンプレート等がW3Cが勧告している標準規格(ウェブ標準)に準拠し ている • 記事への複数カテゴリー設定に対応

    • カスタマイズ可能で検索エンジンフレンドリーなURL • テーマによる簡単なデザインの切り替え • プラグインによる豊富な拡張機能 • WYSIWYG(ウィジウィグ: What You See Is What You Get)によるエントリ 編集 • 投稿スラッグ(ページ名のURLを好きな文字列に指定できる機能)によるパーマリ ンクURL作成 • オープンソースであり、GPL(GNU General Public License)に従い配布
  3. 要件の確認(ヒアリングシート例) 会社の紹介 必要 (資料提供を行う) 不要 製品(商品)の紹介 必要 (資料提供を行う) 不要 お問い合わせ画面

    必要 不要 ブログ形式のページ 必要 不要 閲覧者からのコメント 必要 不要 独自ドメイン 必要 不要 独自ドメインのSSL 必要 不要 ※問い合わせ画面へ移る際、他社ドメインの共通 SSL で行うことになります スマートフォン対応 必要 不要 ※WordPress プラグインでの対応となります 多言語対応 必要 不要 ※WordPress プラグインでの対応となります SEO対応 必要 不要 ソーシャルメディア連携 Facebook Twitter mixi Google+ はてなブックマーク 不要
  4. 要件の確認(ヒアリングシート例) 記事の更新 自社で行う 弊社に依頼する 業者に別途依頼する 本体とプラグインの更新 自社で行う 弊社に依頼する 業者に別途依頼する デザイン刷新のタイミング

    例. 予定していない、季節やイベントに合わせて検討している バックアップのタイミング 例. 毎日1回 3:00 or 毎週土曜日 3:00 など バックアップの世代管理 例. 7 世代管理 可用性 サーバーが高負荷な時には接続できなくてもよい メディアで紹介された時等、高負荷に耐えられる構成にしたい 信頼性 サーバーメンテナンスや障害時には、速やかに復旧して欲しい サーバーメンテナンスや障害時にも停止時間はできるだけなくして欲しい データセンター障害時でも停止時間はなくして欲しい アクセスログレポート 必要 不要
  5. 配置モデルの俯瞰図 VPS IaaS PaaS SaaS ハウジング On- Premises ファシリティ ハードウェア

    OS ミドルウェア セキュリティ WordPress 運用 仮想化 レンタル サーバー ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 利用者が 管理 プロバイダ が管理 利用者が 管理 運用・保守・管理の負担 高 低 自由度 高 低
  6. オンプレミスとハウジング ハウジング On- Premises ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress

    運用 仮想化 ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 • メリット • その組織の思うままのサーバー構成や、ソフトウェアのセット アップをすることができる • データのある場所がわかり、専用サーバーなのでデータに対し ての安心感がある • デメリット • 調達に時間がかかる • ある程度の負荷時にも耐えられるサーバーを購入すると、余剰 リソースにもコストが発生する • リソースの追加に時間とコストがかかる • オンプレミスでは組織で運用を行う必要があるため、場所(固定 資産)や光熱費が必要 • オンプレミスとハウジング双方ともハードウェア(有形固定資産) が必要 • ハードウェアやソフトウェアのメンテナンス、故障やバグの対 応、バックアップ・リストア計画と実施、災害対策など様々な 場面で保守運用が必要となり、その人員も必要 • パブリックに配置するサーバーを運用するので、高度なネット ワークやセキュリティの知識が必要 WordPress でサイトを構築するのには不向き
  7. VPS IaaS ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化

    ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 VPSとIaaS • メリット • その組織の思うままのソフトウェアのセットアップをすること ができる • OSやミドルウェアのチューニングが可能 • 仮想化により論理的に専用環境 • 調達やリソースの追加が素早く行える • プロバイダによっては、バックアップやセキュリティ・障害対 策がプランとして用意されている • デメリット • ソフトウェアのメンテナンス、バグの対応、バックアップ・リ ストア計画と実施、災害対策など様々な場面で保守運用が必要 • パブリックに配置するサーバーを運用するので、高度なネット ワークやセキュリティの知識が必要 • 保守運用のコストは、オンプレミスとあまり変わらない 共有サーバーでは要件にあわず、 PaaSでは費用対効果が薄いサイトに向いている
  8. PaaS ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 PaaS

    • メリット • 調達やリソースの追加が一瞬で行える • OSやミドルウェアのセキュリティを意識する必要がない • 仮想化により論理的に専用環境 • プロバイダによっては、バックアップや障害対策、スケールア ウトがプランとして用意されているため容易に行える • プロバイダによっては WordPress の環境が用意されている • デメリット • 用意されているプラットフォーム上で動作するソフトウェアで ないといけないため、PHP と MySQL が動作する PaaS を選定 する必要がある • サービス単体で見ると高価なことが多い • ソフトウェアのメンテナンス、バグの対応、バックアップ・リ ストア計画と実施などで保守運用が必要 高負荷時や障害時にも安定した運用を行いたいサイトに向いている
  9. SaaS ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 SaaS

    • メリット • 安価であることが多い • 調達やリソースの追加が素早く行える • OSやミドルウェア、WordPress のセキュリティを意識する必 要がない • バックアップ・リストア計画など、保守運用の必要がない • WordPress の環境が用意されている • デメリット • できることが限られていて、オリジナリティのあるサイトは作 りにくい • 1 契約 1 サイトのみ • 共有サーバーの制限がある • 転送量が制限されていることが多い • 他のユーザーによりパフォーマンスに影響がでることがある • プロバイダによってはサーバーが日本にない • プロバイダが SLA を公開していないことがある 今すぐ始めたいサイトに向いている
  10. レンタル サーバー ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化

    レンタルサーバー • メリット • 安価であることが多い • 調達やリソースの追加が素早く行える • OSやミドルウェアのセキュリティを意識する必要がない • プロバイダによっては WordPress の環境が用意されている • デメリット • 用意されているプラットフォーム上で動作するソフトウェアで ないといけないため、PHP と MySQL が動作するレンタルサー バーを選定する必要がある • 共有サーバーの制限がある • 負荷をかけるアプリケーションが制限されていることがある • 他のユーザーの処理によりパフォーマンスに影響がでることがある • 他のユーザーのアプリケーション脆弱性により影響がでることがある • ソフトウェアのメンテナンス、バグの対応、バックアップ・リ ストア計画と実施などで保守運用が必要 • プロバイダによってはサーバーが日本にない • プロバイダが SLA を公開していないことがある 安価で始めたいサイトに向いている
  11. レンタルサーバーについて Web デザインを請け負ってるデザイナーさん、サイト構築を考え ている中小企業さん、個人での利用で使えそうなのが、次の理由 でレンタルサーバーだと考える。 • 共有サーバーだが安価で利用できる • サイト以外の管理をプロバイダに任せられる •

    WordPress が用意されているところを選べる(動作確認済み) • Web 以外にもよく使われるメールサーバー等が用意されていることが多い • セキュリティツール(WAF や改竄検知)がプランで用意されていることがある サーバーの構築・運用・保守の高い技術力が必要なく WordPress の構築・運用だけに専念できる
  12. レンタルサーバーの選択 WordPress の動作 WordPress が動作可能なサーバーなら、PHP や MySQL も対応バージョンが入っている。 ワンクリックインストールができる機能があると構築の手間も大幅に短縮される。 マルチドメインの数

    マルチドメインに対応していると、1 契約で幾つもの違うサイトを運営することが可能。 MySQL 利用可能数 マルチドメインと MySQL 利用可能数は対であることが理想。 独自SSL (SNI SSL) 対応 独自ドメインでの独自 SSL 対応ができることが理想。 サーバー処理能力 CPU のスピードとメモリの搭載量でサーバーの安定度が計れる。 データー転送量 月間 100 万 PV で考えると、データ転送量が 40GB は超えるとのこと。 再販可能か 1 契約でいくつものサイトを構築・運用を請け負ったほうがコスト的に割安になる。 SLA ホームページや約款を確認し、サービス品質保証 (Service Level Agreement)が要件に合致す るか確認。 料金 費用が予算の範囲内か。 参考:WordPressに最適なサーバーの3つの条件とおすすめサーバー WordPressインストール時に役立つレンタルサーバー9選比較 WordPress を構築するレンタルサーバーを選ぶときの視点を私なりにまとめてみました。
  13. 配置モデルからの選択 一般の企業やデザイナーさんが使うことを考えると、Azure App Service のようなクラウド(PaaS)か、レンタルサーバーの二択で はないでしょうか。 • クラウド 予測できない大量のアクセス、耐障害性などをスケールアウトやレプリケー ション、複数リージョンへの自動バックアップなど、サイトの安定・安全な運用

    を行いたい企業向け。 ソースコードの連携を行えば、GitHub や Dropbox に更新がかかるとサイト に反映するといった使い方や、ステージング環境を簡単に作れ、本番環境とのス イッチングをクリックひとつで出来るため、デプロイや検証も素早く安全に行え る。
  14. クラウドを使うモデル 閲 覧 負荷分散やスケール 西日本 東日本 別リージョンへの レプリケーション 複製 バックアップ

    参考: http://azure.microsoft.com/ja-jp/services/app-service/web/ http://azure.microsoft.com/ja-jp/services/storage/
  15. WordPress の保守性 WordPress は脆弱性情報で世間を賑わすことが多いように感じるソ フトウェアです。今年 JVN iPedia で発表された脆弱性は 90弱となっ ています(2015年07月12日現在)

    。 参考:JVN iPedia 脆弱性対策情報データベース(WordPress で検索、2015年6月分を抜粋) ID タイトル 深刻度 公表日 更新日 JVNDB-2015-003262 WordPress 用 Nextend Facebook Connect プラグインの nextend-facebook-connect.php におけるクロスサイトスクリプティン グの脆弱性 4.3 2015/6/22 2015/6/25 JVNDB-2015-003343 WordPress 用 Slider Revolution プラグインにおけるクロスサイトスクリプティングの脆弱性 4.3 2015/6/18 2015/7/2 JVNDB-2015-003261 WordPress 用 Paypal Currency Converter Basic For WooCommerce プラグインににおける絶対パストラバーサルの脆弱性 5 2015/6/11 2015/6/25 JVNDB-2015-003196 WordPress 用 WordPress SEO by Yoast プラグインの js/wp-seo-metabox.js におけるクロスサイトスクリプティングの脆弱性 4.3 2015/6/10 2015/6/19 JVNDB-2015-003065 WordPress 用 zM Ajax Login & Register プラグインにおけるクロスサイトスクリプティングの脆弱性 4.3 2015/6/10 2015/6/12 JVNDB-2015-003201 WordPress 用 SE HTML5 Album Audio Player プラグインの download_audio.php におけるディレクトリトラバーサルの脆弱性 5 2015/6/6 2015/6/19 JVNDB-2015-003042 WordPress 用 Users Ultra プラグインの ratings モジュールにおける SQL インジェクションの脆弱性 7.5 2015/6/4 2015/6/12 JVNDB-2015-003064 WordPress 用 zM Ajax Login & Register プラグインにおけるディレクトリトラバーサルの脆弱性 5 2015/6/3 2015/6/12
  16. WordPress の保守性を上げ、 信頼性を上げるために • 必要十分のプラグインのみインストールして使う • 余分に入れるとアップデートと検証の手間がかかります • 余分に入れると脆弱性が発見されるリスクも上がります •

    セキュリティ系のプラグインは導入する • 導入環境やプラグインは把握する • PHP や MySQL のバージョン等の導入環境、実装に使ったプラグインな ど、統一したほうが検証の手間が省けます • WordPress の自動アップデートは使わない • 未検証でアップデートを行うのは危険です
  17. WordPress の保守性を上げ、 信頼性を上げるために • WordPress 本体、プラグイン、テーマのアップデートを怠らない • 特に独自導入のプラグインやテーマは気をつける • 公式サイトからダウンロードしていないテーマはチェックする

    • 一般配布されている WordPress テーマの中には、マルウェアかそれに近 いコードが含まれている可能性があります • プラグインを使ってチェックを行う方法があるようです • アップデート後、プラグインの動作検証を怠らない • アップデート後にバックグラウンドで動くプラグインが動かなくなる と気づきにくい
  18. 構築フェーズ • 実演を見せられるといいな 1. Microsoft Azure に WordPress を構築 2.

    テーマのインストール 3. プラグインのインストール 4. バックアップの設定 5. リストア試験
  19. 運用・保守で検討すること • WordPress 本体やプラグイン、テーマの素早い更新 • ステージング環境での検証 • 導入プラグインごとの確認方法を確立する • 定期的なバックアップ・リストア試験

    • クラウド環境以外では、バックアップを別プロバイダに退避させるこ とも検討する • WordPress は頻繁にバージョンが上がるので、障害対応の訓練も兼ね て定期的に取られたバックアップからリストアを行う • 定期的な脆弱性チェック
  20. 構築フェーズ • 実演を見せられるといいな 1. Microsoft Azure に WordPress を構築 2.

    テーマのインストール 3. プラグインのインストール 4. バックアップの設定 5. ステージングの作成と切り替え 6. 脆弱性チェック 7. スケールアウト