WordPress開発×クラウド開発

wp-cloud-development

WEBサイトを作る場合、Wordpressが使われることは非常に多いです。クラウドや機械学習が発達したため、大きく別けると『Wordpress単体開発』と『クラウド×Wordpressなどの複合開発』の2つに分別されます。WEBサイトという枠組みを越えてシステムとの融合、データのマーケティング活用、人工知能との連携などの技術も広がっているためクラウド連携はかなり進んでいます。

この記事では、企画、コンテンツ制作、デザイン創案、プロジェクトのディレクションなど、開発費見積の数字変動幅が大きい『クリエイティブ系コスト』は考慮していません。Wordpressを中心にどの様なシステム開発が出来るのか?など、ブログ集客オンリーのイメージが大きいワードプレスで、開発手法別の開発金額、ワードプレス開発の守備範囲の広がりなどについて説明させていただきます。

WordPress単体開発

前提として、ワードプレス『テーマ』=『テンプレート』です。ワードプレス本体『コア』については、『テーマ』と別ものです。EC-CUBEやMauticなど、他のCMSでもテンプレートではなくテーマと呼ばれることもあり、CMS開発元の意向次第で呼び名は変わります。そして、CMSのデザインテーマは、phpやjavascriptやtwigなどのソースコードが組み込まれているため、シンプルなHTMLデザインテンプレートとは全く異なります。すべての開発手法において、開発者のスキルもしくは効率化のレベルがピンからキリまでありますが、IT専門外の発注主の方である場合、開発者のスキルレベルを見分けられるスキル自体が無い事も多いのではないかと思います。

ワードプレスでCSVファイルによるデータ入出力やPDF発行は、phpのオープンソースライブラリやプラグインを活用するなど、システムとして使う事も不可能ではないです。

Wordrpess単体のWEBサイト開発は、オリジナルテーマ開発、オリジナルテーマの使いまわし開発、子テーマ開発、プラグイン開発、テーマ直接カスタマイズ、GUI(Graphical User Interface:ダッシュボード操作だけ)カスタマイズ、として分類され、それぞれ開発コストが全く異なります。

オリジナルテーマ開発によるWordpress制作

WEBサイトをWordpressで作る場合、金額が高くなるフルコース制作です。企画⇒取材⇒写真撮影⇒コンテンツ制作⇒デザイン創案/画像ファイル制作⇒ソースコード設計⇒サーバーインフラ設計⇒ソースコード実装⇒ダッシュボードでコンテンツ登録⇒ダッシュボード操作マニュアル制作、さらにコミュニケーション費、デイレクション費、なども盛り込むフルコース開発プランです。イニシャルの1次開発費で税別50万円~税別100万円以上となるのが一般的です。

既製品を使わず、自社にあったWEBサイトをオーダーメードで作るコースです。カスタマイズの自由度も高く、品質の高いものが出来上がります。php設計だけではなくcss設計の巧みさ、装飾系jQueryライブラリの選定など、総合的にレベルが高くスキルバランスの良さが開発者に求められます。企画、コンテンツ制作、デザインも含むため、月間5万PV(ページビュー)など、ある程度の集客状態まで上がる事が予測されやすいです。しかし、コンテンツの専門性が低く、差別化しにくい業種の場合、コンテンツの参入障壁が低いため、ローンチ後、コンテンツのブラッシュアップを永続しなければ、競合に抜かれ、PVや検索順位は下がります。スタートの力強いダッシュの為にお金を使うかどうか。ローンチ後も人材とお金を投下し続けて、強い集客武器である状態を維持するなど、予算計画が必要なプロジェクトとなる場合も有ります。セキュリテイ対策の様々なソフトウェアアップデートを継続する為、検証/開発サーバーや監視サーバーも含めた3サーバー環境運営(お金)など、VPSやクラウドPaasがインフラに採用されます。データ分析などを検討している場合、最初からクラウド(お金)を選択する事になます。

オリジナルテーマ開発、次の3ケースと混同しない様に注意

次の3ケースと混同しやすいですが、開発費や開発日数が全く異なり、金額も目的も全く違ってきます。

少ページの小規模WEBサイトをサクサク構築するケース

WEB制作会社やエンジニア側でソースコード設計が最初から頭の中に入っている様なオリジナルテーマや機能面を絞ったシンプルなテーマを使いわましてサクサク作るケース。各種制作工程を独自に効率化して、制作に必要な人件費や工程を減らす工夫が重要視され、画像素材やコンテンツさえそろっていれば2~3日以内で素早く作られます。bootstrapが使われているテーマなど、レスポンシブウェブデザイン向けcssライブラリの活用は必須です。

