SlideShare a Scribd company logo
1 of 87
Download to read offline
Copyright 2021 Toranoana Inc.
Fantiaから学ぶ
GCP運用のノウハウ
植竹 惇
虎の穴ラボ株式会社
1
Copyright 2021 Toranoana Inc.
2
Twitterへのご投稿は、
#とらラボ1
でお願いします!
質問、感想・コメント等
※ LT内容に関する
ご質問はYoutubeコメントにお願いします🙏
Copyright 2021 Toranoana Inc.
名前:植竹 惇

担当業務:Fantiaを始めとする

     新規事業開発のマネジメントリーダー

業務使用言語:Rails

利用クラウド:GCP、AWS

最も多くやったこと:Fantiaの負荷対策

今のブーム:ニチアサ、面白WEB漫画、タイムリープヤンキー漫画

前のブーム:スポーツ漫画(当の本人は運動できません)

自己紹介

3
Copyright 2021 Toranoana Inc.
目次



1. これまでのFantiaの傾向推移



1-1. ファンクラブ数の増加

1-2. クリエイターカテゴリの変化



2. 利用してきたGCP機能



2-1. InstanceGroups

2-2. CloudArmor

2-3. CloudDNS

2-4. Monitoring



3. 今後利用していきたいGCP機能

4
ここまでTechDay2と同じ
Copyright 2021 Toranoana Inc.
早速ですが

5
Copyright 2021 Toranoana Inc.
世は支援プラットフォーム

戦国時代

6
Copyright 2021 Toranoana Inc.
7
海外
日本
現在
数年前
Patreon
Onlyfans
PIXIV FANBOX CAMPFIRE Community
note
Ci-en
Copyright 2021 Toranoana Inc.
8
現在の    の立ち位置



・わりと初期にサービスインしている古参



・日本国内(のアダルト部分)で存在感を発揮



・二次元、三次元ともに活発



Copyright 2021 Toranoana Inc.
9
    のファンクラブ増加



中の人も驚愕の

増加ペース

Copyright 2021 Toranoana Inc.
10
    のPV数増加



1億PV超え!

Copyright 2021 Toranoana Inc.
参入クリエイターの傾向

11
Copyright 2021 Toranoana Inc.
1年目:イラスト・漫画ファンクラブ中心の黎明期






2年目:3Dアニメ、MMD層の増加






3年目:コスプレイヤー層の増加




4年目:    〃





5年目:Youtuber、女性向け音声層の増加


12
Copyright 2021 Toranoana Inc.
現在のFantiaは



(アダルト色が強く)

幅広いクリエイター層を

カバーする総合支援プラットフォーム

13
Copyright 2021 Toranoana Inc.
そんなFantiaを5年間支えたクラウドインフラが



『GCP』です

14
Copyright 2021 Toranoana Inc.
15
利用しているGCP機能







    その1. InstanceGroups

Copyright 2021 Toranoana Inc.
16
Instance Groups







    

ロードバランサに接続可能な、

VMインスタンスの集合体。



Kubernetesが登場する以前は

主流となっていた

オートスケール可能な

マネージドサーバー。

Copyright 2021 Toranoana Inc.
17
Instance Groups







    

今となっては当たり前だが…



コンソール画面上で、

サーバーの最小・最大台数を

自由に設定できる。

Copyright 2021 Toranoana Inc.
18
Instance Groups







    

インスタンスグループは、

『インスタンステンプレート』

から作成する。



複数のサーバのデータ、スペックを
統一して作成するため、

元となる設定が必要となる。

Copyright 2021 Toranoana Inc.
19
そんなインスタンスグループと

内部で作れるVMインスタンスですが、



利用してきてとある問題に

遭遇しました

Copyright 2021 Toranoana Inc.
20
VMインスタンスのトラブル







    

GCPのVMインスタンスは、

現在「E2」「N2」「N2D」「N1」

とCPUとメモリのパフォーマンスが

異なるマシン設定を用意しています。



現在は第2世代の利用が主流に

なっているようなのですが……



Copyright 2021 Toranoana Inc.
21
VMインスタンスのトラブル







    

インスタンスグループで

VMインスタンス作成する途中、

『作成中』の状態のまま止まってしまう

ことがありました。

この状態のまま、

変化しない

Copyright 2021 Toranoana Inc.
22
VMインスタンスのトラブル







    

原因1:アカウントにおけるリソースの予約枠が不足している。

 アカウントごとに利用されているマシンのリソースは

 制限されていて、解除のためには申請が必要。

 IAMの『割り当て』ページで確認可能。



Copyright 2021 Toranoana Inc.
23
VMインスタンスのトラブル







    

原因2:利用するリージョン全体で

 対象のリソースが不足している。



 この場合はアカウント関係なく、

 追加の作成が不可能となる。



 解決方法は

 『リージョンを変える』または

 『マシンタイプを変える』

 のいずれか

Copyright 2021 Toranoana Inc.
24
これまでの運用で、

どちらも経験しました。



リージョン全体でのリソース制限は

気をつけようがないですが、

可能性としては十分ありえます。

Copyright 2021 Toranoana Inc.
25
利用しているGCP機能







     その2. CloudArmor

Copyright 2021 Toranoana Inc.
26
サービス規模とアクセスが増えてくると何が起きるか?

Copyright 2021 Toranoana Inc.
27
セキュリティリスクの増大

Copyright 2021 Toranoana Inc.
28
それを解決するのがCloudArmor

Copyright 2021 Toranoana Inc.
29
CloudArmor







    

CloudArmorとは



ロードバランサーと連携する

かなり優秀な

セキュリティサービス







Copyright 2021 Toranoana Inc.
30
CloudArmor







    

CloudArmorが出来ること



・個別でのIP制限設定



・ルール設定による、アクセス攻撃へのWAF機能



・Google本体も利用している自動DDoSフィルタ

Copyright 2021 Toranoana Inc.
31
CloudArmor







    

WAFのルール設定について



右の画像がルール追加のサンプル

この場合は『sqli-stable』という

SQLインジェクション防止の

事前構成ルールの設定。



2番目の引数は除外する

詳細ルールを設定できる。

Copyright 2021 Toranoana Inc.
32
CloudArmor







    

このような詳細ルールが定義されている。

ルールに合致するアクセスを検知してブロックすることが可能。

Copyright 2021 Toranoana Inc.
33
だがちょっと待たれよ



WAFで弾きたくないアクセスを

弾いてしまう場合はないか?

Copyright 2021 Toranoana Inc.
34
プレビュー機能を使えば大丈夫

Copyright 2021 Toranoana Inc.
35
CloudArmor







    

ルールの設定で



『プレビューのみ』

の設定を有効にすると、



実際にブロックはせずに、

ロードバランサーのログに

『対象のアクセスであること』

の検知のみ行える。

Copyright 2021 Toranoana Inc.
36
CloudArmor







    

ロードバランサーの

GCPロギングにて、



右画像のような形式で

記録される。



『previewSecurityPolicy』

の中身がプレビューで検知した

内容の詳細となる。



『preconfiguredExprIds』

が実際に検知した詳細ルール。

Copyright 2021 Toranoana Inc.
37
プレビュー機能で

安全性を確保してから

適応することが可能

①プレビューでWAFルールの設定
②数日稼動
③ログでプレビュー結果を確認
④アクセスに問題なければ
プレビュー無効
Copyright 2021 Toranoana Inc.
38
CloudArmor







    

最後にDDoS防御です。



ユーザ自身の設定は必要なく、


CloudArmorを設定するだけで、

Googleが自動で検知し、

知らぬうちに防いでくれます。



ブロックのログもなく、

詳細については不明。

※画像引用元ページ 

https://cloud.google.com/blog/ja/products/gcp/getting-to-know-cloud-armor-d
efense-at-scale-for-internet-facing-services 



Copyright 2021 Toranoana Inc.
39
GCPを利用している場合に限りますが

『CloudArmor』は

非常におすすめなサービスです。

Copyright 2021 Toranoana Inc.
40
利用しているGCP機能







      その3. CloudDNS

Copyright 2021 Toranoana Inc.
41
サービスの規模が大きくなると

こう思う人は多いはず

Copyright 2021 Toranoana Inc.
42
AWS Auroraを使いたい!

Copyright 2021 Toranoana Inc.
43
AWS Auroraの利点



・ディスクの容量を気にしなくて良い



・リードDBのオートスケールが可能



・複数のリードDBに対するDNSホストはひとつだけ

Copyright 2021 Toranoana Inc.
44
AWS Auroraの利点



・ディスクの容量を気にしなくて良い



・リードDBのオートスケールが可能



・複数のリードDBに対するDNSホストはひとつだけ

特に重要
Copyright 2021 Toranoana Inc.
45
Railsでプライマリ/リードDBの切り替え





方法1:Rails6のマルチプルデータベース機能を使う



方法2:SwitchPointなどのGemを利用する





どちらもリードレプリカのロードバランシングには

対応しきれてない。

Copyright 2021 Toranoana Inc.
46
AWSもGCPも複数のリードDBを作れるが、

DBのリソース拡張で差が出てくる。

primary
read-1 read-2
DNSホスト
アプリケーション処理
primary
read-1 read-2
DNSホスト-2
アプリケーション処理
DNSホスト-1
AWS GCP
Copyright 2021 Toranoana Inc.
47
これを解決するのがCloudDNS

Copyright 2021 Toranoana Inc.
48
ロードバランシングの機能を持ち、

CloudSQLとの接続が可能。



つまりDNSラウンドロビンの機能を

持っている。



CloudDNSの接続先IPにアクセスすると

ホスト1かホスト2のいずれかに

振り分けてくれる。

primary
read-1 read-2
DNSホスト-2
アプリケーション処理
DNSホスト-1
GCP
CloudDNS
CloudDNS

Copyright 2021 Toranoana Inc.
49
CloudDNS

レコードセットの設定

GCP内のネットワークで使える
DNSホスト名
ロードバランシング先の内部 IP
CloudSQLのIPを設定できる
Copyright 2021 Toranoana Inc.
50
これでシームレスにリードDBでの

負荷分散が可能になります

Copyright 2021 Toranoana Inc.
51
利用しているGCP機能







      その4. Monitoring

Copyright 2021 Toranoana Inc.
52
規模の大きいサービスには必須の監視機能



GCPだと『Monitoring』がスタンダート

Copyright 2021 Toranoana Inc.
53
サーバーやDB、ロードバランサなど

様々な機能の数値をグラフで可視化

してくれる機能。



監視できる値はかなり多彩なので、

全容の把握はなかなか難しい…。

Monitoring

Copyright 2021 Toranoana Inc.
54
特に便利だと思った

メトリクス(計測指標)設定

を紹介します

Copyright 2021 Toranoana Inc.
55
スロークエリ監視メトリクス 



●Resource type

Cloud SQL Database 



●metric

Logbytes



●Filters

log=mysql-slow.log 



CloudSQLのスロークエリログを 

監視する。



クエリの量が多いとグラフが大きく 

上がったりするので、 

DBの負荷問題が検知しやすい。 

Monitoring

Copyright 2021 Toranoana Inc.
56
CloudArmorプレビュー 監視メトリクス



●Resource type

Network Security Policy 



●metric

Previewed request count 



●Filters

blocked=true



CloudArmorのプレビュー検知数を 

出力する。



プレビューで引っかかったアクセスが 

どれくらいあるかを見るときに便利。 

実際にブロックした数も出せる。 

Monitoring

Copyright 2021 Toranoana Inc.
57
LBレイテンシー監視メトリクス



●Resource type

Load Balancing Rule 



●metric

Backend latency



●Filters

backend_target_name=LBの バックエンド名



ロードバランサーにおけるバックエンド側の 

レイテンシー(遅延時間)を見れる。 



負荷対策の結果や、機能開発での速度が 

変わっているかなどをチェックするときに 

重宝する。

Monitoring

Copyright 2021 Toranoana Inc.
58
これらを駆使することで

問題の検知や実績の計測が

よりスムーズになりました

Copyright 2021 Toranoana Inc.
59
ここからはまだ実働していないですが

今後導入してみたい機能の話です

Copyright 2021 Toranoana Inc.
60
今後利用していきたいGCP機能





新しい何かを導入したい!



しかしFantiaは24時間稼動し続ける

大規模なサービスで

安定した稼動が求められる……

Copyright 2021 Toranoana Inc.
61
今後利用していきたいGCP機能



サービス開発・運用あるあるな欲求 

新しいインフラ機能を

導入したい

インフラ費用を

削減したい

開発効率を上げたい

稼動可能な

エンジニアの条件を

増やしたくない

デプロイを早くしたい

障害を防ぎたい

開発工数を

最小限に

Copyright 2021 Toranoana Inc.
開発者が求めるもの
サービスオーナーが求めるもの
62
今後利用していきたいGCP機能



新しいインフラ機能を

導入したい

開発効率を上げたい

デプロイを早くしたい

障害を防ぎたい

稼動可能な

エンジニアの条件を

増やしたくない

開発工数を

最小限に

インフラ費用を

削減したい

Copyright 2021 Toranoana Inc.
開発者が求めるもの
サービスオーナーが求めるもの
63
今後利用していきたいGCP機能



新しいインフラ機能を

導入したい

開発効率を上げたい

デプロイを早くしたい

障害を防ぎたい

稼動可能な

エンジニアの条件を

増やしたくない

開発工数を

最小限に

新しい仕組みを導入するには、 

左側をある程度満たした上で 

実現する必要がある 

インフラ費用を

削減したい

Copyright 2021 Toranoana Inc.
64
今後利用していきたいGCP機能







新しい『何か』を導入したいだけでは

動機としては不十分

Copyright 2021 Toranoana Inc.
開発者が求めるもの
サービスオーナーが求めるもの
65
今後利用していきたいGCP機能



新しいインフラ機能を

導入したい

開発効率を上げたい

デプロイを早くしたい

障害を防ぎたい

稼動可能な

エンジニアの条件を

増やしたくない

開発工数を

最小限に

インフラ費用を

削減したい

WinWinで最も重要

Copyright 2021 Toranoana Inc.
66
今後利用していきたいGCP機能





一部の処理だけを切り出して

新しい機能を使いつつ

障害予防を行いたい



(できればコスト削減も) 

Copyright 2021 Toranoana Inc.
67
今後利用していきたいGCP機能



① セッション保持しない外部からのREST API

 ーアクセス頻度をコントロールしにくい



 ー柔軟なオートスケールが必要だが、本体サービスとは切り離したい





② 定期バッチ処理

 ーバッチ処理がサービス拡大とともに増えてゆくリスク



 ー単一サーバーだけで実施する場合はメモリ不足の懸念など





Copyright 2021 Toranoana Inc.
68
今後利用していきたいGCP機能







Cloud Runを使って

これらを実現できないか

Copyright 2021 Toranoana Inc.
69
今後利用していきたいGCP機能



CloudRun  とは



GoogleKubernetesEngineと同様の

コンテナ環境による

オートスケールプラットフォーム



Kubernetesベースのサービスではないため、

Kubernetesの習熟が不要



Copyright 2021 Toranoana Inc.
70
今後利用していきたいGCP機能



確かめたいこと



① RailsをCloudRunで稼働できるのか



② GCEと同様のAPI動作を実現できるのか



③ 定期バッチ処理を実現できるのか

Copyright 2021 Toranoana Inc.
71
今後利用していきたいGCP機能



やったこと



① userデータを取得するサンプルアプリ作成



② 上記アプリをDocker化



③ 『Container Registry API』でイメージをプッシュ

ここに関して
今回は省略
Copyright 2021 Toranoana Inc.
72
今後利用していきたいGCP機能



Container Registry APIにプッシュするには



① gcloud auth configure-docker で認証



② docker build -t ローカルイメージ名 .

でイメージ作成



③ docker tag ローカルイメージ名 ホスト名/プロジェクト名/イメージ名:タグ

  でタグ作成



④ docker push ホスト名/プロジェクト名/イメージ名:タグ

  にてプッシュ

Copyright 2021 Toranoana Inc.
73
今後利用していきたいGCP機能



こんな形で、GCPのContainer Registryに保存されます



Copyright 2021 Toranoana Inc.
74
今後利用していきたいGCP機能

環境変数の設定





アプリ構築において大事な要素




GUI上で項目が用意されており、




簡単に設定することができる。

Copyright 2021 Toranoana Inc.
75
今後利用していきたいGCP機能

Cloud SQLへの接続設定が可能



他のGCPサービスに接続するには

サーバーレスVPCコネクタが

必要となる



例:

Cloud Run ⇒ Memorystore

Cloud Run ⇒ Bigquery

Copyright 2021 Toranoana Inc.
76
今後利用していきたいGCP機能

設定をした上での

デプロイは左記のような

コマンドで実行が可能

gcloud beta run deploy cloud-run-sample 

--image asia.gcr.io/サービス名/cloud_run_sample 

--add-cloudsql-instances cloud-run-sample-db 

--allow-unauthenticated 

--min-instances 1 

--region asia-northeast1 

--memory 512Mi 

--set-env-vars " 

RAILS_ENV=production, 

RACK_ENV=production, 

MYSQL_CONNECT=CloudProxyによるCloudSQL接続先,

MYSQL_PASSWORD=DBパスワード, 

SECRET_KEY_BASE=Railsのシークレットキー 

"



Copyright 2021 Toranoana Inc.
77
今後利用していきたいGCP機能

Dockerの設定に応じて、

URLのパスでそのままアクセスが可能。

Copyright 2021 Toranoana Inc.
78
今後利用していきたいGCP機能

CloudRun初期設定時に、

トラフィックの設定を選べる。



CloudLoadBalancingとの接続も

可能なため、CloudArmorを経由して

セキュアな構成にすることも可能。

Copyright 2021 Toranoana Inc.
79
今後利用していきたいGCP機能



構築してみて



① 手順はかなりシンプルだが制限はいくつかある



② 他のGCPサービスとの連携は個別に設定が必要



③ 機能は徐々に増えているので、

 今後活躍の幅は大きく広がりそう

Copyright 2021 Toranoana Inc.
80
今後利用していきたいGCP機能



一部のAPI処理をCloudRunに置き換える場合

デメリット



・GCP内のサービスを扱うのに 

 個別の設定が必要となる 



・アプリのサーバーに必要な鍵ファイルが 

 あれば渡し方を考える必要がある 



・マシンスペックの幅が広くない 

 最大が4vCPUのメモリ8GB 

メリット



・オートスケールが楽 



・デプロイがかなり高速 



・リージョン障害があった場合でも 

 切り替えが容易



・メンテナンスによる瞬断の心配がなくなる 



・前提知識が最小限なので、 

 GCP限定のガラパゴス技術にはなりにくい 



Copyright 2021 Toranoana Inc.
81
今後利用していきたいGCP機能











CloudRunで定期バッチ

を実行するにはどうすれば?

Copyright 2021 Toranoana Inc.
82
今後利用していきたいGCP機能











GCPの公式で『Cloud Scheduler』

による方法を案内している

参考:https://cloud.google.com/run/docs/triggering/using-scheduler?hl=j a

Copyright 2021 Toranoana Inc.
83
今後利用していきたいGCP機能





CloudRunはHTTPSでの公開しかできない

よって以下の方法でタスク実行を実現



① Cloud Schedulerでトリガーを設定



② Scheduler内部でCloudRunのアクセスを実行



③ 限定公開されているCloudRunが受信して処理を実行

Copyright 2021 Toranoana Inc.
84
今後利用していきたいGCP機能

Cloud Schedulerのジョブ作成画面です。 





CloudRunのURLを設定すればよいだけなので、 

かなり簡単です。



ただしセキュリティリスクがあるので、 

HTTPヘッダーにトークンキーを設定したり、 

CloudRunでの受け取り側でスケジュールからの 

実行のみを受け付けるようにするなどの、 

対応が必要となります。 



Copyright 2021 Toranoana Inc.
85
今後利用していきたいGCP機能



定期バッチをCloudRunに置き換える場合

デメリット



・セキュリティ対策をしっかりしないと危ない 



・CloudRunのタイムアウト時間が 

15分なので長時間稼動するバッチには 

 使えない



・マシンスペックが限定的なので、 

 メモリを多く消費するようなバッチ作業は 

 不可能

メリット



・サーバー管理が楽に 



・デプロイがかなり高速 



・必要なリソースだけを適切に立ち上げるので 

 コスト削減につながる 

Copyright 2021 Toranoana Inc.
86
今後利用していきたいGCP機能











APIも定期バッチもデメリット以上に、

Cloud Runで実行するメリットがあるので、

実用する価値はあるかと思います

Copyright 2021 Toranoana Inc.
本日のまとめ



1. これまでのFantiaの傾向推移



クリエイターはかなり増えてきており、時期によって増加の傾向が異なる 



2. 利用してきたGCP機能



現在利用しているサーバー機能の「InstanceGroups」

セキュリティに対する「CloudArmor」、

負荷に対する「CloudDNS」「Monitoring」の使い方を紹介



3. 今後利用していきたいGCP機能



「CloudRun」を中心に、既に稼働しているサービスで使う方法を検証してみた

87

More Related Content

What's hot

DNS移転失敗体験談
DNS移転失敗体験談DNS移転失敗体験談
DNS移転失敗体験談oheso tori
 
Yoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作るYoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作るshimadah
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニングyoku0825
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化Takuya ASADA
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Shin Ohno
 
Machine Learning Night - Preferred Networksの顧客向けプロダクト開発 - 谷脇大輔
Machine Learning Night - Preferred Networksの顧客向けプロダクト開発 - 谷脇大輔Machine Learning Night - Preferred Networksの顧客向けプロダクト開発 - 谷脇大輔
Machine Learning Night - Preferred Networksの顧客向けプロダクト開発 - 谷脇大輔Preferred Networks
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
20分でわかるgVisor入門
20分でわかるgVisor入門20分でわかるgVisor入門
20分でわかるgVisor入門Shuji Yamada
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2Preferred Networks
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能Kohei Tokunaga
 
