オンプレミスからクラウドへ移行。さらに全面マイクロサービス化にまで踏み切った背景は?――ショップエアライン・小松清二郎さん

BEENOSグループに属する株式会社ショップエアラインは、2007年より日本最大級の海外ショッピングサイト「セカイモン」を運営しています。セカイモンは、世界的マーケットプレイス「eBay(イーベイ)」の公式日本語サイト。

日本のユーザーが商品を購入すると出品者とのやり取りから通関・配送まですべてを代行しています。EUやUSを中心とした倉庫で商品を管理・検品を行うことで、確かな商品だけを日本に届けるサービスです。
Warehouse(倉庫)管理やカスタマーサポート、フロントエンドのエンジニア累計16名で運用されている同サービス。エンジニアの約8割は海外国籍で、ドイツ、フランス、イギリス、ニュージーランド、香港、ドミニカ、メキシコなど国際色豊かな組織です。

そんなセカイモンは10年以上オンプレミス環境下にあり、技術的負債や運用コストの問題を抱えていました。そんな中、2017年にクラウドへの移行を決定。システムをフルスクラッチする大規模な移行をどのように実現し、運用しているのか。
クラウド利用のベネフィットも含め、グループマネージャーの小松さんに詳しくお伺いしました。

お話を聞かせてくれた方
小松 清二郎 氏
株式会社ショップエアライン(BEENOSグループ)
シスステムグループ マネージャー
小松 清二郎 氏
大学卒業後、就職してSIerに。1年半勤務し、海外に出るためSAP系の会社に転職。オフショア開発側としてインドに渡る。その後は青年海外協力隊でシステム系の仕事に従事し、フィジー、スーダンなどで有償ボランティアを経験。海外経験や英語スキルを習得し、20代後半に帰国。自分の作りたいサービス開発を目的として、現在は株式会社ショップエアラインのシステムグループマネージャーを務める。

サーバの運用コストが高く、システムのブラックボックス化も進行

そもそも、オンプレミスからクラウド移行を決定したきっかけは何だったのでしょうか?

小松:まずはコストの問題がありました。保守更新だけで数十万円かかり、当時のレプリケーション構成を保とうとするとさらに費用がかさむような状態でしたね。 また、当時は僕がオンプレミスのシステム内容を一番知っている立場の人間だったにも関わらず、あまりにブラックボックスと化している部分が多かったのも大きな問題でした。それらをを排除するためにもフルスクラッチしてクラウド移行しようという流れになったのです。

サービスの一部でテスト運用を重ねながら段階的にクラウド移行を実施

クラウド移行は具体的にどのような手順で進めていきましたか?

小松:サーバは大手企業も利用しているさくらインターネットを選定しましたが、まずは運用に問題がないか自分たちで検証から始める必要がありました。仮にダウンしても代替え手段がある問い合わせ機能だけを切り出し、ミニマムで運用を開始したのが最初の手順です。
数ヶ月運用して問題が無いことを確認してから、次は商品管理機能を切り出しました。倉庫の商品は国ごとに紐付けされているのですが、まずはボリュームが少ないドイツから開始。移行期はオンプレミスとクラウド、両方の環境でサービスを運用しているような状態でした。期間としては8ヶ月ほどですね。

オンプレミスとクラウド環境が共存することによる弊害などはありませんでしたか?

小松:サイト自体が新しい部分と古い部分が両方見えている形だったので、一番気を使ったのはお客様の誘導です。新旧ページを行き来してもらう必要があったので、問い合わせやクレームが出ないかどうか、それによってパンクしてしまわないかが懸念点でした。そこで該当する時期にお問い合わせされた方は別ページに誘導するなどエンジニアはもちろんマーケティングやカスタマーサポート含めスタッフ一同が工夫した結果、結局移行に関するお問い合わせは0件でした。

さくらの専用サーバとVPSを併用しているということですが、どのように使い分けているのでしょうか?

小松:アクセス数を基準にしています。フロントは最も負荷が高いので専用サーバを置く一方、カスタマーサポートはスタッフの人数に応じたアクセス数さえ捌ければ問題ないのでVPSです。倉庫も同様に高負荷になることはないのでVPSを使用しています。アクセス数の少ない部分は安く済ませ、負荷の高い部分だけ贅沢にサーバコストをかけています。 データベースも同じ考え方でそれぞれ分けて作り変えていて、フロントはレプリケーションを3台用意して高負荷に耐えられるように強化しています。

コードレビューはどのようにされていましたか?

小松:フロントは何かミスが起きてサイトが閲覧できなくなると致命的なので、移行期も現在もGitLabのツールで厳密に行っています。承認が無いとリリースもできません。倉庫やカスタマーサポートに関しては、コードレビューを行ったのは初期段階くらいです。

(写真: 左 株式会社ショップエアライン シスステムグループ マネージャー 小松 清二郎さん
     右 BEENOS株式会社 社長室 広報 佐藤 唯さん)

改善すべき点を改善した結果、マイクロサービス的な設計に到達した

倉庫やフロントのデータベースが異なるということは、マイクロサービス化ということですね。

小松:そうですね。大きくはサーバとVPSの使い分けと同様、倉庫、カスタマーサポート、フロントエンドをそれぞれマイクロサービス化しました。システム同士はすべてAPIでやりとりします。たとえば商品の配送状況は倉庫側のシステムで管理しているので、フロントのマイページから閲覧するときはフロント側が倉庫のAPIを利用するといった形です。

マイクロサービス化に踏み切った理由はなんだったのでしょうか?

