Slide 1

Slide 1 text

ゼロからサーバレスの先端に追いつこう Game Server Services 株式会社 代表取締役社⻑CEO 丹⽻ ⼀智

Slide 2

Slide 2 text

⾃⼰紹介 丹⽻ ⼀智(にわ かずとも) Game Server Services 株式会社 代表取締役社⻑ CEO 2006年 株式会社セガ⼊社 携帯電話向けゲームおよびサーバ開発業務に従事 2009年 任天堂株式会社⼊社 ニンテンドー3DSのOS/SDK開発や、 ゲームサーバの開発・運⽤業務に従事 2016年 Game Server Services 株式会社 設⽴ Game Server Services, Inc. https://gs2.io

Slide 3

Slide 3 text

Game Server Services とは? フルサーバレスアーキテクチャ(FaaS)でモバイルゲーム向けの 汎⽤ゲームサーバを開発・提供。 各社がゲームサーバを開発している現状に疑問を感じ、あらゆる ゲームに使える汎⽤ゲームサーバを提供することをミッションと し、ゲームサーバ界の Unity を⽬指して開発中。 Game Server Services, Inc. https://gs2.io

Slide 4

Slide 4 text

Game Server Services とは? 来⽉で設⽴2年というヒヨッコスタートアップですが、今年3⽉ に DeNA / KLab らから資⾦調達を実施。 主な採⽤事例 Game Server Services, Inc. https://gs2.io 私、茄⼦で⾶びます(usaya株式会社) 講演数⽇前に Twitter でバズったりするも、 サーバレスアーキテクチャのおかげで無障害でサービス提供中

Slide 5

Slide 5 text

サーバレスアーキテクチャの歴史

Slide 6

Slide 6 text

2014年11⽉ AWS Lambda発表(re:invent 2014) Game Server Services, Inc. https://gs2.io

Slide 7

Slide 7 text

AWS Lambda とは? Game Server Services, Inc. https://gs2.io AWS 内のイベントをトリガーとして、クラウドに登録した関数を実⾏するもの

Slide 8

Slide 8 text

AWS Lambda の実⾏イメージ ファイルPUT通知 サーバを瞬時に起動 処理を終えたらサーバを破棄 Game Server Services, Inc. https://gs2.io

Slide 9

Slide 9 text

AWS Lambda の利点 Game Server Services, Inc. https://gs2.io 簡単に使えて、インフラについて考える必要が無くなることで、 メンテナンスコストが低く利⽤出来ること イベントに対してミリ秒単位で素早く反応し、関数が実⾏されること

Slide 10

Slide 10 text

AWS Lambda のイベントソース Game Server Services, Inc. https://gs2.io AWS Lambda を実⾏する起点となるイベントは S3, DynamoDB, Kinesis, AWS SDK

Slide 11

Slide 11 text

AWS Lambda の使⽤例 Game Server Services, Inc. https://gs2.io S3に写真をアップロード -> 関数で画像のメタデータを解析 -> メタデータをDynamoDB に格納 メタデータに含まれる位置情報などからトレンドを分析 -> トレンドデータをDynamoDBに格納

Slide 12

Slide 12 text

AWS Lambda の使⽤例 Game Server Services, Inc. https://gs2.io 最後にトレンドデータを元にプッシュ通知を出す関数を実⾏

Slide 13

Slide 13 text

でも、おたかいんでしょう? Game Server Services, Inc. https://gs2.io 100万リクエストあたり$0.20 実⾏時間100ミリ秒あたり × メモリ割り当て128MBあたり $0.00000021

Slide 14

Slide 14 text

⽤語の定義 • この頃はまだアーキテクチャの名称が定まっていませんでした。 • 現在は Function as a Service(FaaS) と呼ばれていますが、当 時は Dynamic Computing とも、Serverless Architecture/Computing とも呼ばれていました。 • ちなみに、現在は Dynamic Computing はなりを潜め、 Serverless Architecture はサーバの存在を感じさせないアーキ テクチャの総称として、FaaSだけでなくBaaSなども含むニュ アンスで使⽤されます。 Game Server Services, Inc. https://gs2.io