通信対戦ゲームを作った話
通信対戦ゲームを作った話通信対戦ゲームを作った話
通信対戦ゲームを作った話mipsparc
 
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウトMasahiko Sawada
 
インフラCICDの勘所
インフラCICDの勘所インフラCICDの勘所
インフラCICDの勘所Toru Makabe
 

What's hot (20)

eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについてeBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
 
DNS移転失敗体験談
DNS移転失敗体験談DNS移転失敗体験談
DNS移転失敗体験談
 
NW入門
NW入門NW入門
NW入門
 
Yoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作るYoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作る
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
 
Machine Learning Night - Preferred Networksの顧客向けプロダクト開発 - 谷脇大輔
Machine Learning Night - Preferred Networksの顧客向けプロダクト開発 - 谷脇大輔Machine Learning Night - Preferred Networksの顧客向けプロダクト開発 - 谷脇大輔
Machine Learning Night - Preferred Networksの顧客向けプロダクト開発 - 谷脇大輔
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
20分でわかるgVisor入門
20分でわかるgVisor入門20分でわかるgVisor入門
20分でわかるgVisor入門
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
 
通信対戦ゲームを作った話
通信対戦ゲームを作った話通信対戦ゲームを作った話
通信対戦ゲームを作った話
 
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
インフラCICDの勘所
インフラCICDの勘所インフラCICDの勘所
インフラCICDの勘所
 

Similar to Fantiaから学ぶgcp運用のノウハウ

Scaling Up Lookout
Scaling Up LookoutScaling Up Lookout
Scaling Up LookoutLookout
 
John Newton DevCon 2011 London Keynote
John Newton DevCon 2011 London KeynoteJohn Newton DevCon 2011 London Keynote
John Newton DevCon 2011 London KeynoteAlfresco Software
 
Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101Martin Hamilton
 
データマネジメント今昔物語〜プロダクトの視点から見るカオスと進化 #TechMar
データマネジメント今昔物語〜プロダクトの視点から見るカオスと進化 #TechMarデータマネジメント今昔物語〜プロダクトの視点から見るカオスと進化 #TechMar
データマネジメント今昔物語〜プロダクトの視点から見るカオスと進化 #TechMarK T
 
Herramientas para sacar el mayor rendimiento de tu app por Google
Herramientas para sacar el mayor rendimiento de tu app por Google	Herramientas para sacar el mayor rendimiento de tu app por Google
Herramientas para sacar el mayor rendimiento de tu app por Google melidevelopers
 
2016 - 10 questions you should answer before building a new microservice
2016 - 10 questions you should answer before building a new microservice2016 - 10 questions you should answer before building a new microservice
2016 - 10 questions you should answer before building a new microservicedevopsdaysaustin
 
Peter Coffee CIO Forum 20100406
Peter Coffee CIO Forum 20100406Peter Coffee CIO Forum 20100406
Peter Coffee CIO Forum 20100406Peter Coffee
 
DevOps vs. ShadowOps (Pulse 2013)
DevOps vs. ShadowOps (Pulse 2013)DevOps vs. ShadowOps (Pulse 2013)
DevOps vs. ShadowOps (Pulse 2013)Michael Elder
 
From a hack to Data Mesh (Devoxx 2022)
From a hack to Data Mesh (Devoxx 2022)From a hack to Data Mesh (Devoxx 2022)
From a hack to Data Mesh (Devoxx 2022)Simon Maurin
 
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)MicroAd, Inc.(Engineer)
 
Facebook ML Infrastructure - 2018 slides
Facebook ML Infrastructure - 2018 slidesFacebook ML Infrastructure - 2018 slides
Facebook ML Infrastructure - 2018 slidesKarthik Murugesan
 
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...André Goliath
 
BOFC - A must have time saving tool for Salesforce users
BOFC - A must have time saving tool for Salesforce usersBOFC - A must have time saving tool for Salesforce users
BOFC - A must have time saving tool for Salesforce usersAtocloud
 
Exinda Kevin-Suitor-Managing-Mobile-Devices-in-the-WAN-28 june11-final
Exinda Kevin-Suitor-Managing-Mobile-Devices-in-the-WAN-28 june11-finalExinda Kevin-Suitor-Managing-Mobile-Devices-in-the-WAN-28 june11-final
Exinda Kevin-Suitor-Managing-Mobile-Devices-in-the-WAN-28 june11-finalKevin Suitor
 
Aw (3) webinar serverless-fisher-rymer
Aw (3) webinar serverless-fisher-rymerAw (3) webinar serverless-fisher-rymer
Aw (3) webinar serverless-fisher-rymerVMware Tanzu
 
React Conf 17 Recap
React Conf 17 RecapReact Conf 17 Recap
React Conf 17 RecapAlex Babkov
 

Similar to Fantiaから学ぶgcp運用のノウハウ (20)

Netmagic Cloud Computing Services
Netmagic Cloud Computing ServicesNetmagic Cloud Computing Services
Netmagic Cloud Computing Services
 
Scaling Up Lookout
Scaling Up LookoutScaling Up Lookout
Scaling Up Lookout
 
John Newton DevCon 2011 London Keynote
John Newton DevCon 2011 London KeynoteJohn Newton DevCon 2011 London Keynote
John Newton DevCon 2011 London Keynote
 
Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101
 
データマネジメント今昔物語〜プロダクトの視点から見るカオスと進化 #TechMar
データマネジメント今昔物語〜プロダクトの視点から見るカオスと進化 #TechMarデータマネジメント今昔物語〜プロダクトの視点から見るカオスと進化 #TechMar
データマネジメント今昔物語〜プロダクトの視点から見るカオスと進化 #TechMar
 
Ruby at UW C4C
Ruby at UW C4CRuby at UW C4C
Ruby at UW C4C
 
Herramientas para sacar el mayor rendimiento de tu app por Google
Herramientas para sacar el mayor rendimiento de tu app por Google	Herramientas para sacar el mayor rendimiento de tu app por Google
Herramientas para sacar el mayor rendimiento de tu app por Google
 
2016 - 10 questions you should answer before building a new microservice
2016 - 10 questions you should answer before building a new microservice2016 - 10 questions you should answer before building a new microservice
2016 - 10 questions you should answer before building a new microservice
 
Peter Coffee CIO Forum 20100406
Peter Coffee CIO Forum 20100406Peter Coffee CIO Forum 20100406
Peter Coffee CIO Forum 20100406
 
DevOps vs. ShadowOps (Pulse 2013)
DevOps vs. ShadowOps (Pulse 2013)DevOps vs. ShadowOps (Pulse 2013)
DevOps vs. ShadowOps (Pulse 2013)
 
From a hack to Data Mesh (Devoxx 2022)
From a hack to Data Mesh (Devoxx 2022)From a hack to Data Mesh (Devoxx 2022)
From a hack to Data Mesh (Devoxx 2022)
 
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
 
Facebook ML Infrastructure - 2018 slides
Facebook ML Infrastructure - 2018 slidesFacebook ML Infrastructure - 2018 slides
Facebook ML Infrastructure - 2018 slides
 
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
 
BOFC - A must have time saving tool for Salesforce users
BOFC - A must have time saving tool for Salesforce usersBOFC - A must have time saving tool for Salesforce users
BOFC - A must have time saving tool for Salesforce users
 
Exinda Kevin-Suitor-Managing-Mobile-Devices-in-the-WAN-28 june11-final
Exinda Kevin-Suitor-Managing-Mobile-Devices-in-the-WAN-28 june11-finalExinda Kevin-Suitor-Managing-Mobile-Devices-in-the-WAN-28 june11-final
Exinda Kevin-Suitor-Managing-Mobile-Devices-in-the-WAN-28 june11-final
 
