SlideShare a Scribd company logo
1 of 73
+
AWS Summit
Tokyo 2016
GREE流!AWSをお得に使う方法
メンバー紹介
神谷侑司・今井祐介
 ゲームアプリ開発
 storageのコスト削減と効率的な利用
籠島啓介
 広告システム開発
 大量のログをなるべく安く簡単にさばく方法
堀口真司
 ゲームインフラ運用
 インフラツールもサーバレスで安く
Agenda
・Service & System Overview
・Amazon DynamoDBの話
・なぜ導入したのか
・利用するメリット
・コストを抑えつつ利用するには
・開発事例からみるコストを抑えるためのTips
・実際に運用してみて出てきた問題&課題
・Throttled & Partitions
・コストをおさえながら可用性を上げるには
・Dynamic Dynamo 導入&メリット
・Dynamic Dynamo Tips
・Amazon RDSの話
・Amazon Auroraを使ってコスト削減
Service Overview
 ソーシャルゲーム(ネイティブアプリ)
 時間帯やイベント期間による負荷の差が大きい
 web server: 12 ~ 50台
 access: 3000 ~ 30000 / min
 RPG
 自分の町を開拓してリソースを獲得しバトルによって得た報酬でプレ
イヤーを強くしていく
 一週間で数種類のイベントを開催
 イベントの種類によって
負荷は異なる
Dynamic Data
(Memcached)
ELB
Dynamic Data
RDS (MySQL)
iOS
Android
PHP Application
server (HHVM)
Amazon EC2
(Auto scaling)
APC cache
Dynamic Data
(Amazon DynamoDB)
DB Async
System Overview
...
...
Static Data
RDS (MySQL)
HTTP
System Overview
Application Servers
Memcached layer
MySQL
Async Writer
synchronous write
async write
Application Servers
Amazon DynamoDB
Current
synchronous read
2015年秋頃から既存の一部機能をこちらの構成
に移行し、新規機能の開発時はdynamoを利用し
た構成で開発
Amazon
RDS
Amazon
ElastiCache
Amazon DynamoDB移行の動機
古い構成の問題点:複数プレイヤーが同じデータへ同時に書き込む際の競合
memcached
{“id”: 1, “point”: 100}
playerA
{“id”: 1, “point”: 200}
playerB
{“id”: 1, “point”: 300}
get
update
update
casで失敗
memcachedでplayerデータのjsonを保持していたため、以下の様な競合が発生しやすかっ
た
Amazon DynamoDBのメリット
 atomic counterによる差分save
 値の変化分を指定して更新しているため、数値の更新が競合しない
 Numberの更新の場合、casという操作自体が不必要
dynamoDB
{“id”: 1, “point”:
100}
playerA
{“id”: 1, “point”:
200}
playerB
{“id”: 1, “point”:
300}
get
point: +200
point: +100
Amazon DynamoDBのメリット
 conditional saveによる条件指定
 item内の特定の属性の値が指定した条件に合致する場合だけ更新
例えば、ゲーム中で
●アイテムAを早いもの勝ちで10個まで買える(1人当たり最大3個)
のようなルールを実現する場合は以下のようにするだけ
item_id: N,
count: N, // 購入時にcountを
increment
item定義
UpdateItem
count: +1
when: count < 10
conditional save
Amazon DynamoDBのメリット
read/writeの負荷の大きさ=コスト大きさ
負荷を減らせばコストも減り、
その効果はaws consoleですぐに確認できる!
なので
 コスト可視化
 Read/writeの上限は設定したThroughput Capacityによって制限
 Throughput Capacityの大きさによって料金が決まる
Amazon DynamoDBのコスト
 write: $0.0065 10unit / hour
 read : $0.0065 50unit / hour
 storage size: $0.25 / (GB*month)
つまり
 writeはreadの10倍(結果整合性のあるreadと比較)
 storage容量分は小さい
writeのthroughputを小さく保つことが重要
コスト削減の実例
1. write capacityを抑える
 deleteせずに済むならしない
 secondary indexをみだりに使わない
2. read capacityを抑える
 randomにitem取得
Write時に消費されるCapacity
 PutItem, UpdateItem, DeleteItem, BatchWriteItemの実行で消費される
 消費capacity = ceil(操作するitemのデータ量 / 1KB)
Tips
●BatchWriteItemは並列に書き込めるだけで消費capacityは変わらないので注意
○latencyの低減に役立つがコストの削減にはならない
writeはitemにつき最低1unit必ず消費する
コスト削減の実例
1. write capacityを抑える
 deleteせずに済むならしない
 secondary indexをみだりに使わない
