Slide 1

Slide 1 text

Cloud Run - Quickstartの1歩先 - 2019/05/14 GCPUG Kansai rito

Slide 2

Slide 2 text

目次 ➔ 自己紹介 ➔ Cloud Run の Quickstart ➔ Cloud SQLへの接続 ➔ Cloud Buildsの設定

Slide 3

Slide 3 text

名前: rito 職業: Webエンジニア (アプリケーションエンジニア) 分野: Ruby on Rails, Nodejs, React, Docker, AWS, GCP 所属: Ateam Finergy Inc. CTO コミュニティ: Rails follow-up Osaka Osaka Web Developers Meetup twitter: @chimame_rt

Slide 4

Slide 4 text

Cloud RunのQuickstart

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

超手抜き 要は以下の2コマンドで終わる $ gcloud builds submit --tag gcr.io/[PROJECT-ID]/helloworld $ gcloud beta run deploy --image gcr.io/[PROJECT-ID]/helloworld

Slide 7

Slide 7 text

終わり

Slide 8

Slide 8 text

実際のアプリケーションは そうはいかない

Slide 9

Slide 9 text

特にデータ保存に使うアイツ

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Cloud Run(beta)リリース当初

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

近いうちに対応するから ちょっと待て(超意訳)

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Cloud SQLへの接続

Slide 18

Slide 18 text

実行するDockerイメージに オプションを付与

Slide 19

Slide 19 text

$ gcloud beta run deploy \ --image [IMAGE] \ --add-cloudsql-instances ::

Slide 20

Slide 20 text

add-cloudsql-instancesオプションにより 実行するDockerコンテナにCloud SQL Proxyが自動的に設定される

Slide 21

Slide 21 text

アプリケーションからの接続

Slide 22

Slide 22 text

Cloud SQL Proxyの設定をすることで 以下のパスにunix socketファイルが 生成されるので接続する /cloudsql/::

Slide 23

Slide 23 text

これだけで接続可能

Slide 24

Slide 24 text

Cloud Buildの設定

Slide 25

Slide 25 text

Quickstartには もう1つコマンドがある

Slide 26

Slide 26 text

$ gcloud builds submit --tag gcr.io/[PROJECT-ID]/helloworld $ gcloud beta run deploy --image gcr.io/[PROJECT-ID]/helloworld

Slide 27

Slide 27 text

確かに動くけど 後で困ることがある

Slide 28

Slide 28 text

Dockerイメージビルド⏳

Slide 29

Slide 29 text

このままだと 何もキャッシュが効かない

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

Kanikoとは ❏ Googleが開発したDockerイメージをビルドするた めのツール ❏ Dockerデーモンに依存せずイメージをビルドでき るという特徴を持つ

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Kanikoを使って キャッシュを効かせる呪文

Slide 34

Slide 34 text

$ gcloud config set builds/use_kaniko True

Slide 35

Slide 35 text

ビルド設定のyamlファイル

Slide 36

Slide 36 text

steps: - name: 'gcr.io/kaniko-project/executor:latest' args: - --build-arg=HOGE=fuga - --destination=gcr.io//:latest - --cache=true logsBucket: 'gs://hoge-logs/cloud-build'

Slide 37

Slide 37 text

このyamlファイルを指定して gcloud buildsを実行

Slide 38

Slide 38 text

$ gcloud builds submit --tag gcr.io/[PROJECT-ID]/helloworld $ gcloud builds submit --config ./cloudbuild.yaml

Slide 39

Slide 39 text

これだけでビルド時間が 2分30秒→30秒になった (フルでキャッシュが効いた場合)

Slide 40

Slide 40 text

ただ、まだ完璧ではない

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

Cloud SQLよりVPC対応は 時間かかるから 首を長くして待ってて (超意訳)

Slide 44

Slide 44 text

最後に

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

ご清聴ありがとうご ざいました。 ちまめ@rito