20万円以内程度で制作内容がパッケージ化されている事が多いです。制作効率優先ですので、発注元の方には仕様カスタマイズなどを指定する権限はなく、すべて制作会社が決めたパッケージ内容に従って制作となります。パッケージ製品で金額が決まっていますので、仕様カスタマイズなどのご要望は追加見積となります。

2~3パターンのオリジナルテーマを使いわけているWEB制作会社などもあり、発注前にコンテンツ制作(作文と写真)を自社で出来る発注元であれば、ノウハウが凝縮されていてコスパが高いのでお勧めです。金額が低いので、ブログ機能がついていても、A4で1枚を1ページの単位として、10ページなど、制作ページ数制限や機能制限がある事が一般的です。プラグイン設定やセキュリティ設定などの工数によってページ数の制限値が異なります。集客・収益の武器に育てるためには納品後に自社でブログを書き、コンテンツを増やし続ける事が必要です。

ワードプレステーマ販売を目的としたオリジナルテーマ開発のケース

本家Wordpress.orgに登録せず、自分/自社でテーマを商用販売。TCDなどが比較的に有名。1テーマ1万円前後で販売。購入者に対し、フルコースのWordpress開発の様に手取り足取り細かいサポートはしない。代わりに、WordpressのHow toコミュニティサイトなどを独自に立ちげて購入者をフォロー、購入者相互でフォローしあってもらうなどの販売パターンです。販売価格も安いので無料サポートを求める事はナンセンスです。販売向けテーマの開発費や開発者の経験値はピンからキリまであり、テーマ更新継続は開発元の財務状況やマンパワー状況が大きく影響する。写真素材やコンテンツ文章を自分で準備してデモサイトと同じコンテンツ配置をダッシュボード操作だけで実現できます。ワードプレスの操作に慣れている人向けです。テーマ購入費+自分の労働(作業量予測が難しい、ダッシュボードの操作がわからないと長くなる)としてコストを考える必要が有ります。

本家Wordpress.orgに登録するケース

テーマの知名度を上げて、WEB制作案件の受注向けに自社/自分のブランディングやマーケティングを展開するケース。テーマは無償配布。ワードプレスのダッシュボード内で『外観』⇒『テーマ』⇒『新規追加』でLightningなどの様に無料テーマ選びで全世界のワードプレスユーザーに対して羅列表示される。Wordpress.orgが定める品質レベルが保証されているなど、テーマ選びで重要な基準の一つ。ワードプレスのサブバージョンでリリースバージョン別に公開され、開発者にはセキュリティ更新やバグ改修/保守の負担が半永久的に続きます。逆に、無料で使う側にとっては、ダッシュボード内で更新ボタン操作だけでセキュリティ脆弱性の更新も含めたアップデートを継続を手間なく出来るため、非常にお得感が高いケースです。

プラグイン開発

テーマが主にphpを含むデザイン面である事に対し、プラグインはワードプレスの機能面の拡張を目的に開発される事が多い。ワードプレスによるWEB制作の際に、複合的に用いられ、プラグイン単体の開発は、Wordpress.orgへの登録によるブランディングや集客効果や独自プラグインの販売が目的。Wordpress.org登録すると、脆弱性のアップデートなど無料対応が半永久的に続くので結構大変。開発予算や開発者スキルがピンからキリまであるので一概に金額を述べる事は難しい。

開発効率化のため、よく使う機能をオリジナルプラグイン化しているWEB制作会社などもある。

子テーマでWordpress開発

有料/無料問わず親テーマを選び、子テーマで親テーマをオーバーライド(上書き)する開発手法。親テーマの更新内容によって、デザインが突然崩れてしまうリスクが有るため、header.php、sidebar.php、footer.php、functions.phpなどページ全体に関わる部分のオーバーライドを出来るだけ避け、カスタム投稿タイプ、カスタムタクソノミー、親テーマフックへの追加など、親テーマ更新のロジック変更による影響範囲がゼロとなる開発手法が理想です。運営寿命に大きく関わる技術ポイントです。子テーマ更新を行う場合、親テーマと子テーマの差分確認でphpやLinuxのdiffコマンドなども必要で、手間が大きいためコストも高くなります。親テーマ更新は継続できますが、子テーマ更新は最初から行わない方針であることが大半です。カスタム投稿タイプを増やし過ぎてタクソノミーも複雑化し、表示速度に悪影響を及ぼしやすいので、カスタム投稿タイプやカスタムタクソノミーは最小限にする事がお勧めです。