Aw (3) webinar serverless-fisher-rymer
Aw (3) webinar serverless-fisher-rymerAw (3) webinar serverless-fisher-rymer
Aw (3) webinar serverless-fisher-rymer
 
TIBCO Expertise
TIBCO ExpertiseTIBCO Expertise
TIBCO Expertise
 
Shrikant_Chavan_resume
Shrikant_Chavan_resumeShrikant_Chavan_resume
Shrikant_Chavan_resume
 
React Conf 17 Recap
React Conf 17 RecapReact Conf 17 Recap
React Conf 17 Recap
 

More from 虎の穴 開発室

Railsのデバッグ どうやるかを改めて確認する
Railsのデバッグ どうやるかを改めて確認するRailsのデバッグ どうやるかを改めて確認する
Railsのデバッグ どうやるかを改めて確認する虎の穴 開発室
 
虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf虎の穴 開発室
 
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdfDeno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf虎の穴 開発室
 
toranoana.deno #6 アジェンダ 採用説明
toranoana.deno #6 アジェンダ 採用説明toranoana.deno #6 アジェンダ 採用説明
toranoana.deno #6 アジェンダ 採用説明虎の穴 開発室
 
Deno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介しますDeno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介します虎の穴 開発室
 
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –虎の穴 開発室
 
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと虎の穴 開発室
 
通販開発部の西田さん「通販開発マネジメントの5ルール」
通販開発部の西田さん「通販開発マネジメントの5ルール」通販開発部の西田さん「通販開発マネジメントの5ルール」
通販開発部の西田さん「通販開発マネジメントの5ルール」虎の穴 開発室
 
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!虎の穴 開発室
 
セキュリティを強化しよう!CloudArmorの機能解説
セキュリティを強化しよう!CloudArmorの機能解説セキュリティを強化しよう!CloudArmorの機能解説
セキュリティを強化しよう!CloudArmorの機能解説虎の穴 開発室
 
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発
JavaScript LT会 〜 React.js   Node.js歓迎 〜 Deno で やってみるweb開発JavaScript LT会 〜 React.js   Node.js歓迎 〜 Deno で やってみるweb開発
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発虎の穴 開発室
 
Amplify Studioを使ってみた
Amplify Studioを使ってみたAmplify Studioを使ってみた
Amplify Studioを使ってみた虎の穴 開発室
 
いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!虎の穴 開発室
 
【Saitama.js】Denoのすすめ
【Saitama.js】Denoのすすめ【Saitama.js】Denoのすすめ
【Saitama.js】Denoのすすめ虎の穴 開発室
 
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について虎の穴 開発室
 
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜	【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜 虎の穴 開発室
 
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント 虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント 虎の穴 開発室
 

More from 虎の穴 開発室 (20)

FizzBuzzで学ぶJavaの進化
FizzBuzzで学ぶJavaの進化FizzBuzzで学ぶJavaの進化
FizzBuzzで学ぶJavaの進化
 
Railsのデバッグ どうやるかを改めて確認する
Railsのデバッグ どうやるかを改めて確認するRailsのデバッグ どうやるかを改めて確認する
Railsのデバッグ どうやるかを改めて確認する
 
虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf
 
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdfDeno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
 
toranoana.deno #6 アジェンダ 採用説明
toranoana.deno #6 アジェンダ 採用説明toranoana.deno #6 アジェンダ 採用説明
toranoana.deno #6 アジェンダ 採用説明
 
Deno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介しますDeno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介します
 
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
 
GCPの画像認識APIの紹介
GCPの画像認識APIの紹介 GCPの画像認識APIの紹介
GCPの画像認識APIの紹介
 
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
 
GitHub APIとfreshで遊ぼう
GitHub APIとfreshで遊ぼうGitHub APIとfreshで遊ぼう
GitHub APIとfreshで遊ぼう
 
通販開発部の西田さん「通販開発マネジメントの5ルール」
通販開発部の西田さん「通販開発マネジメントの5ルール」通販開発部の西田さん「通販開発マネジメントの5ルール」
通販開発部の西田さん「通販開発マネジメントの5ルール」
 
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
 
セキュリティを強化しよう!CloudArmorの機能解説
セキュリティを強化しよう!CloudArmorの機能解説セキュリティを強化しよう!CloudArmorの機能解説
セキュリティを強化しよう!CloudArmorの機能解説
 
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発
JavaScript LT会 〜 React.js   Node.js歓迎 〜 Deno で やってみるweb開発JavaScript LT会 〜 React.js   Node.js歓迎 〜 Deno で やってみるweb開発
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発
 
Amplify Studioを使ってみた
Amplify Studioを使ってみたAmplify Studioを使ってみた
Amplify Studioを使ってみた
 
いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!
 
【Saitama.js】Denoのすすめ
【Saitama.js】Denoのすすめ【Saitama.js】Denoのすすめ
【Saitama.js】Denoのすすめ
 
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
 
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜	【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
 
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント 虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
 

Recently uploaded

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Recently uploaded (20)

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

