Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
WordPress 環境の構築について考えてみた
Search
miyamiya
July 23, 2015
Technology
0
410
WordPress 環境の構築について考えてみた
WordPress のデザイン以外について考えてた時の資料
miyamiya
July 23, 2015
Tweet
Share
More Decks by miyamiya
See All by miyamiya
GroupBy と Distinct
miyamiya
0
560
Other Decks in Technology
See All in Technology
上長や社内ステークホルダーに対する解像度を上げて、より良い補完関係を築く方法 / How-to-increase-resolution-and-build-better-complementary-relationships-with-your-bosses-and-internal-stakeholders
madoxten
13
7.4k
Text-to-SQLの評価データセットを作って最新LLMモデルの性能評価をしてみた
gotalab555
3
770
kubellが挑むBPaaSにおける、人とAIエージェントによるサービス開発の最前線と技術展望
kubell_hr
0
260
Kotlinで学ぶ 代数的データ型
ysknsid25
5
1.1k
Grafana MCP serverでなんかし隊 / Try Grafana MCP server
kohbis
0
330
doda開発 生成AI元年宣言!自家製AIエージェントから始める生産性改革 / doda Development Declaration of the First Year of Generated AI! Productivity Reforms Starting with Home-grown AI Agents
techtekt
0
120
Cloud Native Scalability for Internal Developer Platforms
hhiroshell
2
420
マルチテナント+マルチプロダクト SaaS への AI Agent の組み込み方
kworkdev
PRO
2
300
大失敗しないための Web API 開発レシピ / A recipe for not making a big failure on WebAPI development
yokawasa
1
260
産業機械をElixirで制御する
kikuyuta
0
160
新規プロダクト開発、AIでどう変わった? #デザインエンジニアMeetup
bengo4com
0
430
讓測試不再 BB! 從 BDD 到 CI/CD, 不靠人力也能 MVP
line_developers_tw
PRO
0
110
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
910
Gamification - CAS2011
davidbonilla
81
5.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
650
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
A Tale of Four Properties
chriscoyier
159
23k
Six Lessons from altMBA
skipperchong
28
3.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
How to Ace a Technical Interview
jacobian
276
23k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Become a Pro
speakerdeck
PRO
28
5.4k
Transcript
WordPress 環境の構築に ついて考えてみた
自己紹介 • プログラムが好きですが、最近はあまり書けて いないです • PMC, ITC というオジサンが持ちそうな資格を 持っているライン管理職です •
仕事ではシステム構築以外をやらそうとするオ ジサン達が増えてきて困っています • エンジニアの化石にはなりたくないです • 40歳超えましたのでもうダメです
レジュメ • WordPressとは • WordPress構築を想像する • WordPress運用・保守を想像する
WordPress とは
WordPress とは WordPress(ワードプレス)は、オープンソースのブログ/CMS プラットフォームで、プログラム言語はPHPで開発されており、 データベースとして MySQL を利用しています。b2/cafelog とい うソフトウェアのフォーク(後継)として開発、2003年5月27日に 初版がリリースされました。GNU
General Public License (GPL)の下で配布されています。 • WORDPRESS.ORG 日本語 https://ja.wordpress.org/ • WORDPRESS.ORG https://wordpress.org/
WordPress の特徴 • PHP による動的なページ生成 • 標準添付のテンプレート等がW3Cが勧告している標準規格(ウェブ標準)に準拠し ている • 記事への複数カテゴリー設定に対応
• カスタマイズ可能で検索エンジンフレンドリーなURL • テーマによる簡単なデザインの切り替え • プラグインによる豊富な拡張機能 • WYSIWYG(ウィジウィグ: What You See Is What You Get)によるエントリ 編集 • 投稿スラッグ(ページ名のURLを好きな文字列に指定できる機能)によるパーマリ ンクURL作成 • オープンソースであり、GPL(GNU General Public License)に従い配布
テーマ • インストール後、管理画面の外観より検索して設定することが 可能で、独自のテーマや有償のテーマなどを別途アップロード して利用することも可能です
プラグイン • テーマと同様に利用することが可能で、ユーザーインタフェー スを変えるプラグインからバックアップやセキュリティ関連の プラグインなどもあります
WordPress 構築を 想像する
WordPress構築を想像する • 普通のシステム構築と近いと思うが、デザインは感覚なので、 デザインについては WordPress のシステム構築後に、お客様に確 認を取りながらのアジャイル的な形で行っているのではないか 依頼・提案 要求分析・定義 構築
開発・デザイン システムテスト 運用テスト 設計 客先 レビュー 運用・保守 フェーズ リリース OK NG
WordPress構築を想像する • 私はデザインについて想像できないので、要求分析~構築、リ リース後の運用・保守フェーズを想像してみる 依頼・提案 要求分析・定義 構築 開発・デザイン システムテスト 運用テスト
設計 客先 レビュー 運用・保守 フェーズ リリース OK NG 構築 運用保守
要求分析・定義フェーズ • お客様の要求を分析し、要件として洗い出し、実装すべき機能 や満たすべき性能を明確にしていく作業を行います 依頼・提案 要求分析・定義 構築 開発・デザイン システムテスト 運用テスト
設計 客先 レビュー 運用・保守 フェーズ リリース OK NG
要求分析・定義フェーズ • 機能要件と非機能要件があることを理解し、後にお客様と齟齬 が起きないようにする重要なフェーズです • お客様へのヒアリングから「どのようなデザインにするか?」 「どのように構築するか?」を導き出すフェーズとなります 要望 お客様はやりたいこと を想像している
要求を分析し、要件を 洗い出し定義する 要求 インタビューで 要求を確認する 要件定義書
機能要件と非機能要件 • 機能要件とは システムやソフトウェアで何ができるのかをまとめたもの。 例えば画面の表示や、ボタンを押したあとの処理の内容、帳票 や CSV 出力の形式等、機能に関するもの。 • 非機能要件とは
性能や信頼性、拡張性、運用性、セキュリティ等、システムや ソフトウェアの機能ではないが要件として求められるもの。
要件の確認(ヒアリングシート例) 会社の紹介 必要 (資料提供を行う) 不要 製品(商品)の紹介 必要 (資料提供を行う) 不要 お問い合わせ画面
必要 不要 ブログ形式のページ 必要 不要 閲覧者からのコメント 必要 不要 独自ドメイン 必要 不要 独自ドメインのSSL 必要 不要 ※問い合わせ画面へ移る際、他社ドメインの共通 SSL で行うことになります スマートフォン対応 必要 不要 ※WordPress プラグインでの対応となります 多言語対応 必要 不要 ※WordPress プラグインでの対応となります SEO対応 必要 不要 ソーシャルメディア連携 Facebook Twitter mixi Google+ はてなブックマーク 不要
要件の確認(ヒアリングシート例) 記事の更新 自社で行う 弊社に依頼する 業者に別途依頼する 本体とプラグインの更新 自社で行う 弊社に依頼する 業者に別途依頼する デザイン刷新のタイミング
例. 予定していない、季節やイベントに合わせて検討している バックアップのタイミング 例. 毎日1回 3:00 or 毎週土曜日 3:00 など バックアップの世代管理 例. 7 世代管理 可用性 サーバーが高負荷な時には接続できなくてもよい メディアで紹介された時等、高負荷に耐えられる構成にしたい 信頼性 サーバーメンテナンスや障害時には、速やかに復旧して欲しい サーバーメンテナンスや障害時にも停止時間はできるだけなくして欲しい データセンター障害時でも停止時間はなくして欲しい アクセスログレポート 必要 不要
設計フェーズ • お客様と合意した要件から、それを実現するための設計を行い ます 依頼・提案 要求分析・定義 構築 開発・デザイン システムテスト 運用テスト
設計 客先 レビュー 運用・保守 フェーズ リリース OK NG
設計フェーズ • 構築の容易性だけではなく、障害時のリカバリー設計や、メン テナンス性が高い設計を費用対効果も鑑みながら検討します 問い合わせ画面 は必要 24時間365日の 動作は必要? アクセスログの レポートが必要
だったな 必要十分でないと契約違反ともなり、 オーバースペック過ぎると高コストになる 予算感…
設計フェーズ • WordPress の構築で重要なのは、構築するサーバーの選択ではな いでしょうか。構築するサーバーには次の配置モデルがあると 考えられます。 • お客様組織内のサーバー(オンプレミス) • ハウジング
• VPS • レンタルサーバー(共用サーバー) • クラウド • IaaS • SaaS • PaaS
配置モデルの俯瞰図 VPS IaaS PaaS SaaS ハウジング On- Premises ファシリティ ハードウェア
OS ミドルウェア セキュリティ WordPress 運用 仮想化 レンタル サーバー ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 利用者が 管理 プロバイダ が管理 利用者が 管理 運用・保守・管理の負担 高 低 自由度 高 低
オンプレミスとハウジング ハウジング On- Premises ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress
運用 仮想化 ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 • メリット • その組織の思うままのサーバー構成や、ソフトウェアのセット アップをすることができる • データのある場所がわかり、専用サーバーなのでデータに対し ての安心感がある • デメリット • 調達に時間がかかる • ある程度の負荷時にも耐えられるサーバーを購入すると、余剰 リソースにもコストが発生する • リソースの追加に時間とコストがかかる • オンプレミスでは組織で運用を行う必要があるため、場所(固定 資産)や光熱費が必要 • オンプレミスとハウジング双方ともハードウェア(有形固定資産) が必要 • ハードウェアやソフトウェアのメンテナンス、故障やバグの対 応、バックアップ・リストア計画と実施、災害対策など様々な 場面で保守運用が必要となり、その人員も必要 • パブリックに配置するサーバーを運用するので、高度なネット ワークやセキュリティの知識が必要 WordPress でサイトを構築するのには不向き
VPS IaaS ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化
ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 VPSとIaaS • メリット • その組織の思うままのソフトウェアのセットアップをすること ができる • OSやミドルウェアのチューニングが可能 • 仮想化により論理的に専用環境 • 調達やリソースの追加が素早く行える • プロバイダによっては、バックアップやセキュリティ・障害対 策がプランとして用意されている • デメリット • ソフトウェアのメンテナンス、バグの対応、バックアップ・リ ストア計画と実施、災害対策など様々な場面で保守運用が必要 • パブリックに配置するサーバーを運用するので、高度なネット ワークやセキュリティの知識が必要 • 保守運用のコストは、オンプレミスとあまり変わらない 共有サーバーでは要件にあわず、 PaaSでは費用対効果が薄いサイトに向いている
PaaS ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 PaaS
• メリット • 調達やリソースの追加が一瞬で行える • OSやミドルウェアのセキュリティを意識する必要がない • 仮想化により論理的に専用環境 • プロバイダによっては、バックアップや障害対策、スケールア ウトがプランとして用意されているため容易に行える • プロバイダによっては WordPress の環境が用意されている • デメリット • 用意されているプラットフォーム上で動作するソフトウェアで ないといけないため、PHP と MySQL が動作する PaaS を選定 する必要がある • サービス単体で見ると高価なことが多い • ソフトウェアのメンテナンス、バグの対応、バックアップ・リ ストア計画と実施などで保守運用が必要 高負荷時や障害時にも安定した運用を行いたいサイトに向いている
SaaS ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化 SaaS
• メリット • 安価であることが多い • 調達やリソースの追加が素早く行える • OSやミドルウェア、WordPress のセキュリティを意識する必 要がない • バックアップ・リストア計画など、保守運用の必要がない • WordPress の環境が用意されている • デメリット • できることが限られていて、オリジナリティのあるサイトは作 りにくい • 1 契約 1 サイトのみ • 共有サーバーの制限がある • 転送量が制限されていることが多い • 他のユーザーによりパフォーマンスに影響がでることがある • プロバイダによってはサーバーが日本にない • プロバイダが SLA を公開していないことがある 今すぐ始めたいサイトに向いている
レンタル サーバー ファシリティ ハードウェア OS ミドルウェア セキュリティ WordPress 運用 仮想化
レンタルサーバー • メリット • 安価であることが多い • 調達やリソースの追加が素早く行える • OSやミドルウェアのセキュリティを意識する必要がない • プロバイダによっては WordPress の環境が用意されている • デメリット • 用意されているプラットフォーム上で動作するソフトウェアで ないといけないため、PHP と MySQL が動作するレンタルサー バーを選定する必要がある • 共有サーバーの制限がある • 負荷をかけるアプリケーションが制限されていることがある • 他のユーザーの処理によりパフォーマンスに影響がでることがある • 他のユーザーのアプリケーション脆弱性により影響がでることがある • ソフトウェアのメンテナンス、バグの対応、バックアップ・リ ストア計画と実施などで保守運用が必要 • プロバイダによってはサーバーが日本にない • プロバイダが SLA を公開していないことがある 安価で始めたいサイトに向いている
レンタルサーバー についてもう少し
レンタルサーバーについて Web デザインを請け負ってるデザイナーさん、サイト構築を考え ている中小企業さん、個人での利用で使えそうなのが、次の理由 でレンタルサーバーだと考える。 • 共有サーバーだが安価で利用できる • サイト以外の管理をプロバイダに任せられる •
WordPress が用意されているところを選べる(動作確認済み) • Web 以外にもよく使われるメールサーバー等が用意されていることが多い • セキュリティツール(WAF や改竄検知)がプランで用意されていることがある サーバーの構築・運用・保守の高い技術力が必要なく WordPress の構築・運用だけに専念できる
レンタルサーバーの選択 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 を構築するレンタルサーバーを選ぶときの視点を私なりにまとめてみました。
配置モデルからの選択 一般の企業やデザイナーさんが使うことを考えると、Azure App Service のようなクラウド(PaaS)か、レンタルサーバーの二択で はないでしょうか。 • クラウド 予測できない大量のアクセス、耐障害性などをスケールアウトやレプリケー ション、複数リージョンへの自動バックアップなど、サイトの安定・安全な運用
を行いたい企業向け。 ソースコードの連携を行えば、GitHub や Dropbox に更新がかかるとサイト に反映するといった使い方や、ステージング環境を簡単に作れ、本番環境とのス イッチングをクリックひとつで出来るため、デプロイや検証も素早く安全に行え る。
クラウドを使うモデル 閲 覧 負荷分散やスケール 西日本 東日本 別リージョンへの レプリケーション 複製 バックアップ
参考: http://azure.microsoft.com/ja-jp/services/app-service/web/ http://azure.microsoft.com/ja-jp/services/storage/
配置モデルからの選択 レンタルサーバーで提供するには、2つのパターンがある。 • 企業が直接レンタルサーバーを契約 企業がレンタルサーバーを借り、サイトの構築をデザイナーなどに外部委託 するパターン。レンタルサーバーの機能を活用し、独自ドメインを使ったメール サーバー運用なども可能。 A社 データセンター A社用環境
B社用環境 C社用環境 閲覧 事業やグループ会社ごとのサイトを複数動作させることができる
配置モデルからの選択 • 企業やデザイナーがレンタルサーバーを契約して、複 数の企業のサイトを構築するパターン 契約したレンタルサーバー内で複数企業のサイトを構築し、各企業は利用料と 保守料を含めた料金をレンタルサーバーを契約した企業やデザイナーに支払いま す。安価で運用することはできますが、オペレーションミスやレンタルサーバー の障害のリスクは比較的大きいと考えます。 データセンター 閲覧
企業やデザイナーが構築と運用を付加価値として各企業に提供する デザイナー B社用環境 C社用環境 企業 企業 企業 企業 企業 企業
WordPressって脆弱性 多いよね?
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
WordPress の保守性を上げ、 信頼性を上げるために • 必要十分のプラグインのみインストールして使う • 余分に入れるとアップデートと検証の手間がかかります • 余分に入れると脆弱性が発見されるリスクも上がります •
セキュリティ系のプラグインは導入する • 導入環境やプラグインは把握する • PHP や MySQL のバージョン等の導入環境、実装に使ったプラグインな ど、統一したほうが検証の手間が省けます • WordPress の自動アップデートは使わない • 未検証でアップデートを行うのは危険です
WordPress の保守性を上げ、 信頼性を上げるために • WordPress 本体、プラグイン、テーマのアップデートを怠らない • 特に独自導入のプラグインやテーマは気をつける • 公式サイトからダウンロードしていないテーマはチェックする
• 一般配布されている WordPress テーマの中には、マルウェアかそれに近 いコードが含まれている可能性があります • プラグインを使ってチェックを行う方法があるようです • アップデート後、プラグインの動作検証を怠らない • アップデート後にバックグラウンドで動くプラグインが動かなくなる と気づきにくい
構築フェーズ • 設計した内容を実際に構築していくフェーズです • 構築するだけなのですーっと過ぎ去ります 依頼・提案 要求分析・定義 構築 開発・デザイン システムテスト
運用テスト 設計 客先 レビュー 運用・保守 フェーズ リリース OK NG
構築フェーズ • 実演を見せられるといいな 1. Microsoft Azure に WordPress を構築 2.
テーマのインストール 3. プラグインのインストール 4. バックアップの設定 5. リストア試験
WordPress 運用・保守を 想像する
運用・保守で検討すること • WordPress 本体やプラグイン、テーマの素早い更新 • ステージング環境での検証 • 導入プラグインごとの確認方法を確立する • 定期的なバックアップ・リストア試験
• クラウド環境以外では、バックアップを別プロバイダに退避させるこ とも検討する • WordPress は頻繁にバージョンが上がるので、障害対応の訓練も兼ね て定期的に取られたバックアップからリストアを行う • 定期的な脆弱性チェック
構築フェーズ • 実演を見せられるといいな 1. Microsoft Azure に WordPress を構築 2.
テーマのインストール 3. プラグインのインストール 4. バックアップの設定 5. ステージングの作成と切り替え 6. 脆弱性チェック 7. スケールアウト
さいごに
さいごに 本資料は、実際に仕事で WordPress を構築・運用をしたことが ないおじさんが、もし仕事で WordPress の環境を構築することに なったら、どう考えるのかというシュミレーションに近いもので す。 未熟な部分も多いでしょうが、何か気づいた点がございました
ら、優しくコメントしていただけたら嬉しいです。
終盤手抜きでごめん