小松:現在IT業界ではマイクロサービス化が流行していますが、流行しているから実施したわけではありません。そもそものサービス自体が、分かれていないとおかしい部分が多かったのです。10年以上使い続けている古いシステムだったので、極端な話、スタッフ側のアクセスが多いとフロント側が停止してしまうなんてことがありました。つまり、最初からマイクロサービス化しようというモチベーションがあったわけではなく、必要な切り分けをしたら結果としてマイクロサービスと呼べる設計になったということです。

具体的な理由は以下でマイクロサービスでなければダウンタイムなしかつ安全に移行は不可能でした。
・上記で記載しているクラウド移行でのAPIを使用した旧と新の連携
・問い合わせシステムから販売購入システムへとサービス毎の段階的なリリース

マイクロサービス化を阻害する時間と工数の問題

マイクロサービス化したくても、どうすればいいのかわからないという企業も多いと思います。

小松:APIを駆使すればやってできないことはないと思いますが、確かに当社も移行し終えてみると、もっと上手く組めたのではと反省する部分が多いですね。たとえばAPIのリクエストが多いと止まってしまう部分も存在します。他社のサービスではどうカバーしているのか、逆に気になるほどです。

完全なマイクロサービス化は難易度が高いという声は、エンジニアの方から頻繁に耳にします。

小松:ハードルは高いですね。サービスのすべてを切り出してデータベースから完全にマイクロサービス化するのは非常に時間がかかりますし、実はあまり例が無いのではないでしょうか。一部はマイクロサービス化してもデータベースは同じというケースもよく聞きます。 というのも、1つのデータベースを用いる場合なら、すべてのサービスに対してデータをSQLで簡単に取得できます。ところがマイクロサービスは、簡単に言うとAで用いるデータをBのデータベースから取り出すためにAPIで導線をつくり、さらにSQLもつくるという工数が余計に発生するのです。その手間を組織のエンジニアに理解してもらえるかどうかも、ハードルの一つではないでしょうか。

コストも時間も節約できるクラウド移行のメリットを実感

オンプレミスからクラウド移行のメリットは、やはりコスト面が一番大きかったのでしょうか?

小松:オンプレミスの運用コストが極端に高すぎたというのもありますが、オンプレミス当時の4分の1までコストダウンできました。VPSは数千円かからないくらいなので、圧倒的です。 また、運用に際してオンプレミスは手続きも面倒で、サーバを1つ購入するにも2週間ほど時間がかかります。一方クラウドは、ほしいと思った2時間後にはサービスを開始できる。これは大きいです。

今回の移行で、得たことはかなり大きいんですね。

小松:サービスの改善もしかりですが、マイクロサービス化するに辺り、社内全体を巻き込んで、経営視点での協議を何度も行いました。システムを刷新するということは、そのシステムを使用する社内の人々の理解や協力、業務フローの変更が必要になります。会社全体を巻き込んでの大掛かりな刷新でした。
全体の流れを止めないためにも、フロントエンド、カスタマーサポートの自社システム、倉庫のシステム、それぞれをマイクロサービス化して進めたのですが、社内のメンバーの理解と協力も大きかったです。


【個人側】flexyにまず登録
オンプレミスからクラウド移行案件を受けたい方。
個人:flexyに登録

【企業側】flexyのコンサルタントに無料のお問い合わせ相談
クラウドについて相談したい企業様、詳細をヒアリングして、ご希望の方をご紹介します。 企業:お問い合わせ

この記事を書いた人
flexy編集部
flexy編集部
ハイスキルIT人材への案件紹介サービス
サーキュレーションが運営するフリーランスのエンジニアを中心としたIT人材の案件紹介サービスflexy。エンジニアに役立つコンテンツも提供しています。【flexyのサービス詳細】★求人を募集している法人様向けお仕事をしたいご登録希望の個人様向け

週1日~/リモートの案件に興味はありませんか?

週1日~/リモートの関わり方で、「開発案件」や「企業のIT化や設計のアドバザリーなどの技術顧問案件」を受けてみませんか?副業をしたい、独立して個人で仕事を受けたエンジニア・デザイナー・PM・技術顧問の皆様のお仕事探し支援サービスがあります。

flexyでご案内できる業務委託案件

React

テーマ クラウド入居者管理システムのフロントエンド開発(リモート可)
勤務日数 2-3日/週
報酬 4万円/日
必要スキル React
勤務地 東京
リモート

外部CTO、技術顧問

テーマ 技術アドバイザリーとして知見と経験を生かす
勤務日数 1日/週
報酬 10万円/日
必要スキル エンジニア組織立ち上げや統括のご経験、コードレビュー経験、技術的なアドバイスが出来る方
勤務地 東京
リモート 相談可

Go

テーマ 家族型ロボットのサーバサイド開発
勤務日数 3-4日/週
報酬 5万円/日
必要スキル Go GCP
勤務地 東京
リモート 相談可

AI

テーマ AIを活用した新規事業立ち上げの技術顧問
勤務日数 週1日〜
報酬 5万/日
必要スキル Python、AIの知見、新規事業立ち上げの経験
勤務地 東京
リモート リモートと常駐のMIX

PMポジション

テーマ 複数のプロダクトごとにPMを必要としているため急募
勤務日数 2-3日/週
報酬 5万円/日
必要スキル PMとしての経験、PHP、JavaScript
勤務地 東京
リモート リモートと常駐のMIX
個人登録

お仕事をお探しの方(無料登録)
法人の方(IT課題の相談)