(親)テーマ選びのポイント

  • bootstrapやfoundationやSimple Gridなどのレスポンシブウェブデザイン向け汎用cssライブラリを使っているか
  • 更新配布は将来も維持されるか
  • git hubで開発が続いているか(修正してほしい部分のソースコードを作って提案することが出来る)
  • WordPress.org本家登録がされていて手軽に更新できるか
  • 日本語対応しているテーマか
  • カスタマイズ向けにphpフックがうまく盛り込まれているか
  • phpは可読性が高い書き方で書かれているか
  • javascript(jQuery、ajax)が複雑すぎないか(再開発コストが上がる)
  • データ収集など、悪意のあるjavascriptやphpが埋め込まれていないか
  • 表示速度や挙動が遅くないか

スキルや経験が無いとわからない、親テーマ選びで気を付けるべきポイントは多く、ポイントを守ると親テーマの選択肢は絞られます。カスタマイズの柔軟性はかなり高くなりますが、php読み込み順序の関係などでオーバーライド(上書き)出来ない機能もあるため、子テーマ開発は万能ではないです。開発者には、phpを解読して設計する能力が求められます。比較的に開発速度を上げやすく、技術がある開発者であればコストパフォーマンスは高い。jQueryやphpフレームワークなどをヘビーに活用している(親)テーマもあり、日本向け再開発の場合、開発会社側でテーマを絞り込み、効率化、解読コストを下げる工夫が必要です。

ワードプレス運用時の挙動の軽さもかなり大切です。WEBサイトへコンテンツを見に来る訪問者だけでなく、運営チーム側がコンテンツをエディタに投稿するとき、挙動が遅いワードプレスは投稿作業者から嫌われます。コンテンツ制作発注単価が安い、コンテンツ投稿しにくい、運営チームメンバーの時間やモチベーションを奪う。WEBによるビジネス成長に大きく影響します。表示速度チューニングやクラウドによる自由なスケーリングはお金か技術です。

テーマ直接カスタマイズでWordpress開発

テーマ更新を行うとカスタマイズしたphpなどのソースコードが全て消えてしまいます。そのため、テーマ更新が放置され、セキュリティ脆弱性も放置されてしまう可能性があります。テーマ更新を行う場合、Linuxのdiffコマンド等を使い、テーマ配布元がリリースした最新版ファイルとカスタマイズしたファイルを1つずつ目視比較しながら更新、という金額が高い作業が発生します。テーマ更新の継続は現実的ではないです。phpスキル的に初級者が多い手法で、gitなどソースコードバージョン管理も利用されず、コピペのphpプログラムでfunctions.phpが肥大し、開発がカオスになりやすい。エスケープなど、phpレベルのセキュリティ対策が抜けている事も多い。

開発者自身も自信がなかったり見積能力が無いため、5万円~15万円など、労働量計算度外視の実験台価格で制作を請け負うケース。外見のデザインは良くても運営面で使い勝手が悪かったり、バグが多い、クラッキング(ハッキング)被害に遭いやすい、発注側にも見極めスキルが無いなど、ビジネス的なwin-win-win要素が少ないため、プロジェクトが途中で破綻する可能性も上がりやすく、運営寿命も短くなりがちです。ページビューが月5万や月10万を越えてきたり、PVが増えるにつれてセキュリティを含めたあらゆる技術問題が表面化、開発者のスキル的には解決できない。

技術者にしっかりお金を払って、個人のWEBサイトオーナーがコンテンツ作文による集客だけに専念することをお勧めしたいケース。教えてコミュニケーションの要求が無限肥大しやすく、10~5万円などでルール無く制作を受けると即赤字、個人では予算がないため、予算も技術もいろいろな壁が高くwin-win-winが難しい。

ダッシュボード(GUI)操作だけでWordpress開発

プラグインの流行り廃り考慮を出来ていない事も多く、テーマやプラグインの干渉によるバグなどが発生して放置されがちです。SEO目的でキャッシュ系プラグインを入れてみても、使い方やソースコード面も含めて内部ロジックがわからない。問題を解決できずに放置、キャッシュパージ(削除)もされず、ワードプレスの実行速度がさらに低下するなどの悪循環になりやすい。phpキャッシュ、データベースキャッシュ、ブラウザキャッシュなど、各種キャッシュの内部ロジックを解読できるエンジニアでなければ、キャッシュを自由に使いこなす事は出来ないです。

