$30 off During Our Annual Pro Sale. View Details »

Cloud Run - step ahead of the tutorial -

Cloud Run - step ahead of the tutorial -

【大阪】GCPUG Kansai 〜 Cloud Next Extended ~

chimame

May 14, 2019
Tweet

More Decks by chimame

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. 名前: 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

    View Slide

  4. Cloud RunのQuickstart

    View Slide

  5. View Slide

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

    View Slide

  7. 終わり

    View Slide

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

    View Slide

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

    View Slide

  10. View Slide

  11. Cloud Run(beta)リリース当初

    View Slide

  12. View Slide

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

    View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. Cloud SQLへの接続

    View Slide

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

    View Slide

  19. $ gcloud beta run deploy \
    --image [IMAGE] \
    --add-cloudsql-instances ::Instance name>

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  23. これだけで接続可能

    View Slide

  24. Cloud Buildの設定

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  28. Dockerイメージビルド⏳

    View Slide

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

    View Slide

  30. View Slide

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

    View Slide

  32. View Slide

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

    View Slide

  34. $ gcloud config set builds/use_kaniko True

    View Slide

  35. ビルド設定のyamlファイル

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  40. ただ、まだ完璧ではない

    View Slide

  41. View Slide

  42. View Slide

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

    View Slide

  44. 最後に

    View Slide

  45. View Slide

  46. View Slide

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

    View Slide