Slide 15

Slide 15 text

2015年6⽉ AWS Lambdaが東京に Game Server Services, Inc. https://gs2.io AWS Lambda が東京リージョンで利⽤出来るようになりました

Slide 16

Slide 16 text

2015年6⽉ AWS Lambdaが Java をサポート Game Server Services, Inc. https://gs2.io AWS Lambda で Java が利⽤出来るようになりました。

Slide 17

Slide 17 text

2015年7⽉ DynamoDB をイベントソースに指定出来るように Game Server Services, Inc. https://gs2.io AWS Lambda のイベントソースに DynamoDB の更新を指定出来るようになりました。 ※ re:invent であんな発表をしておきながら当初は出来なかったのです。

Slide 18

Slide 18 text

2015年7⽉ API Gateway発表 Game Server Services, Inc. https://gs2.io RESTful API を定義し、HTTP アクセス時に Lambda をトリガー出来るサービスが発表。

Slide 19

Slide 19 text

2015年9⽉ GS2の基礎研究開始 Game Server Services, Inc. https://gs2.io API Gateway + AWS Lambda を触っていて GS2 という事業に思い⾄り、 それを実現出来るかの基礎研究を開始

Slide 20

Slide 20 text

2015年10⽉ JAWS Framework公開 Game Server Services, Inc. https://gs2.io 現在の Serverless Framework である JAWS Framework が公開

Slide 21

Slide 21 text

2015年10⽉ Kinesis Firehose をリリース Game Server Services, Inc. https://gs2.io ログ集約などに使⽤出来る Kinesis Firehose をリリース。

Slide 22

Slide 22 text

2015年10⽉ AWS IoT が previewリリース Game Server Services, Inc. https://gs2.io フルマネージドMQTTサーバである AWS IoT を preview リリース。

Slide 23

Slide 23 text

2015年11⽉ GS2開発開始 Game Server Services, Inc. https://gs2.io 基礎研究を終え、弊社のプロダクトである Game Server Services の開発を開始

Slide 24

Slide 24 text

2016年12⽉ Lambda が Python 2.7 をサポート Game Server Services, Inc. https://gs2.io Lambda が Python2.7 をサポートしました。

Slide 25

Slide 25 text

2015年12⽉ AWS IoT が GA Game Server Services, Inc. https://gs2.io AWS IoT が GA に。

Slide 26

Slide 26 text

2016年1⽉Lambda のイベントソースに Events が追加 Game Server Services, Inc. https://gs2.io Lambda を定期実⾏出来るように(当時は最短5分。現在は1分)

Slide 27

Slide 27 text

2016年2⽉ Google Cloud Functions αリリース Game Server Services, Inc. https://gs2.io Google が Google Cloud Functions を招待制でαリリースしました。(対応⾔語は node.js のみ)

Slide 28

Slide 28 text

2016年2⽉Lambda が VPC に対応 Game Server Services, Inc. https://gs2.io Lambda に ENI を割り当てることで VPC 内のリソースを触れるように

Slide 29

Slide 29 text

2016年2⽉ Bluemix OpenWhisk が previewリリース Game Server Services, Inc. https://gs2.io IBM の提供する Bluemix OpenWhisk が previewリリース しました。 Node.js Swift に対応

Slide 30

Slide 30 text

2016年4⽉ Azure Functions が プレビューリリース Game Server Services, Inc. https://gs2.io Microsoft が Azure Functions をプレビューリリースしました。 当時は node.js と C# のみの対応でした。

Slide 31

Slide 31 text

2016年5⽉ ServerlessConf NYC開催 Game Server Services, Inc. https://gs2.io コミュニティ主催のカンファレンスである ServerlessConf が 世界初で初めてニューヨークで開催されました。

