AWSはゲーム関連のサービスや取り組みを一挙に紹介
マルチテナンシーの難しい課題をAWSで解決したSmartHR
2018年03月05日 07時00分更新
2018年1月25日、さまざまな業界に広がるAWSの活用事例を語りあうX-Tech JAWSの第2回目となる勉強会「9割のX-Techと1割の優しさで切り拓く未来」というエモいタイトルが付いた今回は、GameTech、HRTech、MamaTech、RetailTech、FashinTechの5分野。まずは前半の2つを紹介する。
ゲーム開発ならAWS!名だたるメーカーの事例を披露
「皆さんご存じかと思いますが、ゲームと言えばAWSなんです」のタイトルで登壇したのは、AWSJでゲーム分野を担当している営業の白川哲也さん。JAWS-UGでの登壇は初めてらしいが、「大学卒業後、グラビアアイドルのマネージャーなど数々のお仕事を経て、いろいろあって2015年にAWSJに入社しました」の自己紹介は、会場から「ちょっと、よくわからない(笑)」と好評を博していたことを報告しておく。
任天堂、バンダイナムコ、スクエア・エニックス、Cygames、ガンホーなどゲーム業界でのAWSの導入実績は高い。では、なぜ実績が高いか。白川さんは、事例をひもときながらゲームでの実績を振り返る。
たとえば、任天堂とDeNAで開発された「スーパーマリオラン」は、150以上の国と地域を配信対象とした大規模なシステムにもかかわらず、AWSを導入することで、膨大なリソースをきわめて短い時間で調達できた。また、セキュリティ体制やコンプライアンス面でも高い評価を得ている。また、「アナザーエデン」を手がけるグリーは豊富なマネージドサービスを活用することで、少人数でも安定した開発環境の運用が可能になったという。「高いセキュリティレベル、ゲームに特化したサービスゲームワーク、豊富な実績で選ばれている」と白川さんはアピールする。
モバイルゲームを例にしたアーキテクチャを説明した白川さんはユーザー事例を紹介。ガンホーの「パズル&ドラゴン」は数千万ダウンロードされるハイトラフィックなゲームでありながら、AWSのアーキテクチャを採用することで、初期からほとんど構成を変更しないで済んでいる。また、スクエア・エニックスの「ドラゴンクエストX」ではゲーム内で撮影された写真の加工をLambdaでオフロードし、処理時間を数時間から10数秒へ、コストも1/20程度に圧縮した。白川さんはDynamoDBを採用したオートセーブ機能やマルチプレイヤーやDDoS攻撃対策、ライブアップデートなどのGameLiftの事例も紹介。
ここまでの説明で手持ち時間がなくなってきた白川さんは、Amazonのゲーム開発への取り組みを披露。Amazon Game Studioという自社のゲーム開発スタジオを所有していたり、Amazon Game Servicesというゲーム開発ソリューションやAWSとTwitchを統合させた無料ゲームエンジン「Amazon Lumberyard」を提供していると説明した。
数多くの意思決定が必要なWebアプリの総合芸術
続いて「急成長するマルチテナントSaaSの技術戦略を支えるAWS」というタイトルで登壇したのはSmartHR(スマートエイチアール)のぷりんたいさん。まずはSmartHRの事業概要から説明した。
SmartHRは、書類作業の多い人事・労務の手間を軽減するサービスで、人事情報をクラウド経由で収集。社会保険や雇用保険の書類を自動作成し、作成した書類をAPI経由でWebから役所に申請できる。また、従業員情報をデータベース化し、年末の書類も簡単に作成できるという。現在、急成長を続けており、導入企業は9300社(2017年12月時点)を突破し、継続率も99.3%を超えている。
開発者から見た技術的な特性としては、「大量アクセスはさばかない」「ミッションクリティカルではない」「全画面の8割がフォーム」「機能改修は毎回マイグレーションが発生する」などのほか、「ユーザーごとに専用のDBがある」という点が挙げられる。「当然、RDSインスタンスが9300台あるわけではなく、1個のRDSインスタンスの中に9300個のデータベースがあります。けっこうやばいです」とぷりんたいさんは語る。
今回注目したのは、1つのシステムで複数のテナントをホストする形態を「マルチテナンシー」だ。「マルチテナンシーの厳密な定義はないが、個人的には、すべてのデータがテナントにひも付くどうかが分水嶺。ユーザを消しても、データが消えないというパターン」(ぷりんたいさん)。目的は、サービスの提供コストを抑えること。フリーミアムモデルで、サインアップのたびにインスタンスを用意していたら、時間もコストもかかってしまうので、リソースを共有してコストを抑えるわけだ。
マルチテナンシーにはいくつかパターンがある。マルチテナントではない実装としては、テナントごとにアプリケーションサーバーとDBを提供するパターンがあるが、マルチテナントになるとアプリケーションだけを共用するパターン、SmartHRのようにDBインスタンスを共有するパターンなどがある。もちろん、各テーブルにテナントを識別するカラムを追加し、複数のテナントでデータベースを共用したり、小さいDBでシャーディングする方法もあるが、実装や管理はそれなりに難しいという。
しかし、「こうしたマルチテナントアーキテクチャを決定するには大量の意思決定が必要になる」とぷりんたいさんは語る。アカウント設計1つとっても、「複数のテナントにログインできるのか」「テナントが消されたらアカウントも消されるのか」「アカウントの設計はテナント単位でもつのか」などさまざま。その他、URLやデータベース、ストレージ、アプリケーション、ビジネスなどの設計において、まさに複数の問題を同時に解決する必要がある。「マルチテナントは幅広い知識や視点や予知・運用力、ソフトウェア検証能力を要求されるWebアプリの総合芸術ではないかと思っている」とぷりんたいさんは指摘する。
マルチテナンシーの難しい選択を支えるAWSのマネージドサービス
そんなマルチテナンシーの難しい選択を支えてくれるのが、幅広いサービスを提供してくれるAWSだ。現在、SmartHRの従業員構成を見ると、エンジニアは11人。全体の1/4程度で、決して多いとは言えない。「僕たちのコアとなる価値は、世の中の問題を僕たちが持つよりよい方法で解決すること。裏を返せば、僕たちの問題も自分たちで解決するよりよい方法があれば、どんどん活用したい。その観点で言えば、AWSは超便利」とぷりんたいさんは語る。
一方でマネージドサービスであるがゆえの悩みもある。「用意されたプラグインしか使えなかったり、ソフトウェアのバージョン追従が遅かったり、カスタマイズができない」といった点だ。こうした部分を補うために、サードパーティのXaaSがあるが、これらを提供するプロバイダーも最初にAWSを選択するので、やはりAWSは便利だという。「XaaSをなるべく活用し、われわれはお客様の課題解決に向き合う。この考え方は、開発チームだけはなく、社内全体で共有しており、少ない人数で多くのお客様を支えている」とぷりんたいさんは語る。
現在、直面している課題として、ぷりんたいさんは9000個を超えるデータベースをどのようにスケールさせるかという点を挙げる。前述の通り、SmartHRでは機能追加のたびにデータベースのマイグレーションを行なっている。そのため、テナントごとに30秒のマイグレーションでも1万テナントになれば、5000分かかる。64並列させても、1時間かかる計算なので、これをどのように解決するか考えなければならないという
その他、エンタープライズユーザーを見据えたクエリの高速化やプラットフォーム化にともなうデータモデルの最適化など課題は山積み。最後、ぷりんたいさんは、「まだまだやることはあるけど、人手が足りません。よろしくお願いします!」と人材募集をかけて、セッションを締めた。
この連載の記事
-
第26回
デジタル
コロナ禍で社会インフラとなった保育園 ルクミーはこうして支えている -
第25回
デジタル
オンライン診療の規制緩和にいち早く対応したMICINの新機能開発 -
第24回
デジタル
「Cariot」のリアルタイム性を強化するKinesis、Lambda、DynamoDBの整え方 -
第23回
デジタル
Timers、POL、PIAZZAなどがビジネスと技術を語る第10回X-Tech JAWS -
第22回
デジタル
メンヘラ彼女向けのサービスを1週間で開発させられた話 -
第21回
デジタル
教育市場を盛り上げる「AWS EdStart」と「AWS Educate」 -
第20回
デジタル
AIで時事クイズと高校野球の戦評記事を作ってみた -
第19回
デジタル
おやつのサブスク「snaq.me」でのLambda活用術 -
第18回
デジタル
X-Tech JAWSで聞いたナビタイム、Resola、千のAWSの使いこなし -
第17回
デジタル
契約書のレビューを支援するLegalForce、CTOと事業開発担当が語る -
第16回
デジタル
「SQL書きたい」のリクエストにukkaのエンジニアはどう応えたのか? - この連載の一覧へ