2. read capacityを抑える
 randomにitem取得
例えば、historyのようなデータを考える
 ユーザのアクセス毎にPutItem
 表示に必要なデータは最新の100件だけ
100件を超えた分を毎回deleteするのが簡単だがwrite capacityの消費UP
アクセス増大時のwrite負荷がさらに大きくなってしまう
Deleteせずに済むならしない
バッチで非同期にdeleteする
or
定期的に新しいテーブルを作成する設計
コスト削減の実例
1. write capacityを抑える
 deleteせずに済むならしない
 secondary indexをみだりに使わない
2. read capacityを抑える
 randomにitem取得
IndexとWrite Capacity
射影されている属性に変化があった場合
indexへの書き込みに必要分のcapacityが消費される
indexの個数をnとすると消費されるcapacityは(n+1)倍となる
write capacityが数倍になるだけの価値があるか検討すべき
つまり全属性を射影していた場合
例えば
以下のようなitemを保持するテーブルがあったとする
read時にitemを絞りこまなくとも問題ないのであれば、
indexを張ってwriteが2倍となるよりも全件取得の方がよい
(コストのみについて考えるならば)
player_id : N (hash key)
some_id : N (range key)
filter_key: S
…
※アプリ側ではfilter_keyによってfilterした結果がほしい
コスト削減の実例
1. write capacityを抑える
 deleteせずに済むならしない
 secondary indexをみだりに使わない
2. read capacityを抑える
 randomにitem取得
ランダムに結果を取得する
要求:あるイベントに参加しているユーザをランダムに取得する
単純な方法
● 全ユーザ分のitemを取得してアプリ側でfilterをかける
ex. itemの大きさ:100B、ユーザ数:10,000、Queryを利用
100B * 10,000 / 4KB = 250uu ※Queryで消費されるcapacity = ceil(read総量 /
4KB)
ユーザ数が多くなれば現実的ではない
ランダムに結果を取得する
以下のようなkeyを定義し範囲指定で取得
event_id : N (hash key)
player_id : N (range key)
random_id:N (local secondary
index)
…
※実際はpartition分割への対策のためhash_keyはもう少し複雑
●UpdateItemの際にrandom_idも更新
●item取得時は以下のようなQueryを発行
○random_id < 乱数値
○limit 10
消費されるcapacityが抑えられる上、
ランダムに取得する処理をコードとして書く必要がない
まとめ
1. write capacityを抑える
 deleteせずに済むならしない
 secondary indexをみだりに使わない
2. read capacityを抑える
 randomにitem取得
read/writeのアクセス数を算出し、必要な場合だけindexを利用する
負荷が膨大にならないのであればreadに負荷を寄せるのも一つの手
Amazon DynamoDBで実際に運用し
てみて出てきた問題・課題
Amazon DynamoDBで実際に運用してみて出てきた課題
Throttling発生問題
 Throughput Capacityを超えるThroughputが発生した時に400
ProvisionedThroughputExceededException が返ってくる
 ただし、過去5分間の空きThroughputを貯蓄するBurst機能で一時的に
カバーしてくれる
 AWS SDK側で再送信してくれるが一定回数を超えると処理を失敗