Slide 32

Slide 32 text

2016年6⽉ Firebaseリリース Game Server Services, Inc. https://gs2.io Google が 2014年に買収した Firebase を GCP との統合を進め、再リリースしました。

Slide 33

Slide 33 text

2016年9⽉ GS2創業 Game Server Services, Inc. https://gs2.io GS2 が創業しました。

Slide 34

Slide 34 text

2016年9⽉ Azure Functions が F# に対応 Game Server Services, Inc. https://gs2.io Microsoft が Azure Functions が F# に対応しました。

Slide 35

Slide 35 text

2016年9⽉ Bluemix OpenWhisk が βリリース Game Server Services, Inc. https://gs2.io IBM の提供する Bluemix OpenWhisk が βリリース しました。 Java、Python に追加対応

Slide 36

Slide 36 text

2016年10⽉ Azure Functions が API Routing に対応 Game Server Services, Inc. https://gs2.io Microsoft が Azure Functions が API Routing に対応し、 RESTful な API で使⽤出来るようになりました。

Slide 37

Slide 37 text

2016年10⽉ ServerlessConf Tokyo 開催 Game Server Services, Inc. https://gs2.io 世界で2都市⽬として、東京で ServerlessConf が開催されました。 創業間もないですが、GS2も登壇しました。

Slide 38

Slide 38 text

サーバレスとマイクロサービスで 変わるゲームサーバ開発 Game Server Services, Inc. https://gs2.io 登壇資料からエッセンスを抽出します。

Slide 39

Slide 39 text

サーバレスとマイクロサービスで 変わるゲームサーバ開発 Game Server Services, Inc. https://gs2.io

Slide 40

Slide 40 text

サーバレスとマイクロサービスで 変わるゲームサーバ開発 Game Server Services, Inc. https://gs2.io

Slide 41

Slide 41 text

サーバレスとマイクロサービスで 変わるゲームサーバ開発 Game Server Services, Inc. https://gs2.io

Slide 42

Slide 42 text

サーバレスとマイクロサービスで 変わるゲームサーバ開発 Game Server Services, Inc. https://gs2.io

Slide 43

Slide 43 text

サーバレスとマイクロサービスで 変わるゲームサーバ開発 Game Server Services, Inc. https://gs2.io

Slide 44

Slide 44 text

サーバレスとマイクロサービスで 変わるゲームサーバ開発 Game Server Services, Inc. https://gs2.io

Slide 45

Slide 45 text

サーバレスとマイクロサービスで 変わるゲームサーバ開発 Game Server Services, Inc. https://gs2.io

Slide 46

Slide 46 text

サーバレスとマイクロサービスで 変わるゲームサーバ開発 Game Server Services, Inc. https://gs2.io

Slide 47

Slide 47 text

サーバレスとマイクロサービスで 変わるゲームサーバ開発 Game Server Services, Inc. https://gs2.io

Slide 48

Slide 48 text

サーバレスとマイクロサービスで 変わるゲームサーバ開発 Game Server Services, Inc. https://gs2.io

Slide 49

Slide 49 text

2016年11⽉ Azure Functions が GA Game Server Services, Inc. https://gs2.io Microsoft が Azure Functions をGAしました。

Slide 50

Slide 50 text

2016年11⽉ AWS SAM がリリース Game Server Services, Inc. https://gs2.io Cloud Formation のプリプロセッサとして稼働し、 Lambda のアプリケーションフレームワークとして使⽤出来る AWS Serverless Application Model(SAM) がリリース。

Slide 51

Slide 51 text

2016年12⽉ Step Functions がリリース Game Server Services, Inc. https://gs2.io Lambda でステートフルな処理を実⾏するための Step Functions がリリース。

Slide 52

Slide 52 text

2016年12⽉ GS2のサービスを開始 Game Server Services, Inc. https://gs2.io GS2 のサービスを開始しました。 おそらく世界初のフルサーバレスで提供されるサービス。

Slide 53

Slide 53 text

2016年12⽉ Bluemix OpenWhisk が GA Game Server Services, Inc. https://gs2.io IBM の提供する Bluemix OpenWhisk が GA しました。

Slide 54

Slide 54 text

2016年12⽉ Azure Functions がデバッグ実⾏に対応 Game Server Services, Inc. https://gs2.io Azure Functions が Visual Studio 2015 / Visual Studio Code / CLI によるデバッグ実⾏に対応。

Slide 55

Slide 55 text

2016年12⽉ Lambda が C#(.NET Core 1.0) をサポート Game Server Services, Inc. https://gs2.io Lambda が C#(.NET Core 1.0) をサポートしました。

Slide 56

Slide 56 text

2017年3⽉ Google Cloud Functions βリリース Game Server Services, Inc. https://gs2.io Google が Google Cloud Functions をパブリックβリリースしました。

Slide 57

Slide 57 text

2017年4⽉ X-Ray が提供開始 Game Server Services, Inc. https://gs2.io Lambda の動作を視覚化する X-Ray が提供開始。 パフォーマンスチューニングや不具合の調査に活⽤出来るように。

Slide 58

Slide 58 text

2017年7⽉ Bluemix OpenWhisk が IBM Cloud Functions へ Game Server Services, Inc. https://gs2.io IBM の提供する Bluemix OpenWhisk が IBM Cloud Functions にリブランドしました。 Bluemix OpenWhisk でも使⽤している OSS実装である Apache OpenWhisk との混同などを理由に挙げています。 同時に PHP のサポートが発表。

Slide 59

Slide 59 text

2017年8⽉ Chalice が GA Game Server Services, Inc. https://gs2.io AWS が提供する SAM と異なるアプリケーションフレームワーク。 CF のプリプロセッサとして稼働する SAM とは異なり、 がっつり Python のアプリケーションフレームワーク。

Slide 60

Slide 60 text

2017年10⽉ Azure Functions Java対応(preview) Game Server Services, Inc. https://gs2.io Microsoft が Azure Functions の Java対応のプレビューリリースしました。

Slide 61

Slide 61 text

2017年11⽉ ServerlessConf Tokyo 開催 Game Server Services, Inc. https://gs2.io 2年⽬・2回⽬となる Serverless Conf Tokyoが開催。 GS2は昨年に引き続き登壇しました。

Slide 62

Slide 62 text

真のサーバレスアーキテクトと サーバレス時代のゲーム開発・運⽤ Game Server Services, Inc. https://gs2.io 登壇資料からエッセンスを抽出します。

Slide 63

Slide 63 text

真のサーバレスアーキテクトと サーバレス時代のゲーム開発・運⽤ Game Server Services, Inc. https://gs2.io サーバレス時代の設計者は、フルマネージドサービスの特性を把握して 適切なタイミングで使⽤出来る能⼒が求められる。

Slide 64

Slide 64 text

真のサーバレスアーキテクトと サーバレス時代のゲーム開発・運⽤ Game Server Services, Inc. https://gs2.io GS2 の⾏っているコールドスタート対策。 1つのLambdaファンクションに全てのRESTアクセスを向けて 呼び出し頻度の低いエンドポイントでもコールドスタートしにくいように。

Slide 65

Slide 65 text

真のサーバレスアーキテクトと サーバレス時代のゲーム開発・運⽤ Game Server Services, Inc. https://gs2.io ログをいかに集約し、検索出来る状態にするか。 GS2 では Kinesis Firehose -> S3 -> BigQuery とログを流している

Slide 66

Slide 66 text

真のサーバレスアーキテクトと サーバレス時代のゲーム開発・運⽤ Game Server Services, Inc. https://gs2.io ⾮同期処理をどう扱うか。 AWS IoT を使って MQTT経由でサーバからプッシュ通知をすることで解決。

Slide 67

Slide 67 text

真のサーバレスアーキテクトと サーバレス時代のゲーム開発・運⽤ Game Server Services, Inc. https://gs2.io DynamoDB はトランザクション機能がない。 部分的に GCP の Cloud DataStore を使うなどして対応。

Slide 68

Slide 68 text

真のサーバレスアーキテクトと サーバレス時代のゲーム開発・運⽤ Game Server Services, Inc. https://gs2.io GS2 では IAM を模したアクセス権限管理を提供している。 ポリシー判定Lambdaは全てのマイクロサービスが共通して呼び出すファンクションに切り出されている。 ポリシー判定処理を切り出している理由は、ポリシードキュメントのキャッシュヒット率を⾼める⽬的。

Slide 69

Slide 69 text

真のサーバレスアーキテクトと サーバレス時代のゲーム開発・運⽤ Game Server Services, Inc. https://gs2.io GS2 の管理画⾯はEC2で動かしていた。 GAE SE が Java8 に対応したため、めでたくサーバレス化できた。

Slide 70

Slide 70 text

真のサーバレスアーキテクトと サーバレス時代のゲーム開発・運⽤ Game Server Services, Inc. https://gs2.io サーバレスアーキテクチャでの開発は、ベンダーロックインは避けられない。 何かあったときにすぐに連絡の取れる関係になっておくのがオススメ。

Slide 71

Slide 71 text

真のサーバレスアーキテクトと サーバレス時代のゲーム開発・運⽤ Game Server Services, Inc. https://gs2.io サーバレスによって、インフラの死活監視はいらなくなったとしても サービスが正しく稼働しているか判断出来るよう、稼働状況は可視化しておくべき。

Slide 72

Slide 72 text

2017年12⽉ Cloud9 を使って Lambda の開発が可能に Game Server Services, Inc. https://gs2.io AWS が提供するブラウザ上で動作するIDEである Cloud9 を使って Lambda が開発出来るように。

Slide 73

Slide 73 text

2018年1⽉ Lambda が Go と C#(.NET Core 2.0) をサポート Game Server Services, Inc. https://gs2.io Lambda が Golang と C#(.NET Core 2.0) をサポートしました。

Slide 74

Slide 74 text

2018年6⽉ Google Cloud Functions が東京に Game Server Services, Inc. https://gs2.io Google Cloud Functions が東京リージョンで利⽤出来るように。

Slide 75

Slide 75 text

2018年6⽉ イベントソースにSQSを使⽤可能に Game Server Services, Inc. https://gs2.io Lambda がイベントソースに SQS を使⽤出来るようになりました。

Slide 76

Slide 76 text

2018年7⽉ Google Cloud Functions がGA Game Server Services, Inc. https://gs2.io Google Cloud Functions が GA し、SLA がつくように。 対応⾔語に Python3.6 を追加。

Slide 77

Slide 77 text

2018年7⽉ Serverless containers が発表 Game Server Services, Inc. https://gs2.io Google が Serverless containers を発表しました。 Serverless containers は App Engine Flexible のリブランド+Dockerイメージによるデプロイの対応。

Slide 78

Slide 78 text

今後の⾒えてる予定 Game Server Services, Inc. https://gs2.io • 9⽉ ServerlessConf Tokyo 2018 • GS2 は今年も登壇します。今年は運⽤周りを中⼼に話します。 • 11⽉ re:invent 2018 • ラスベガスで開催される AWS 主催のカンファレンスです。 毎年サーバレス関連のアップデートが複数あるので、今年も何かがあ るはずです。

Slide 79

Slide 79 text

次は実践! 歴史を学んだことで、どのようなことがサーバレスで出来るのか はなんとなく分かるようになったはずです。 あとは実際に⼿を動かしてみてください! Game Server Services, Inc. https://gs2.io