WordPressやEC-CUBEを SQLiteを使用して 構築した場合の メリット・デメリットの話。

Pocket

sqlitedisk_ttl
4月9日の「ふくあず」で、WebApps上にEC-CUBE(SQLite)を使ったECサイト構築を試したことを話したのですが、そのときに「SQLiteを採用した場合、スケールアウトがうまくいかないのではないか?」という質問をいただきました。
スケールアウトについては、以前このような記事を書いています。

Azure WebSitesにWordPressを1,000サイト詰め放題して「スケールアウト」してみた話。
https://zuvuyalink.net/nrjlog/archives/1796

私がキチンと理解して無かったため、質問をいただいたときにうまく説明できず…すみませんでした!
なので、改めて記事としてまとめ直してみました。

SQLiteを使ったCMSサイトをスケールアウトしてみると?

今回の質問の意図ですが、「スケールアウトして2インスタンスにした場合、同じものが2つに増えるからDBも2つに増えてしまって正常に動かないのでは?」ということでした。
確かに、スケールアウトで「単純に数が増えるだけ」であればDBの不整合が起きそうです。
スケールアウトについては、以前以下のような図解をしていました。
sqlitedisk001
図中にも記載があるのですが「ディスクは共有されて」います。
Azure WebAppsの場合、この「共有ディスク」の部分にWordPress(CMS)やSQLite(DB)が入る形になります。
ちなみに「共有ディスク」とはwwwrootとのこと。(kuduで見た場合Dドライブそのもの)
sqlitedisk002
つまり、WebAppsはスケールアウトするとインスタンスは増えるけれど「共有ディスク」は1つのまま(CMSやDBが物理的に増えるわけではない)なのですよね。

参考させていただきました
https://david9142.wordpress.com/2012/06/

というわけで、SQLiteを採用する場合のメリット・デメリットをまとめてみます。

SQLiteを使うメリット

以前もメリットについては書いたことがあるのですが、もう一度まとめるとこのような感じ。

  • 小~中規模のサイト運営向き
  • データベースに関する専門知識がいらない
  • SQLiteはファイルなのでサーバ不要
  • 完全バックアップデータの中に含まれる(何もしなくていい)
  • 復旧したいときはFTPで該当ファイルをアップロードするだけ
  • 仮想マシンを立てたりする必要がないので費用面が抑えられる

このように、小~中規模のサイトだったり、DBについての知識が無かったりするWeb制作者にはおすすめな構成ですね。

SQLiteを使うデメリット

SQLiteを採用した場合のデメリットは以下のような内容になります。

  • 大規模サイトには不向き
  • スケールアウトしても共有ディスク自体は速度が出ない
  • ファイルを使っているので書き込みが重複した場合などロックがかかる

SQLiteを採用すると手軽にCMSサイトを初められたり、Azure WebAppsの各種便利機能を使ったりできますが、規模が大きくなればなるほど共有ディスクの弱点や、ファイル形式のDBのSQLiteの弱点が目立つようになってきます。
共有ディスクはそんなに性能が出ません。そこでStorageから直接画像を配信する事で性能を稼ぐという構成としているわけです。
ですので、使いドコロはキチンと見極めないといけないですね。

最後に

今回の件について、@kazumihirose さんに技術指導いただきました。
毎度のごとく本当にありがとうございました!

Web制作では、単価があまり高くない案件が結構多いです。
Azureで仮想マシンを使ったりMySQLを使うと維持費が高くなってしまうところがあるので、「まずは初めてみよう」なスモールスタートに、WebAppsとSQLiteを使ったサイト構築などはいいのかな?と思います。
案件によってはレンタルサーバーを採用した方がいい場合もありますし、クライアントの要件に添ってベストと思われる方法を提案できることが大切なのかな?と。
ただ、Azure WebAppsは制作者がラクになる便利機能がホントに多いので、費用面で折り合いがつくなら是非使ってみてもらいたいな!とは思っています。

2 thoughts on “WordPressやEC-CUBEを SQLiteを使用して 構築した場合の メリット・デメリットの話。

  1. 勉強になりました。

    興味深い試みなので、サイトを通じて経過など情報発信していただけると嬉しいです。

    • コメントありがとうございます!
      SQLiteを使用したWordPressサイトの構築方法など他にも記事がありますので、ぜひそちらもご覧いただければと。
      これからも情報発信していきますので、よろしくお願いします~!

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください