Cloud Run でシェルスクリプトを動かす

Cloud Run でシェルスクリプトを動かす

1514536d82df4b4a40628932c432a9c2?s=128

Takumasa Sakao

June 29, 2019
Tweet

Transcript

  1. Cloud Run で シェルスクリプトを動かす 株式会社アカツキ @sachaos

  2. 自己紹介 @sachaos 株式会社アカツキにてサーバーサイドエンジニア Go, GCPとか好き

  3. Cloud Run とはなにか? • コンテナをサーバーレスで動かす Google Cloud Platform のサービス •

    Cloud Run は マネージドの Cloud Run と Cloud Run on GKE がある ◦ 今日話すのは マネージドの Cloud Run だけ! • 現在 Beta バージョン • US リージョンのみ提供 • サーバーレス ◦ 使った分だけ費用が発生する ◦ オートスケールする ◦ 0 までスケールする ◦ つまり、全く使わなければ無料
  4. Demo • Hello World するサーバーをデプロイしてみる gcloud beta run deploy hello

    \ --image gcr.io/google-samples/hello-app:2.0 \ --region us-central1 \ --allow-unauthenticated
  5. Cloud Run • Kubernetes 上でサーバーレス環境を構築する Knative というOSSをベースに作られている • PORT環境変数で指定されたポートでサーブする HTTPサーバのコンテナを用意すればそれをサーバーレスで動かせる

    • コンテナを用意すればどんな言語で書かれたコード、バイナリでも動かすことができ る
  6. Cloud Run で シェルスクリプト動かせたら 便利そうじゃない?

  7. Cloud Run でシェルスクリプトを実行する • HTTP リクエストを受けたら 事前に渡されたシェルスクリプトを実行するようなものを雑に作ってみた • https://github.com/sachaos/cloud-exec

  8. Cloud Exec cloud-exec ./echo.sh localhost:8080 ./echo.sh

  9. GitHub の星の取得数を Slack に通知する 1. シェルスクリプトを書く a. https://github.com/yyx990803/starz の結果をごにょごにょして Slack

    Webhook に POST 2. 使用するコマンドなど、依存をコンテナに詰める 3. Cloud Run にデプロイする 4. 定期的に叩くようにする こういうのをSlackに定期的に投げたい →
  10. 1. シェルスクリプトを書く

  11. 2. 依存をコンテナに詰める

  12. 3. Cloud Run にデプロイ

  13. できた

  14. 4. 定期的に叩くようにする • Cloud Scheduler という GCP のマネージド cron サービスを使う

    • 指定した時間に特定の HTTP リクエストを発行することが可能
  15. まとめ • Cloud Run は簡単にデプロイして公開できるしオートスケールするし最高 • Cloud Run でシェルスクリプトを走らせる cloud-exec

    を紹介しました • 安易バッチサーバとして 雑にスクリプトを走らせるようなことを行いました • 色々応用できそう ◦ 紹介したようにコマンドで得られる情報を定期的に Slackにポストしたり ◦ 負荷試験するコンテナを整えて雑に大規模負荷試験をしたり
  16. 以上、ありがとうございました