131
  2018年03月18日    

Shopifyサーバーがなぜ落ちないか

Shopifyのサーバーはなぜ落ちたり遅くなったりしないのか、他のECカートはどういうアーキテクチャなのかについて、Shopify社シニアプロダクトエンジニアリングリーダーSimon Eskildsen氏のカンファレンスでの解説から学んだことを踏まえ、紹介します。

Flagship LLC

「うるさい隣人」問題

Saasサービスはそのアーキテクチャとビジネスモデル上、複数アカウントが一つの共有サーバーに格納されることが大半です。
その結果としていわゆる「うるさい隣人 (Noisy Neighbours)」問題、つまりアクセスの多い他のアカウントの負荷を、同じ共有サーバーに入っている他アカウントも影響を受けて表示が遅くなったりする問題が生じます。

共有サーバーの場合、ひとつのサーバーを数百のショップ様が共有しているため、トラフィックが集中した場合、アクセス困難などのパフォーマンス低下を招く場合があります。その結果、購入確度の高いユーザーを離脱させてしまうことは、容易に考えられます。

レスポンスタイム

とはいえサーバーのレスポンスタイム(応答までにかかる時間)が完全に一定というわけではなく、忙しさに応じて波があり、日次、週次、月次で、Storefront(サイト)、Admin(管理画面)、APIそれぞれのレスポンスタイムを確認できます。

専用サーバーのメリットと制約

そこで、よくあるパターンが、規模の大きいアカウントには「専用サーバープラン」を提供し、「うるさい隣人」の影響を受けないようにする手法です。
サーバーリソースが占有できると共有サーバーとは異なり「うるさい隣人」の影響を想定する必要がなく、もちろんサーバー自体の許容量にはよりますが負荷に対する許容度が高まります。

とはいえ、負荷に応じたオートスケール機能がついていないとその許容量までしか耐えられず、またSaaSとしてもコストが色々と増えるので、より高額な月額利用料が請求されます。

Shopifyのサーバーキャパシティ

Shopifyは、ピーク時実績として1分間で10,149受注を障害なく耐えるインフラで構成されています。
出典: https://www.shopify.com/plus

エンジニアとして、それに耐えうるインフラ構成を考えることはともかく、それにかかるコストにはそれ以上にゾッとします・・。

ともかく、Shopifyを使っている以上、サーバーパフォーマンスに関して心配はなさそうです。

Poddingアーキテクチャ

一体どうやってShopifyは、SaaSでありながらそんなスケール感の負荷耐性を持っているのかについて興味を持って調べたところ、もちろん色々な要素がありましたが、Poddingアーキテクチャが非常に分かりやすかったので紹介します。

複数アカウントが入ったいわゆる共有サーバーアーキテクチャを、Shopify社ではPoddingアーキテクチャという新しいコンセプト化しました。

アプリケーション層とデータ層にはポッド(pod)というコンセプトも導入した。ポッドは完全に独立したShopifyインスタンスで、多数のショップを格納することができる。ポッド間およびショップ間のコミュニケーションは不可能なように設計されている。顧客間の分離が重要であるからだ – “ショップ隔離の原則 – ショップはすべて、互いに隔離されていなければならない。”

そして、それぞれのPodには負荷許容量の上限がありますから、あるアカウントの負荷が大きくなったりなどで調整が必要な場合、Podの調整役であるPod BalancerがPodが容量越えをしないようアカウントのリロケーションを行います。
アクティブなストア数や負荷が増えるにつれて、Podの新規作成自体も行われていますので、別の角度から問題が起きない限りShopifyストアが負荷過多で落ちたりすることはないでしょう。

詳しくは下記のセッション動画よりご覧いただけます。

Shopifyの凄まじいコストパフォーマンス

これだけの負荷耐性を備えるShopifyが月額$29から使えますから、凄まじいコストパフォーマンスですね。。

サーバーなどのインフラに関しては、Shopifyが管理しており、事業者としては触りようもないため、Web担当者やインフラエンジニアの人件費が全くかからないのも大変魅力です。

Shopify支援専門会社としてのポジショントークではあると思いますが、複数のサーバーを継続的に管理しながらEC支援事業を続けていくことは開発支援会社としては持続可能でないと考えた経緯もあり、サーバーがSaaSプラットフォーム側で管理されており、落ちることもない負荷耐性を持っていることに大きい魅力を感じずにいられません。

他のSaaSプラットフォームでは、いわゆる「うるさい隣人」問題が起こりうるアーキテクチャになってる場合が大半ですので、それがEC周りのSaaSの限界の一つと言われることもありますが、Shopifyに於いてはその点もクリアしており、一層安心できますね。

Flagship LLC
Flagship LLC
フラッグシップはグローバルECとShopifyに特化した、マルチリンガルなWEBテクノロジーの会社です。基幹システ...



キュレーター紹介
Flagship LLC
Flagship LLC
フラッグシップはグローバルECとShopifyに特化した、マルチリンガルなWEBテクノロジーの会社です。基幹システムや倉庫との Shopify 連携、独自 App 開発なども...

no comments

SNSでthreedotfiveをフォローしよう!