プラグインを多用し過ぎて、phpの実行速度やデータベースへのクエリーが増えすぎて表示速度が低下し、集客面の機会損失や致命的な表示速度ボトルネックになる可能性が高い。表示速度対策の重要性や難しさを知らない。プラグインの試行錯誤により無駄なDBテーブルが増えがちです。グーグル検索で『ワードプレス 無料 簡単』の類の大量の記事を見て、ワードプレスやphpの経験値が無い人のケース。制作費5万円以下など、ビジネス的にwin-win-win要素が少ない。プロジェクトが途中で破綻する可能性も上がりやすく、運営寿命も短くなりがちです。

画像素材の装飾予算も捻出できないため、見栄え良化が難しい、画像が粗くなりがちです。スマホ対応のcssメディアクエリやcssライブラリ、php/jsユーザーエージェントなどがわからないため、スマートなスマホ対応が出来ない。ページビューが月5万や月10万を越えてきたり、PVが増えるにつれてセキュリティを含めたあらゆる技術問題が表面化、開発者のスキル的には解決できない。

技術者にしっかりお金を払って、個人のWEBサイトオーナーがコンテンツ作文による集客だけに専念することをお勧めしたいケース。教えてコミュニケーションの要求が無限肥大しやすく、4~5万円などでルール無く制作を受けると即赤字、個人では予算がないため、予算も技術もいろいろな壁が高くwin-win-winが難しい。

各種ソフトウェアの更新は、なぜ必要なのか?

世界中で、毎日セキュリティ脆弱性が発見され続け、おそらく、未来でも状況は99.999%変わらないです。セキュリティ脆弱性の放置=ハッキング被害拡大です。更新は永続コストです。ビジネスの信用確保の根底です。

クラウド×Wordpressの複合開発

弊社として、今後、伸ばしていく分野です。サーバー管理レス機能開発にAWS Lambda、AWS Lambdaで作った機能のAPI化にAPI Gateway、SNS経由のユーザー認証にAWS Cognito等を活用してWordpressの枠を超えたWEB開発が可能です。AMAZON AWSやMicorosoft Azureなどのクラウドサービスを活用します。

Kintoneのバックエンド活用

クライアント企業の一般顧客のユーザーインターフェイスにWordpress、社内スタッフが使う各種のシステムにはKintoneという使い方が出来ます。Kintone REST APIは同時アクセス制限10、1日1アプリの呼出し制限が1万回などの制限があり、同一ブラウザ上のクロスドメインやCORS(Cross Origin Resource Sharing)やJSONPも禁止しています。そのため、サーバーを建ててAPIを実行する必要が有ります。AWS LambdaとAWS API Gateway(キャッシュ機能が有る)でカバーすることが出来ます。セキュリティの為に、API GatewayでAPIキー認証も行います。ご参考として、AWS Lambdaは、AzureではAzure Functionsです。

WordPressの役割をフロントインターフェイスに

商品在庫などを越境でグローバルに展開する様なシステムを構築する場合、Kintoneでデータベース設計や社内スタッフが使う管理画面を設計してしまえば、あとはWordpressフロントエンドのWEBサイトを構築し、Kintone REST APIをってWordpressのWEBサイトに表示させることが出来ます。一般顧客が商品情報などにたどり着くまでのロジックにAPIを活用した開発だけに開発の人的リソースを集中できるところが良いです。フロントエンドデザインとしてワードプレスを使い、いわゆるサーバーレスアーキテクチャーとして、その他の部分はすべてAWSやAzureなどのクラウドやKintoneに委ねる開発です。バグ発生を抑えやすく、サーバー保守等の問題も起こりにくいため、純粋にプロダクト開発に集中出来るので品質を上げやすいです。

商品在庫のデータ管理項目を運用中に改善したいなどの要望に対し、Kintoneを使えば柔軟にいつでも素早く対応できる事がシステム開発としての大きなメリットです。

負荷が大きかったり大規模なシステムや絞り込みKINTONEのAPIを活用意して検索機能をワードプレスに表示させるなどがこの開発の弱点です。大規模システムのプロトタイプ開発では、DB設計をクライアントも一緒に考えられるためお勧めです。

