全2934文字
PR

 必要なときだけクラウド上のサーバーを起動させる「サーバーレスアーキテクチャー」。サーバーの運用や管理が不要になるため、システム開発やサービス運用のコスト削減に有効な手段として注目されている。

 このサーバーレスアーキテクチャーの特徴を生かし、クレジットカード決済システムを新たに構築したのがミクシィだ。初のカード決済基盤を約半年間の短期間で作り上げ、2019年10月に稼働させた。

400個以上の要件

 新規構築に踏み切った理由について、プロジェクトメンバーであるID・ペイメント事業部システムグループの中野隆介氏は「ペイメント関連事業の成長を見越してのこと」と説明する。自社で決済システムの基盤を構築しておけば、これから開発する新サービスで決済手段が必要となった際に、他社の決済代行サービスを使わなくて済む。自社開発ならば変更しやすく、自社サービスと連携しやすいメリットもある。

 しかしクレジットカード決済システムの開発は同社では初めてのこと。厳しい要件が求められる分野のシステムであり、当然一筋縄ではいかなかった。

 厳しさの一例を挙げると、カード決済システムはカード情報を保護するためのセキュリティー基準「PCI DSS(Payment Card Industry Data Security Standard)」を満たす必要がある。満たすべき項目は400個以上だ。例えば「カード番号を取り扱う場所・目的・保護の手法を明確に管理する」「ログインパスワードを90日に1度変更する」「不正なファイルが設置されていないかを調査する」などがある。

 これに対しプロジェクトメンバーは10人弱という陣容。2018年10月に企画に着手したが、限られた人数で全項目を過不足なく満たす決済基盤を構築するにはどうすればいいのか、迷いがあった。ID・ペイメント事業部システムグループの橋本広大氏は「開発当初、外部のパッケージソフトを使うことも考えた」と振り返る。

 パッケージソフトを使うと基盤構築プロジェクトの安定度は高まる。ただ、稼働後にソフト費用がかかるうえに、何よりビジネスの変化に追従したスピード感のあるサービス開発をしにくくなる。自社でコントロールできないパッケージソフトが開発スピードを下げるのは避けたい――。こう考え、プロジェクトチームは自社開発を決めた。

PCI DSS準拠の「AWS Fargate」を採用

 開発は2019年4月にスタートした。自社開発に当たり、中野氏らが目を付けたのがサーバーレスアーキテクチャーだった。

 理由は「開発・運用の負荷が減らせる」(中野氏)だけではない。米アマゾン・ウェブ・サービス(Amazon Web Services)のクラウドサービス「Amazon Web Services(AWS)」にサーバーレスアーキテクチャーのメニューがあり、さらに「PCI DSSに準拠していた」(同)からだ。

 それがサーバーレスでコンテナを実行できる「AWS Fargate」だった。中野氏らはAWS Fargateを採用し、起動するコンテナをリードオンリー(書き込み不可)に設定して使うように方針を立てた。これでコンテナの内容は変更できなくなり、第三者が不正なファイルを設置する心配はなくなる。コンテナの起動前にウイルススキャンをしておけばセキュリティーも一定レベル担保できる。

クレジットカード決済システムの構成
クレジットカード決済システムの構成
(出所:ミクシィ)
[画像のクリックで拡大表示]

 さらに立ち上げるコンテナを外部からログインできない状態にするようにした。これでログインアカウントの管理が要らなくなる。ピーク時は自動でコンテナ数が増えるのでスケーリングも心配ない。もちろん起動していないコンテナに課金はされない――。

 こうしたサーバーレスアーキテクチャーのメリットに加え、自分たちで実装しなければならないPCI DSSの項目を減らせるメリットもある。ミクシィにとっては「渡りに船」だったといえる。