SlideShare a Scribd company logo
App Engine Admin API
を利用した
GAE/Go環境へのデプロイ
と
東京GCPリージョンの
性能評価
2016/11/08 appengine ja night #35
熊野 良 (Ryo Kumano)
2014/06 〜 株式会社グルーヴノーツ 入社
- 肩書きは 「サーバエンジニア・データベースエンジニア」
- GCP上で稼動している自社サービスのインフラ設計・構築・運用を担当
- 2015/08 〜 東京 -> 福岡に移住
twitter: @ryok0607
過去(5年以内)に携わった業務
- 国内大手B2Cサイトのインフラ設計・構築・運用・DB設計・チューニング
など
App Engine Admin API
を利用した
GAE/Go環境へのデプロイ
“すいません
まずは
弊社サービス
のお話をさせてください
MAGELLAN BLOCKS
https://www.magellanic-clouds.com/blocks/
MAGELLAN BLOCKSの機能
● “VisionAPIとBigQuery” や
“BigQueryとSalsesforce” のように
API同士をマッシュアップする機能。
● ログ収集やファイルアップロード環境を
任意のGCP上に構築する
オーケストレーション機能。
MAGELLAN BLOCKSの機能
● “VisionAPIとBigQuery” や
“BigQueryとSalsesforce” のように
API同士をマッシュアップする機能。
● ログ収集やファイルアップロード環境を
任意のGCP上に構築する
オーケストレーション機能。 今日は
こちらの話
MAGELLAN BLOCKSによる
オーケストレーション
Message収集用のパイプラインと
Deployment Managerによる構築
https publish pull insert
構築には k8sのAPI や
BigQueryのAPI も
使ってますが図からは省略。
appengine ja night なので
https publish pull insert
GAE/Goのデプロイに
フォーカスをあてて
お話を進めます。
“Deployment Managerによる
GAE/Go運用で ハマったこと
が 2つ ありました
“その1
Deployment Manager
serviceを削除できない問題
Deployment Manager
serviceを削除できない問題
deploymentの削除時に
GAE上のserviceを削除することができない。
Cannot delete the final version of a service (module).
Please delete the whole service (module) in order to delete this version.
service上の最後のversionを削除しようとするが
versionが存在しないserviceとなってしまうので
version削除が実行できずエラーとなる。
Deployment Manager
serviceを削除できない問題
原因: Deployment Managerの仕様
version: 1
service: blocks
apps.modules.versions.create
version: 1
service: blocks
apps.modules.versions.delete
が実行されてしまう。
Create Destroy
“serviceを手動で消すか?
(ユーザさんに消していただく)
と思っていたところ…
App Engine Admin API
http://googlecloudplatform-japan.blogspot.jp/2016/08/app-engine-admin-api.html
App Engine Admin APIって
何ができるの?
GAEに対して柔軟な処理が可能。
● service/versionのcreateおよびdelete
● service/versionのupdate
○ トラフィック割り当ての変更
○ Scaling Policyの変更
○ Instance Typeの変更
○ etc…
詳しくはDocで
https://cloud.google.com/appengine/docs/admin-api
apps.services.delete
を実行してserviceと
versionを削除する。
事前にApp Engine Admin APIで殴る
ことでDeployment Managerによる
destroyを実行できる
version: 1
service: blocks
version: 1
service: blocks
apps.modules.versions.delete
が実行されるが既にserviceが
destroy済みなので問題ない。
Destroy: Phase1 Destroy: Phase2
App Engine
Admin API
“その1
Deployment Manager
serviceを削除できない問題
解決!!
“その2
GCSにライブラリファイルを
ステージングするの
面倒くさい問題
GCSにライブラリファイルを
ステージングするの
面倒くさい問題
アプリケーションのリソース?
”アプリケーションのリソース”に
サードパーティのライブラリは
含まれますか?
答: 含まれます。
アプリケーションのソースコードだけでなく
go getコマンド等で取得済みの
サードパーティのライブラリファイル群も
GCSにアップロードしてから
Deployment Manager
(もしくは App Engine Admin API)で
deployする必要があります。
ライブラリのファイル群を洗い出すの
面倒では?
ライブラリのファイル群を洗い出すの
面倒では?
弊社では
“appcfg.pyの処理を模倣してGAE/Go用の
パッケージングを行うシェルスクリプト”
を利用してGCSへの配置を実現している。
https://github.com/groovenauts/magellan-gcs-uploader/blob/master/makepkg.sh
ライブラリファイル群のuploadと
Deployment Managerを用いた
GAE/Goのdeploy
makepkg
.sh
pkg
pkg
App Engine
Admin API
1. makepkg.shを
実行して
ファイル群を
作成する
2. ファイル群を
GCSに
uploadする
3. Deployment Manager
(またはApp Engine Admin API)
を用いてdeployする
“その2
GCSにライブラリファイルを
ステージングするの
面倒くさい問題
解決!!
今回の発表における
App Engine Admin API まとめ
● GAEに対する操作を柔軟に実行できる。
● Deployment Managerのみでは
対応できない部分のフォローができる。
○ App Engine Admin API + Deployment Manager
のハイブリッド構成でいいとこ取りが可能。
● GAE/Goのdeployに関しては
ライブラリをGCSに配置するのが面倒。
○ ツールで頑張ればフォローできる。
“もう一つのテーマである
例のアレ
の話をさせてください!
祝!!
東京GCPリージョン
(asia-northeast1)
リリース!!
GAEに関しては
asia-east1を
飛び越えてのリリース
東京GCPリージョンの
性能評価
検証内容
1. Client -> GAE
us-centralと
asia-northeast1の
GAEに対して
apache benchを実行し
レスポンス速度を
比較する。
2. GAE -> Datastore
us-centralと
asia-northeast1で
GAEから
Datastoreに対して
put / get 処理を実行し
regionごとの性能を
比較する。
3. GAE -> CloudSQL
us-centralと
asia-northeast1で
GAEから
CloudSQLに対して
日付取得のSQLを実行し
regionごとの性能を
比較する。
asia-northeast1
us-central
性能検証1. Client -> GAE
http
(apache bench)
VS
http
(apache bench)
性能検証1. Client -> GAE
検証結果
性能検証1. Client -> GAE
所感
● asia-northeast1の応答速度は
約1.79倍(弊社検証時)
● 福岡からのアクセスでの数値なので
東京からのアクセスだともっと早い?
○ client環境(HW/NW)を完全に同一にすることは
難しいので残念ながら検証を断念。
asia-northeast1
us-central
性能検証2. GAE -> Datastore
(10万件put)
put 10万件
VS
put 10万件
性能検証2. GAE -> Datastore
(10万件put)
検証結果
asia-northeast1
us-central
性能検証2. GAE -> Datastore
(10万件から1件get x 10000回)
get x 10000回
VS
get x 10000回
性能検証2. GAE -> Datastore
(10万件から1件get x 10000回)
検証結果
性能検証2. GAE -> Datastore
所感
● なんか分からんけどasia-northeast1の方がput
もgetもパフォーマンスが良い。
● Datastoreのパフォーマンスを上げるために
asia-northeast1への移行検討はありかも。
○ 実際のデータ・クエリで検証してね。
asia-northeast1
us-central
性能検証3. GAE -> CloudSQL
select now() from dual x 1000回
VS
select now() from dual x 1000回
性能検証3. GAE -> CloudSQL
(各regionのGAE -> us-central1)
検証結果
asia-northeast1
us-central
性能検証3. GAE -> CloudSQL
延長戦
select now() from dual x 1000回
VS
select now() from dual x 1000回
asia-east1
性能検証3. GAE -> CloudSQL
(asia-northeast1のGAE -> asia-east1)
検証結果
“なんてことをやってたら
asia-northeast1に
CloudSQLがきました。
これで勝つる!
asia-northeast1
us-central
性能検証3. GAE -> CloudSQL
再延長戦
select now() from dual x 1000回
VS
select now() from dual x 1000回
性能検証3. GAE -> CloudSQL
asia-northeast1同士での
検証結果
asia-northeast1の
CloudSQL
GAEで叩くと何故か遅い
(asia-east1越しに叩くより遅い)
性能検証3. GAE -> CloudSQL
所感
● regionを跨いでCloudSQLのアクセスを
実行すると、ものすっごい性能が落ちる。
● asia-northeast1 での CloudSQL構成は
要検証。
今回の発表における
東京GCPリージョン性能評価まとめ
● 国内からGAEへのHTTPレスポンスが向上。
○ asia-northeast1 利用で2倍近い性能向上も。
● Datastoreのput/get性能向上。
○ asia-northeast1 & Datastore はいいぞ!
● GAE/CloudSQLもバリバリ使いたいなー。
○ asia-northeast1 の検証をもう少し頑張る。
○ 発表当日にCloudSQLリリースとか資料しんどい
ご清聴ありがとうございました

More Related Content

PDF
元OracleMasterPlatinumがCloudSpanner触ってみた
PDF
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
PDF
2014-02-20_Tokyo-GAS#5-社内活性化推進にGASを大活用した話
PPTX
Cloud Identity-Aware Proxy
PDF
Google apps scriptを使って業務改善
PPTX
Google Apps Scriptとは? Add-onとは?
PPTX
Google Apps Script活用事例 Tokyo GAS 2013春
PDF
Gaelyk
元OracleMasterPlatinumがCloudSpanner触ってみた
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
2014-02-20_Tokyo-GAS#5-社内活性化推進にGASを大活用した話
Cloud Identity-Aware Proxy
Google apps scriptを使って業務改善
Google Apps Scriptとは? Add-onとは?
Google Apps Script活用事例 Tokyo GAS 2013春
Gaelyk

What's hot (20)

PDF
123MASPでのGoogle Apps Scriptの活用
PPTX
Google Apps Script 概要
PDF
GCPで広告動画を自動生成した話し
PPTX
[デブサミ秋2015] 新卒入社エンジニアが 2年間fluentdを運用して学んだ事いろいろ
PDF
LIGでのDocker活用
PPTX
GCPのサーバレス
PDF
Yahoo!ブラウザーにおける市場環境の分析と戦略化
PPTX
チームではじめるJetpack compose
PDF
Front-end package managers
PDF
GAEの紹介
PPTX
GoogleスプレッドシートをクラウドDBっぽく使う方法
PPTX
Sumo Logic活用事例とその運用
PDF
1019 まぁ!簡単!google apps script入門
PDF
LIGにおけるフロントエンドチーム構築
PDF
行ってみよう、やってみよう!
PDF
いい感じのフロントエンド開発環境を作ってみた
PPTX
アナザーエデンを支える技術〜効率的なコンテンツ制作のための開発基盤〜
PDF
Angularおじさんの1年
PDF
animation_prototype_campfire_design
PPTX
20190725 mspj nagatani
123MASPでのGoogle Apps Scriptの活用
Google Apps Script 概要
GCPで広告動画を自動生成した話し
[デブサミ秋2015] 新卒入社エンジニアが 2年間fluentdを運用して学んだ事いろいろ
LIGでのDocker活用
GCPのサーバレス
Yahoo!ブラウザーにおける市場環境の分析と戦略化
チームではじめるJetpack compose
Front-end package managers
GAEの紹介
GoogleスプレッドシートをクラウドDBっぽく使う方法
Sumo Logic活用事例とその運用
1019 まぁ!簡単!google apps script入門
LIGにおけるフロントエンドチーム構築
行ってみよう、やってみよう!
いい感じのフロントエンド開発環境を作ってみた
アナザーエデンを支える技術〜効率的なコンテンツ制作のための開発基盤〜
Angularおじさんの1年
animation_prototype_campfire_design
20190725 mspj nagatani
Ad

Similar to App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価 (20)

PDF
甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所
PDF
Google Cloud でアプリケーションを動かす.pdf
ODP
Google App Engineとその影響(補足)
PPTX
AndApp開発における全て #denatechcon
PDF
Report of Google I/O 2013 Google Cloud Platform
KEY
キャバァーン! サツバツエアアイオー弐〇壱弐
PDF
Google App Engine Java 入門
PDF
Google Compute EngineとGAE Pipeline API
PDF
Google Compute EngineとPipe API
PDF
20170719 GCPUG OSAKA #3
PDF
appengine ja night #25 Google App Engine for PHP
PDF
試して学べるクラウド技術! OpenShift
PPTX
Rails on GKEで運用するWebアプリケーションの紹介
PPTX
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
PPTX
Tech lounge gcp_20190313
PPT
Google Product
PDF
GCP vs 他社クラウド
PDF
Dist 29 gcp_serverless_web_app_development
KEY
Googleクラウドサービスを利用したシステム構築
PDF
Google Cloud Platform は何がすごいのか?
甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所
Google Cloud でアプリケーションを動かす.pdf
Google App Engineとその影響(補足)
AndApp開発における全て #denatechcon
Report of Google I/O 2013 Google Cloud Platform
キャバァーン! サツバツエアアイオー弐〇壱弐
Google App Engine Java 入門
Google Compute EngineとGAE Pipeline API
Google Compute EngineとPipe API
20170719 GCPUG OSAKA #3
appengine ja night #25 Google App Engine for PHP
試して学べるクラウド技術! OpenShift
Rails on GKEで運用するWebアプリケーションの紹介
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
Tech lounge gcp_20190313
Google Product
GCP vs 他社クラウド
Dist 29 gcp_serverless_web_app_development
Googleクラウドサービスを利用したシステム構築
Google Cloud Platform は何がすごいのか?
Ad

App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価