柔軟にデータハンドリングするならクラウドでDBクラスタリング

WordPress開発はMySQLのDBパフォーマンスがボトルネックになりやすい!という事は比較的に有名です。再利用性が低い、品質が低いphpのソースコードなども原因です。Wordpressに限らず、MySQLはパフォーマンスのボトルネックになりやすいです。

MariaDB Galera Clusterを活用したデータべースの独自クラスタリング、もしくはAWS RedShiftやAzure SQL Data Warehouseなどのクラウド各社が提供するDataWareHouseを活用する事で、ペタバイトクラスのデータまで取り扱う事が可能です。DataWareHouseであれば、マネージドクラスタリングでサーバー管理などの手間が減り、BIツール/人工知能/機械学習との連携を想定した開発などに開発人材を集中しやすい環境となります。また、ダイナミックかつ軽快なデータベースは、BIツール/人工知能/機械学習の導入を行う上で画像や動画ともに基礎データとなるため、非常に大切なパートです。

セキュリティ対策の侵入テストにはお金がかかる

TCP SSH22番やTCP HTTPS443番など、通信プロトコル別のポートスキャン、さらにphp(SQL含む)やjavascriptのソースコードレベルでペネトレーションテスト(侵入テスト)を行ってセキュリティを改善していく場合、発見した脆弱性はすべてソースコードを書き直す、サーバーやネットワークの見直しまで迫られ、最終的にインフラから根こそぎ見直し、インフラ引越!という膨大な作業が発生し数百万円を余裕で越える立派なプロジェクトになってしまう事も現実です。ITリテラシーレベルが高い企業 や 予算が潤沢でコンプライアンス等に厳しい一部上場企業など、対応できる企業は限られてくるのが現実です。世の中、何でもお金ですが、例外なく、セキュリティ対策もお金です。

侵入テストではないセキュリティ対策でセキュリティコストを抑える

Linuxサーバーの場合、汎用的なFW(Firewall)のiptables/firewalldの設定による通信ポートの基本的な出入り口管理、WAF(Web Application Firewall)の導入によるphpやCMSやSQLなどのプログラム稼動に対するセキュリティ対策、IDS/IPS(Intrusion Detection System/Intrusion Prevention System:侵入検知/侵入防御)の導入によるサーバー内の各種アプリケーション稼動に対するセキュリティ、サーバー内の各種アプリケーション更新(yum update)の永続(事前検証)、Wordpressのコア/親テーマ/子テーマ/プラグイン更新の永続(事前検証)、専有サーバーへの変更、サーバーで稼働させるアプリケーションの選定管理などを行う事になります。侵入テストはしない、でも、IT業界で常識的なセキュリティ対策について正しい方法で全て行うという方法でコスト膨張を押さえるしかありません。セキュリティ商品の選別コンサルを探すか、自分でWAFやIDS/IPSの徹底比較をする事になります。

WEBサイトの社会的な影響度の大きさ や 予算を加味しながら、SELinuxの有効化、PCI DSSの順守範囲決め、データ通信のフル暗号化なども導入する事になります。

最近は、開発段階からAIを使った静的解析などセキュリティ精度向上に向けた開発から運用までの選択肢が非常に広がっています。

クラウドPaasという選択

クラウドPaas(Platform as a Service)を選ぶ事で、サーバー内アプリケーション更新(yum update)の継続やデータベースの取り回し向上、スケーリングや冗長化の確保、クラウド内の他の分析サービスや人工知能との連携など、抜け落ちリスクがある管理作業の削減により稼動基盤の安定性強化につながり、WEB/スマホなどのアプリケーション開発にエンジニア人的リソースを集中する事ができます。フルスクラッチ開発やIaas開発に比べるとインフラやバージョン管理などの各種相性問題による検証など時間を奪われやすいエンジニアの仕事が減り、他のクラウドサービスとの連携も容易になるため、積極的な事業展開を行いやすくなります。お勧めです。

アクセスログやセキュリティログなどのログ監視

予算が無い場合、こちらも行わない事がほとんど。未知の新種の攻撃などを見極めるなど、新種のトラブルメーカーを発見駆除したり、ネットワークのトラブルなどを探して対策を打つなども可能になる。クラウドの管理コンソールなどで稼働状態やサーバーの各コンポーネントのパフォーマンス状況などは見られるので、そのレベルで良しとしてしまう事が現実的には多い。