Throttlingしてしまった状態正常な状態
Amazon DynamoDB Partitioning
●データ容量やThroughput CapacityによってPartition分割される
●ルール
●例
●注意点
○HotkeyがあるとThrottlingしやすくなる
○Scanすると分割前よりThrottlingしやすくなる
○( Read Capacity / 3,000 ) + ( Write Capacity / 1,000 )
○10G毎に分割される
○CEIL(MAX(read:2000 + write:333, size:9G) = 1
○CEIL(MAX(read:2000 + write:334, size:9G) = 2
○Capacityも分割される
○一度割れたら戻らない
Hot Key/PartitionによりThrottlingが発生
Partition分割されているTableで、Throughputが一つのPartitionに集中して
Throughput Capacityを超えてしまった
Throughput Capacity超えてないように見えるがThrottlingしてしまった状態
Partition数 : 30
Write Capacity : 900
Partition毎のCapacity : 30
Amazon DynamoDBで実際に運用してみて出てきた課題
Amazon DynamoDB Partitions - Hot Key/Partition Issue
Hot Keys/Partition問題
●一つのPartitionにアクセスが集中することで、そのPartitionで
Throttlingが発生しサービスに影響が出しまう。
基本
●Table設計時にkeyが均等にアクセスされるようにする
Hot Key/Partition Issue - どう対応したか (その1)
● 問題
Tableサイズ増加でPartitionが細かく割れてしまい少しの偏りでThrottlingが発生
● 対応
○費用を考えるとCapactiyを上げたくはない
○アーカイブ用Tableを作りそこにBatchで少しずつ移動していった
○古いDataを同時に取得することがなくなったのでThrottlingが減った
Hot Key/Partition Issue - どう対応したか (その2)
● 問題
一部のKeyの読み込みが非常に激しくThrottlingしていた
● 対応
Memcached / APC cache等に読み込みをキャッシュ
NoSQLとはいえAmazon DynamoDBはThroughput毎にお金がかかるた
め Cacheに載せたほうが安い
※Amazon DynamoDBの仕様上1 Parititionの利用可能な最大Read Throughputは6000 units/秒
Hot Key/Partition Issue - どう対応したか (その3)
• 問題
一部のKeyの書き込みが非常に激しくThrottlingしていた
• 対応
TableをShardingして、Writeを複数Tableに分散させた
※読み込み時は複数TableからDataを取る必要がある
※Amazon DynamoDBの仕様上1 Parititionの利用可能な最大 Write Throughtputは
1000 units/秒
Amazon DynamoDB Throughput Bursting - 気をつける事
● 過去5分間の空きThroughputを貯蓄してくれる。(急激な上昇への対策)
ただしBurst機能は常に保証していないので前提にしてはならない
● Capacityを上げる時等バックグラウンド処理が走るとThrottlingされた
事も(GSI生成/Partition分割時等)
可用性を維持しながらコストを抑えるには
● Amazon DynamoDBはTable毎に明確にCapacityを設定する必要がある
○ イベント毎に負荷の見積もり行うが想定外の盛り上がりの可能性もある
○ コストは抑えたいが可用性のためにCapacityは下げたくない
○ 見積もりの人的コストも毎回発生する
○ AutoScaleしてほしい
● ということでDynamic Dynamoの導入しました
Amazon DynamoDBのCapacityを自動調整してくれるサー
ビス。Amazon CloudWatchのCosumedCapacity Metricsの
数値を元にRead/Write Capacityの設定を自動的に上げ下げ
してくれる。細かい設定が可能で最小・最大なども指定可能
Dynamic Dymamoとは
可用性を維持しながらコストを抑えるには
Dynamic DynamoとDynamo DB Partitionsの関係
○ 一度分割されたら戻らないのでScale downした時にThrottlingされる可能性
■900 -> 1100 でScale upした時にPartitionが割れるので1Partition内のCapacityは
900 -> 450に落ちる。Hot keyがある場合 Throttlingされる可能性あり
○ Hot Key/Partition問題の解決にはならない
■ Hot Key/Partitionの場合Amazon CloudWatchではCapacity上限に近いわからない
のでScale upできない
○ 大規模なプロモを実施する前には事前にマニュアルで上げておく必要がある
■ Amazon CloudWatchは1分毎に集計、Dynamic Dynamoも数分毎に実行するので
Capacityが上がるまで数分かかる。事前にマニュアルでCapacityを上げて大事な時
間のサービスに影響が出ないように準備する必要がある。
可用性を維持しながらコストを抑えるには
Amazon Auroraを使ったコスト削減
Amazon RDS for MySQLのコスト削減について
コスト削減を目的としてAmazon Auroraを使ってmaster統合を実施
 MySQL compatibilityなのでCodeの変更は不要
 masterとslaveの数を減らす事でinstance費用が減る
 移行後にinstanceもdowngradeできればさらに減る
 Amazon RDS for MySQLに比べてIO-boundになりにくいため
instanceのCPUを使えるようになった
コスト削減と可用性向上を目的としてmaster統合を実施
 IOPS費用がProvisioned IOPS(月額固定)からほぼ従量課金にな
るので負荷の変化が大きいゲームにおいてはIOPS費用が減る
イベント開始・終了の負荷が非常に高いが、平常時は落ち着いている
Amazon RDS for MySQLのコスト削減について
移行した結果
 Write Latency/IOPSとDB Connectionsが減少
 Binlogをoffにしている事が関係していると思われる。同じIOPS前提で
コストを計算していたため、想定よりコストが下がりそう。
 その他
 Amazon CloudWatchのMetricsが非常に増えているので地味に便利
 当GameではWriteがAsyncだが、Sync WriteなGameの場合
Latencyの向上が見込めそう
Amazon RDS for MySQLのコスト削減について
移行でのTips
 RRはすべて一時利用不可に
 Amazon RDS for MySQLの場合
 Master down時でもslaveは利用可能
 Amazon Auroraの場合
 Master down時には数秒間全slaveが利用不可
 Amazon RDS for MySQL 5.5とはReplicationできない
 事前に5.6にUpdateが必要
Amazon RDS for MySQLのコスト削減について
+
大量のログをなるべく安く
簡単にさばく方法
Glossom 開発部 籠島啓介
+ 目次
 Glossom 会社概要
 Glossomで扱うログ
 AWSをなるべく安く便利に使う
 最後に
+ Glossom 会社概要
 元グリー広告統括部が分社化
 広告のシステムの開発・運用など
+ Glossomで扱うログ
 10億弱/日 の 入札ログ (DSP)
 毎時集計してレポートに反映
 商品づくりのために入札ログの解析も必要(頻度低)
 これらのログの処理にAWSを利用
+ 集計システム全体図
Amazon
ECS
バッチ処理
集計
解析
Amazon
EMR
Amazon
Redshift
Amazon
S3
ストレージ
各種webサーバ
(担当エンジニア)
バッチサーバ
+ AWSをなるべく安く便利に使う
 生ログをltsv形式にする
 生ログをs3に直接fluentdでアップロード
 batchにAmazon ECSを使う
 Amazon EMR + SPOTインスタンス
 Amazon EMR + S3Dist Cp
 Amazon Redshiftのインスタンス制御
+ 集計システム全体図
Amazon
ECS
バッチ処理
集計
解析
Amazon
EMR
Amazon
Redshift
Amazon
S3
ストレージ
各種webサーバ
(担当エンジニア)
バッチサーバ
+ 生ログをltsvにする
 ltsv形式だとparseの計算量が少ない
 40カラムほどのデータの単純集計で集計時間が約半分になった
{“time”:1462174589,“column1”:”value1”, … “columnN”:”valueN”}
time:1462174589[tab]column1:value1[tab] … [tab]”columnN”:”valueN”
+ 生ログをAmazon S3に
直接fluentdでアップロード
 Amazon S3はコスパが良い→積極的に利用
 input時 転送量無料
 fluentdのreceiverは立てない→障害ポイントが減る
 fluentdのプラグインが便利
 fluent-plugin-s3 (td-agent標準で付属)
 サービス要件上リアルタイム性が不要なのでkinesis等は使わず
+ 集計システム全体図
Amazon
ECS
バッチ処理
集計
解析
Amazon
EMR
Amazon
Redshift
Amazon
S3
ストレージ
各種webサーバ
(担当エンジニア)
バッチサーバ
+ batchにAmazon ECSを使う
 batch処理をするインスタンスとして
Amazon ECSのクラスタを利用
 batchの冗長化
 スケーラビリティ向上
 batch処理ごとに異なる環境を作れる
+ 集計システム全体図
Amazon
ECS
バッチ処理
集計
解析
Amazon
EMR
Amazon
Redshift
Amazon
S3
ストレージ
各種webサーバ
(担当エンジニア)
バッチサーバ
+ Amazon EMRでSPOTインスタンス
 利点
 価格を大幅に抑えられる (1/2 〜 1/8 程度)
 欠点
 インスタンスを上げられなかった時のハンドリングが面倒
 10分経っても立ち上がらなかったらON DEMAND
+ Amazon EMR + S3DistCp
 集計処理前にAmazon EMRクラスタのhdfsにデータを入れておく
 クラスタのDisk IOをフルに活用
S3DistCp
Amazon
S3
ストレージ 集計
Amazon
EMR
+ 集計システム全体図
Amazon
ECS
バッチ処理
集計
解析
Amazon
EMR
Amazon
Redshift
Amazon
S3
ストレージ
各種webサーバ
(担当エンジニア)
バッチサーバ
+ Amazon Redshiftのインスタンス制御
 使う時だけインスタンスを立ち上げる
 データのインポートスクリプトを用意
 元データは集計時に予め作っておきAmazon S3へ
+ 最後に
 AWSは使い方を工夫することで
安く便利に利用できる
 一番大事なのはこまめなコストチェック
+ Cost Explorer
+
インフラツールも
サーバレスで安く
開発本部 インフラストラクチャ部
堀口 真司
+
お高い順
Compute
RDBMS
他
>>>
ちいさい機能の
フルマネージドは
比較的安い!
+
深夜に定期実行
ssh
API
Service Stop 等
安全にスナップショットを
とるための処理
t2.micro
Amazon
EBS
snapshot
Amazon EBS スナップショット取得事例
+
API
SSM
起点は
Amazon
CloudWatch
Events
脱 EC2 !
100万回で1$
という感覚
SSM にすることで実行ログが
Amazon CloudWatch Logs
と AWS CloudTrail と SSM
Output に残り不具合調査や監
査が出来るようになった。
ssh 秘密鍵の管理や実行イン
スタンスの心配も不要に。
- t2.micro
+ AWS Lambda
+ Amazon DynamoDB
AWS
Lambda
Amazon
CloudWatch
Amazon
DynamoDB
Amazon
EBS
snapshot
+
コツ
• AWS Lambda 実行が失敗する可能性がある
• 状態を Amazon DynamoDB に入れておく
• 進捗するたびに Amazon DynamoDB に Put する
• (ただし、一度も実行時の障害を観測したことは無い)
• 同時実行される可能性がある
• Amazon DynamoDB で悲観ロックを行う
• 時間がかかる可能性がある
• 寿命は最大でも5分、関数を分ける
• 5分以内に終わりそうな関数 → 成功したら次の関数
+
API
起点は
CloudWatch
Events
色々 AWS の状態を
問い合わせ状態が正
しいかチェックする
AWS Lambda の実行失敗は CloudWatch
Alarm でトリガーできる。
一分間隔で三回リトライしてくれるので、トリ
ガーもそれにあわせて閾値の設定が良く合う
通知ロジックも
AWS Lambda
で…
3かい
- t2.micro
+ AWS Lambda
+ CloudWatch Alarm
+ Amazon DynamoDB
Amazon
CloudWatch
監視ロジックの例
+
AWS Lambda とゲーム API 系
• Amazon EC2 を使わない
• 高いので API Gateway も使わない
• 小さいレスポンスなら1リクエストあたり、10倍ぐらい差がつくことも。
• ゲームは HTTP(S) である必要が無いので AWS-SDK を使う
• 直接 Invoke する。しかし Native SDK の内部実装では libcurl+openssl
• Invoke できる Credentials をアプリに入れる
• ストレージはもちろん Amazon DynamoDB
+ AWS SDK をアプリ
へ組み込み
Credentials も
入れちゃう
API Gateway をつかわず
Lambda 直行で激安
- t2.micro
- Elastic Load Balancing
- サーバ証明書
+ AWS Lambda
+ Amazon DynamoDB
+
コツ
• Credentials は流出する可能性がある
• アプリの解析、http ヘッダ解析
• 流出前提で最低限の Policy のみ設定する
• でもふつうの https を叩かれるよりは敷居が高いはず
• AWS Lambda 内の非同期処理は並列に行う
• 実行時間で課金されるため、なるべく待ち時間を減らす
+
Amazon EC2 – 時間指定の動作
• 勤務時間だけ動作させるのが、当初のモチベーション
• CloudWatchEvents で個別指定ではない
• スケジュールをかんたんに設定できるように Tags 操作
• アプリサーバにも応用
• 毎日の予測できる急激な負荷対応
• 予測できないもの、ゆるやかなものは Auto Scaling Group へ
+ 日 月 火 水 木 金 土
平日9時半〜18時半で設定
9時半に StartInstance
18時半に StopInstance
Rate 5min 〜
describeInstances 1/(24*7)*((18.5-9.5)*5)
= 稼働率 約 27%
Jenkins 等のツール
検証、実験用インスタンス
共用の開発サーバ
など…
VM の
suspend と違
いメモリが揮
発する。用途
に相性がある
。
+ 日 月 火 水 木 金 土
お昼
Rate 5min 〜
describeInstances
夕方
夜
仕組みや設定が
単純なので DevOps でい
うところの
Dev におまかせ。
ゆるやかな部分は ASG
にて運用
+
MySQL
master
普通のレプリケーション。
しかし、安いとはいえ、
事実上構成管理ツール
が必須なのでこのままでは運
用できない。
MySQL
replica
MySQL
replica
MySQL
replica
↑
気合のある誰か
Or
自動でうごく何か
↓
RDS より安く!
費用面だけな
ら三割ぐらい
安い
+
MySQL
master
MySQL
replica
MySQL
replica
MySQL
replica
PowerDNS
x3
LVS-NAT x2
MultiMaster
MySQL
Worker
MongoDB x3
オンプレの
オーケストレーションツール
Amazon
Route 53
t2.micro
Amazon
DynamoDB
AWS に移植した
オーケストレーションツール
PowerDNS を
Amazon Route53
へ移植し、
MongoDB を
Amazon
DynamoDB へ移植
。
ワーカーもスモール
スタート
10台! 1台!
+
まとめ
• 安い順に
1. AWS Lambda と Amazon CloudWatch Events
2. AWS Lambda と SSM で Amazon EC2 利用
3. AWS Lambda と API Gateway, S3 等イベントソース
4. AWS Lambda VPC 内実行 で Amazon EC2 連携
1. NAT や Proxy の都合がつくなら結構安いかも
5. ちょっとしたものは Amazon DynamoDB
+
ありがとうございました

More Related Content

What's hot

What's hot (20)

本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
JIRA / Confluence の 必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだJIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の 必須プラグインはこれだ
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
WayOfNoTrouble.pptx
WayOfNoTrouble.pptxWayOfNoTrouble.pptx
WayOfNoTrouble.pptx
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集
 

Similar to GREE 流!AWS をお得に使う方法

初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし
Oonishi Takaaki
 

Similar to GREE 流!AWS をお得に使う方法 (20)

AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
 
AWS Black Belt Online Seminar 2018 Amazon WorkSpaces
AWS Black Belt Online Seminar 2018 Amazon WorkSpacesAWS Black Belt Online Seminar 2018 Amazon WorkSpaces
AWS Black Belt Online Seminar 2018 Amazon WorkSpaces
 
20180207 AWS blackbelt online seminar Amazon Workspaces
20180207 AWS blackbelt online seminar Amazon Workspaces20180207 AWS blackbelt online seminar Amazon Workspaces
20180207 AWS blackbelt online seminar Amazon Workspaces
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
 
コスト削減から考えるAWSの効果的な利用方法
コスト削減から考えるAWSの効果的な利用方法コスト削減から考えるAWSの効果的な利用方法
コスト削減から考えるAWSの効果的な利用方法
 
Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築
 
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
 
現場開発者視点で答えるWindows Azure
現場開発者視点で答えるWindows Azure現場開発者視点で答えるWindows Azure
現場開発者視点で答えるWindows Azure
 
AWS初心者向けWebinar AWSでBig Data活用
AWS初心者向けWebinar AWSでBig Data活用AWS初心者向けWebinar AWSでBig Data活用
AWS初心者向けWebinar AWSでBig Data活用
 
Amazon Web Services 最新事例集
Amazon Web Services 最新事例集Amazon Web Services 最新事例集
Amazon Web Services 最新事例集
 
AWSのNoSQL入門
AWSのNoSQL入門AWSのNoSQL入門
AWSのNoSQL入門
 
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデートAmazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
 
Modernizing Big Data Workload Using Amazon EMR & AWS Glue
Modernizing Big Data Workload Using Amazon EMR & AWS GlueModernizing Big Data Workload Using Amazon EMR & AWS Glue
Modernizing Big Data Workload Using Amazon EMR & AWS Glue
 
[Cloud OnAir] Google Cloud における RDBMS の運用パターン 2020年11月19日 放送
[Cloud OnAir] Google Cloud における RDBMS の運用パターン 2020年11月19日 放送[Cloud OnAir] Google Cloud における RDBMS の運用パターン 2020年11月19日 放送
[Cloud OnAir] Google Cloud における RDBMS の運用パターン 2020年11月19日 放送
 
初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし
 
乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説
乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説
乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説
 
HTML5J AWS でできるIoT
HTML5J AWS でできるIoTHTML5J AWS でできるIoT
HTML5J AWS でできるIoT
 
AIやマイクロサービスを活用したDynamoDB節約術
AIやマイクロサービスを活用したDynamoDB節約術AIやマイクロサービスを活用したDynamoDB節約術
AIやマイクロサービスを活用したDynamoDB節約術
 
Amazon Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例
Amazon Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例Amazon Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例
Amazon Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例
 
クラウドTCOの真実
クラウドTCOの真実クラウドTCOの真実
クラウドTCOの真実
 

More from gree_tech

More from gree_tech (20)

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
 
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
 
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
 
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
 
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
 
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
 
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてSINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
 
海外展開と負荷試験
海外展開と負荷試験海外展開と負荷試験
海外展開と負荷試験
 
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
 
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
 
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
 
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件についてデータエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
 
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジーシェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
 
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
 
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
 
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
 
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
 
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
 

GREE 流!AWS をお得に使う方法