Fantiaから学ぶgcp運用のノウハウ

  • 1. Copyright 2021 Toranoana Inc. Fantiaから学ぶ GCP運用のノウハウ 植竹 惇 虎の穴ラボ株式会社 1
  • 2. Copyright 2021 Toranoana Inc. 2 Twitterへのご投稿は、 #とらラボ1 でお願いします! 質問、感想・コメント等 ※ LT内容に関する ご質問はYoutubeコメントにお願いします🙏
  • 3. Copyright 2021 Toranoana Inc. 名前:植竹 惇
 担当業務:Fantiaを始めとする
      新規事業開発のマネジメントリーダー
 業務使用言語:Rails
 利用クラウド:GCP、AWS
 最も多くやったこと:Fantiaの負荷対策
 今のブーム:ニチアサ、面白WEB漫画、タイムリープヤンキー漫画
 前のブーム:スポーツ漫画(当の本人は運動できません)
 自己紹介
 3
  • 4. Copyright 2021 Toranoana Inc. 目次
 
 1. これまでのFantiaの傾向推移
 
 1-1. ファンクラブ数の増加
 1-2. クリエイターカテゴリの変化
 
 2. 利用してきたGCP機能
 
 2-1. InstanceGroups
 2-2. CloudArmor
 2-3. CloudDNS
 2-4. Monitoring
 
 3. 今後利用していきたいGCP機能
 4 ここまでTechDay2と同じ
  • 5. Copyright 2021 Toranoana Inc. 早速ですが
 5
  • 6. Copyright 2021 Toranoana Inc. 世は支援プラットフォーム
 戦国時代
 6
  • 7. Copyright 2021 Toranoana Inc. 7 海外 日本 現在 数年前 Patreon Onlyfans PIXIV FANBOX CAMPFIRE Community note Ci-en
  • 8. Copyright 2021 Toranoana Inc. 8 現在の    の立ち位置
 
 ・わりと初期にサービスインしている古参
 
 ・日本国内(のアダルト部分)で存在感を発揮
 
 ・二次元、三次元ともに活発
 

  • 9. Copyright 2021 Toranoana Inc. 9     のファンクラブ増加
 
 中の人も驚愕の
 増加ペース

  • 10. Copyright 2021 Toranoana Inc. 10     のPV数増加
 
 1億PV超え!

  • 11. Copyright 2021 Toranoana Inc. 参入クリエイターの傾向
 11
  • 12. Copyright 2021 Toranoana Inc. 1年目:イラスト・漫画ファンクラブ中心の黎明期 
 
 
 2年目:3Dアニメ、MMD層の増加 
 
 
 3年目:コスプレイヤー層の増加 
 
 4年目:    〃
 
 
 5年目:Youtuber、女性向け音声層の増加 
 12
  • 13. Copyright 2021 Toranoana Inc. 現在のFantiaは
 
 (アダルト色が強く)
 幅広いクリエイター層を
 カバーする総合支援プラットフォーム
 13
  • 14. Copyright 2021 Toranoana Inc. そんなFantiaを5年間支えたクラウドインフラが
 
 『GCP』です
 14
  • 15. Copyright 2021 Toranoana Inc. 15 利用しているGCP機能
 
 
 
     その1. InstanceGroups

  • 16. Copyright 2021 Toranoana Inc. 16 Instance Groups
 
 
 
     
 ロードバランサに接続可能な、
 VMインスタンスの集合体。
 
 Kubernetesが登場する以前は
 主流となっていた
 オートスケール可能な
 マネージドサーバー。

  • 17. Copyright 2021 Toranoana Inc. 17 Instance Groups
 
 
 
     
 今となっては当たり前だが…
 
 コンソール画面上で、
 サーバーの最小・最大台数を
 自由に設定できる。

  • 18. Copyright 2021 Toranoana Inc. 18 Instance Groups
 
 
 
     
 インスタンスグループは、
 『インスタンステンプレート』
 から作成する。
 
 複数のサーバのデータ、スペックを 統一して作成するため、
 元となる設定が必要となる。

  • 19. Copyright 2021 Toranoana Inc. 19 そんなインスタンスグループと
 内部で作れるVMインスタンスですが、
 
 利用してきてとある問題に
 遭遇しました

  • 20. Copyright 2021 Toranoana Inc. 20 VMインスタンスのトラブル
 
 
 
     
 GCPのVMインスタンスは、
 現在「E2」「N2」「N2D」「N1」
 とCPUとメモリのパフォーマンスが
 異なるマシン設定を用意しています。
 
 現在は第2世代の利用が主流に
 なっているようなのですが……
 

  • 21. Copyright 2021 Toranoana Inc. 21 VMインスタンスのトラブル
 
 
 
     
 インスタンスグループで
 VMインスタンス作成する途中、
 『作成中』の状態のまま止まってしまう
 ことがありました。
 この状態のまま、
 変化しない

  • 22. Copyright 2021 Toranoana Inc. 22 VMインスタンスのトラブル
 
 
 
     
 原因1:アカウントにおけるリソースの予約枠が不足している。
  アカウントごとに利用されているマシンのリソースは
  制限されていて、解除のためには申請が必要。
  IAMの『割り当て』ページで確認可能。
 

  • 23. Copyright 2021 Toranoana Inc. 23 VMインスタンスのトラブル
 
 
 
     
 原因2:利用するリージョン全体で
  対象のリソースが不足している。
 
  この場合はアカウント関係なく、
  追加の作成が不可能となる。
 
  解決方法は
  『リージョンを変える』または
  『マシンタイプを変える』
  のいずれか

  • 24. Copyright 2021 Toranoana Inc. 24 これまでの運用で、
 どちらも経験しました。
 
 リージョン全体でのリソース制限は
 気をつけようがないですが、
 可能性としては十分ありえます。

  • 25. Copyright 2021 Toranoana Inc. 25 利用しているGCP機能
 
 
 
      その2. CloudArmor

  • 26. Copyright 2021 Toranoana Inc. 26 サービス規模とアクセスが増えてくると何が起きるか?

  • 27. Copyright 2021 Toranoana Inc. 27 セキュリティリスクの増大

  • 28. Copyright 2021 Toranoana Inc. 28 それを解決するのがCloudArmor

  • 29. Copyright 2021 Toranoana Inc. 29 CloudArmor
 
 
 
     
 CloudArmorとは
 
 ロードバランサーと連携する
 かなり優秀な
 セキュリティサービス
 
 
 

  • 30. Copyright 2021 Toranoana Inc. 30 CloudArmor
 
 
 
     
 CloudArmorが出来ること
 
 ・個別でのIP制限設定
 
 ・ルール設定による、アクセス攻撃へのWAF機能
 
 ・Google本体も利用している自動DDoSフィルタ

  • 31. Copyright 2021 Toranoana Inc. 31 CloudArmor
 
 
 
     
 WAFのルール設定について
 
 右の画像がルール追加のサンプル
 この場合は『sqli-stable』という
 SQLインジェクション防止の
 事前構成ルールの設定。
 
 2番目の引数は除外する
 詳細ルールを設定できる。

  • 32. Copyright 2021 Toranoana Inc. 32 CloudArmor
 
 
 
     
 このような詳細ルールが定義されている。
 ルールに合致するアクセスを検知してブロックすることが可能。

  • 33. Copyright 2021 Toranoana Inc. 33 だがちょっと待たれよ
 
 WAFで弾きたくないアクセスを
 弾いてしまう場合はないか?

  • 34. Copyright 2021 Toranoana Inc. 34 プレビュー機能を使えば大丈夫

  • 35. Copyright 2021 Toranoana Inc. 35 CloudArmor
 
 
 
     
 ルールの設定で
 
 『プレビューのみ』
 の設定を有効にすると、
 
 実際にブロックはせずに、
 ロードバランサーのログに
 『対象のアクセスであること』
 の検知のみ行える。

  • 36. Copyright 2021 Toranoana Inc. 36 CloudArmor
 
 
 
     
 ロードバランサーの
 GCPロギングにて、
 
 右画像のような形式で
 記録される。
 
 『previewSecurityPolicy』
 の中身がプレビューで検知した
 内容の詳細となる。
 
 『preconfiguredExprIds』
 が実際に検知した詳細ルール。

  • 37. Copyright 2021 Toranoana Inc. 37 プレビュー機能で
 安全性を確保してから
 適応することが可能
 ①プレビューでWAFルールの設定 ②数日稼動 ③ログでプレビュー結果を確認 ④アクセスに問題なければ プレビュー無効
  • 38. Copyright 2021 Toranoana Inc. 38 CloudArmor
 
 
 
     
 最後にDDoS防御です。
 
 ユーザ自身の設定は必要なく、 
 CloudArmorを設定するだけで、
 Googleが自動で検知し、
 知らぬうちに防いでくれます。
 
 ブロックのログもなく、
 詳細については不明。
 ※画像引用元ページ 
 https://cloud.google.com/blog/ja/products/gcp/getting-to-know-cloud-armor-d efense-at-scale-for-internet-facing-services 
 

  • 39. Copyright 2021 Toranoana Inc. 39 GCPを利用している場合に限りますが
 『CloudArmor』は
 非常におすすめなサービスです。

  • 40. Copyright 2021 Toranoana Inc. 40 利用しているGCP機能
 
 
 
       その3. CloudDNS

  • 41. Copyright 2021 Toranoana Inc. 41 サービスの規模が大きくなると
 こう思う人は多いはず

  • 42. Copyright 2021 Toranoana Inc. 42 AWS Auroraを使いたい!

  • 43. Copyright 2021 Toranoana Inc. 43 AWS Auroraの利点
 
 ・ディスクの容量を気にしなくて良い
 
 ・リードDBのオートスケールが可能
 
 ・複数のリードDBに対するDNSホストはひとつだけ

  • 44. Copyright 2021 Toranoana Inc. 44 AWS Auroraの利点
 
 ・ディスクの容量を気にしなくて良い
 
 ・リードDBのオートスケールが可能
 
 ・複数のリードDBに対するDNSホストはひとつだけ
 特に重要
  • 45. Copyright 2021 Toranoana Inc. 45 Railsでプライマリ/リードDBの切り替え
 
 
 方法1:Rails6のマルチプルデータベース機能を使う
 
 方法2:SwitchPointなどのGemを利用する
 
 
 どちらもリードレプリカのロードバランシングには
 対応しきれてない。

  • 46. Copyright 2021 Toranoana Inc. 46 AWSもGCPも複数のリードDBを作れるが、
 DBのリソース拡張で差が出てくる。
 primary read-1 read-2 DNSホスト アプリケーション処理 primary read-1 read-2 DNSホスト-2 アプリケーション処理 DNSホスト-1 AWS GCP
  • 47. Copyright 2021 Toranoana Inc. 47 これを解決するのがCloudDNS

  • 48. Copyright 2021 Toranoana Inc. 48 ロードバランシングの機能を持ち、
 CloudSQLとの接続が可能。
 
 つまりDNSラウンドロビンの機能を
 持っている。
 
 CloudDNSの接続先IPにアクセスすると
 ホスト1かホスト2のいずれかに
 振り分けてくれる。
 primary read-1 read-2 DNSホスト-2 アプリケーション処理 DNSホスト-1 GCP CloudDNS CloudDNS

  • 49. Copyright 2021 Toranoana Inc. 49 CloudDNS
 レコードセットの設定
 GCP内のネットワークで使える DNSホスト名 ロードバランシング先の内部 IP CloudSQLのIPを設定できる
  • 50. Copyright 2021 Toranoana Inc. 50 これでシームレスにリードDBでの
 負荷分散が可能になります

  • 51. Copyright 2021 Toranoana Inc. 51 利用しているGCP機能
 
 
 
       その4. Monitoring

  • 52. Copyright 2021 Toranoana Inc. 52 規模の大きいサービスには必須の監視機能
 
 GCPだと『Monitoring』がスタンダート

  • 53. Copyright 2021 Toranoana Inc. 53 サーバーやDB、ロードバランサなど
 様々な機能の数値をグラフで可視化
 してくれる機能。
 
 監視できる値はかなり多彩なので、
 全容の把握はなかなか難しい…。
 Monitoring

  • 54. Copyright 2021 Toranoana Inc. 54 特に便利だと思った
 メトリクス(計測指標)設定
 を紹介します

  • 55. Copyright 2021 Toranoana Inc. 55 スロークエリ監視メトリクス 
 
 ●Resource type
 Cloud SQL Database 
 
 ●metric
 Logbytes
 
 ●Filters
 log=mysql-slow.log 
 
 CloudSQLのスロークエリログを 
 監視する。
 
 クエリの量が多いとグラフが大きく 
 上がったりするので、 
 DBの負荷問題が検知しやすい。 
 Monitoring

  • 56. Copyright 2021 Toranoana Inc. 56 CloudArmorプレビュー 監視メトリクス
 
 ●Resource type
 Network Security Policy 
 
 ●metric
 Previewed request count 
 
 ●Filters
 blocked=true
 
 CloudArmorのプレビュー検知数を 
 出力する。
 
 プレビューで引っかかったアクセスが 
 どれくらいあるかを見るときに便利。 
 実際にブロックした数も出せる。 
 Monitoring

  • 57. Copyright 2021 Toranoana Inc. 57 LBレイテンシー監視メトリクス
 
 ●Resource type
 Load Balancing Rule 
 
 ●metric
 Backend latency
 
 ●Filters
 backend_target_name=LBの バックエンド名
 
 ロードバランサーにおけるバックエンド側の 
 レイテンシー(遅延時間)を見れる。 
 
 負荷対策の結果や、機能開発での速度が 
 変わっているかなどをチェックするときに 
 重宝する。
 Monitoring

  • 58. Copyright 2021 Toranoana Inc. 58 これらを駆使することで
 問題の検知や実績の計測が
 よりスムーズになりました

  • 59. Copyright 2021 Toranoana Inc. 59 ここからはまだ実働していないですが
 今後導入してみたい機能の話です

  • 60. Copyright 2021 Toranoana Inc. 60 今後利用していきたいGCP機能
 
 
 新しい何かを導入したい!
 
 しかしFantiaは24時間稼動し続ける
 大規模なサービスで
 安定した稼動が求められる……

  • 61. Copyright 2021 Toranoana Inc. 61 今後利用していきたいGCP機能
 
 サービス開発・運用あるあるな欲求 
 新しいインフラ機能を
 導入したい
 インフラ費用を
 削減したい
 開発効率を上げたい
 稼動可能な
 エンジニアの条件を
 増やしたくない
 デプロイを早くしたい
 障害を防ぎたい
 開発工数を
 最小限に

  • 62. Copyright 2021 Toranoana Inc. 開発者が求めるもの サービスオーナーが求めるもの 62 今後利用していきたいGCP機能
 
 新しいインフラ機能を
 導入したい
 開発効率を上げたい
 デプロイを早くしたい
 障害を防ぎたい
 稼動可能な
 エンジニアの条件を
 増やしたくない
 開発工数を
 最小限に
 インフラ費用を
 削減したい

  • 63. Copyright 2021 Toranoana Inc. 開発者が求めるもの サービスオーナーが求めるもの 63 今後利用していきたいGCP機能
 
 新しいインフラ機能を
 導入したい
 開発効率を上げたい
 デプロイを早くしたい
 障害を防ぎたい
 稼動可能な
 エンジニアの条件を
 増やしたくない
 開発工数を
 最小限に
 新しい仕組みを導入するには、 
 左側をある程度満たした上で 
 実現する必要がある 
 インフラ費用を
 削減したい

  • 64. Copyright 2021 Toranoana Inc. 64 今後利用していきたいGCP機能
 
 
 
 新しい『何か』を導入したいだけでは
 動機としては不十分

  • 65. Copyright 2021 Toranoana Inc. 開発者が求めるもの サービスオーナーが求めるもの 65 今後利用していきたいGCP機能
 
 新しいインフラ機能を
 導入したい
 開発効率を上げたい
 デプロイを早くしたい
 障害を防ぎたい
 稼動可能な
 エンジニアの条件を
 増やしたくない
 開発工数を
 最小限に
 インフラ費用を
 削減したい
 WinWinで最も重要

  • 66. Copyright 2021 Toranoana Inc. 66 今後利用していきたいGCP機能
 
 
 一部の処理だけを切り出して
 新しい機能を使いつつ
 障害予防を行いたい
 
 (できればコスト削減も) 

  • 67. Copyright 2021 Toranoana Inc. 67 今後利用していきたいGCP機能
 
 ① セッション保持しない外部からのREST API
  ーアクセス頻度をコントロールしにくい
 
  ー柔軟なオートスケールが必要だが、本体サービスとは切り離したい
 
 
 ② 定期バッチ処理
  ーバッチ処理がサービス拡大とともに増えてゆくリスク
 
  ー単一サーバーだけで実施する場合はメモリ不足の懸念など
 
 

  • 68. Copyright 2021 Toranoana Inc. 68 今後利用していきたいGCP機能
 
 
 
 Cloud Runを使って
 これらを実現できないか

  • 69. Copyright 2021 Toranoana Inc. 69 今後利用していきたいGCP機能
 
 CloudRun  とは
 
 GoogleKubernetesEngineと同様の
 コンテナ環境による
 オートスケールプラットフォーム
 
 Kubernetesベースのサービスではないため、
 Kubernetesの習熟が不要
 

  • 70. Copyright 2021 Toranoana Inc. 70 今後利用していきたいGCP機能
 
 確かめたいこと
 
 ① RailsをCloudRunで稼働できるのか
 
 ② GCEと同様のAPI動作を実現できるのか
 
 ③ 定期バッチ処理を実現できるのか

  • 71. Copyright 2021 Toranoana Inc. 71 今後利用していきたいGCP機能
 
 やったこと
 
 ① userデータを取得するサンプルアプリ作成
 
 ② 上記アプリをDocker化
 
 ③ 『Container Registry API』でイメージをプッシュ
 ここに関して 今回は省略
  • 72. Copyright 2021 Toranoana Inc. 72 今後利用していきたいGCP機能
 
 Container Registry APIにプッシュするには
 
 ① gcloud auth configure-docker で認証
 
 ② docker build -t ローカルイメージ名 .
 でイメージ作成
 
 ③ docker tag ローカルイメージ名 ホスト名/プロジェクト名/イメージ名:タグ
   でタグ作成
 
 ④ docker push ホスト名/プロジェクト名/イメージ名:タグ
   にてプッシュ

  • 73. Copyright 2021 Toranoana Inc. 73 今後利用していきたいGCP機能
 
 こんな形で、GCPのContainer Registryに保存されます
 

  • 74. Copyright 2021 Toranoana Inc. 74 今後利用していきたいGCP機能
 環境変数の設定
 
 
 アプリ構築において大事な要素 
 
 GUI上で項目が用意されており、 
 
 簡単に設定することができる。

  • 75. Copyright 2021 Toranoana Inc. 75 今後利用していきたいGCP機能
 Cloud SQLへの接続設定が可能
 
 他のGCPサービスに接続するには
 サーバーレスVPCコネクタが
 必要となる
 
 例:
 Cloud Run ⇒ Memorystore
 Cloud Run ⇒ Bigquery

  • 76. Copyright 2021 Toranoana Inc. 76 今後利用していきたいGCP機能
 設定をした上での
 デプロイは左記のような
 コマンドで実行が可能
 gcloud beta run deploy cloud-run-sample 
 --image asia.gcr.io/サービス名/cloud_run_sample 
 --add-cloudsql-instances cloud-run-sample-db 
 --allow-unauthenticated 
 --min-instances 1 
 --region asia-northeast1 
 --memory 512Mi 
 --set-env-vars " 
 RAILS_ENV=production, 
 RACK_ENV=production, 
 MYSQL_CONNECT=CloudProxyによるCloudSQL接続先,
 MYSQL_PASSWORD=DBパスワード, 
 SECRET_KEY_BASE=Railsのシークレットキー 
 "
 

  • 77. Copyright 2021 Toranoana Inc. 77 今後利用していきたいGCP機能
 Dockerの設定に応じて、
 URLのパスでそのままアクセスが可能。

  • 78. Copyright 2021 Toranoana Inc. 78 今後利用していきたいGCP機能
 CloudRun初期設定時に、
 トラフィックの設定を選べる。
 
 CloudLoadBalancingとの接続も
 可能なため、CloudArmorを経由して
 セキュアな構成にすることも可能。

  • 79. Copyright 2021 Toranoana Inc. 79 今後利用していきたいGCP機能
 
 構築してみて
 
 ① 手順はかなりシンプルだが制限はいくつかある
 
 ② 他のGCPサービスとの連携は個別に設定が必要
 
 ③ 機能は徐々に増えているので、
  今後活躍の幅は大きく広がりそう

  • 80. Copyright 2021 Toranoana Inc. 80 今後利用していきたいGCP機能
 
 一部のAPI処理をCloudRunに置き換える場合
 デメリット
 
 ・GCP内のサービスを扱うのに 
  個別の設定が必要となる 
 
 ・アプリのサーバーに必要な鍵ファイルが 
  あれば渡し方を考える必要がある 
 
 ・マシンスペックの幅が広くない 
  最大が4vCPUのメモリ8GB 
 メリット
 
 ・オートスケールが楽 
 
 ・デプロイがかなり高速 
 
 ・リージョン障害があった場合でも 
  切り替えが容易
 
 ・メンテナンスによる瞬断の心配がなくなる 
 
 ・前提知識が最小限なので、 
  GCP限定のガラパゴス技術にはなりにくい 
 

  • 81. Copyright 2021 Toranoana Inc. 81 今後利用していきたいGCP機能
 
 
 
 
 
 CloudRunで定期バッチ
 を実行するにはどうすれば?

  • 82. Copyright 2021 Toranoana Inc. 82 今後利用していきたいGCP機能
 
 
 
 
 
 GCPの公式で『Cloud Scheduler』
 による方法を案内している
 参考:https://cloud.google.com/run/docs/triggering/using-scheduler?hl=j a

  • 83. Copyright 2021 Toranoana Inc. 83 今後利用していきたいGCP機能
 
 
 CloudRunはHTTPSでの公開しかできない
 よって以下の方法でタスク実行を実現
 
 ① Cloud Schedulerでトリガーを設定
 
 ② Scheduler内部でCloudRunのアクセスを実行
 
 ③ 限定公開されているCloudRunが受信して処理を実行

  • 84. Copyright 2021 Toranoana Inc. 84 今後利用していきたいGCP機能
 Cloud Schedulerのジョブ作成画面です。 
 
 
 CloudRunのURLを設定すればよいだけなので、 
 かなり簡単です。
 
 ただしセキュリティリスクがあるので、 
 HTTPヘッダーにトークンキーを設定したり、 
 CloudRunでの受け取り側でスケジュールからの 
 実行のみを受け付けるようにするなどの、 
 対応が必要となります。 
 

  • 85. Copyright 2021 Toranoana Inc. 85 今後利用していきたいGCP機能
 
 定期バッチをCloudRunに置き換える場合
 デメリット
 
 ・セキュリティ対策をしっかりしないと危ない 
 
 ・CloudRunのタイムアウト時間が 
 15分なので長時間稼動するバッチには 
  使えない
 
 ・マシンスペックが限定的なので、 
  メモリを多く消費するようなバッチ作業は 
  不可能
 メリット
 
 ・サーバー管理が楽に 
 
 ・デプロイがかなり高速 
 
 ・必要なリソースだけを適切に立ち上げるので 
  コスト削減につながる 

  • 86. Copyright 2021 Toranoana Inc. 86 今後利用していきたいGCP機能
 
 
 
 
 
 APIも定期バッチもデメリット以上に、
 Cloud Runで実行するメリットがあるので、
 実用する価値はあるかと思います

  • 87. Copyright 2021 Toranoana Inc. 本日のまとめ
 
 1. これまでのFantiaの傾向推移
 
 クリエイターはかなり増えてきており、時期によって増加の傾向が異なる 
 
 2. 利用してきたGCP機能
 
 現在利用しているサーバー機能の「InstanceGroups」
 セキュリティに対する「CloudArmor」、
 負荷に対する「CloudDNS」「Monitoring」の使い方を紹介
 
 3. 今後利用していきたいGCP機能
 
 「CloudRun」を中心に、既に稼働しているサービスで使う方法を検証してみた
 87