- Cloud Runの紹介 - GAE→Cloud Runへの移行 - Cloud Run Jobsの紹介
Cloud Runの紹介Press Space for next page
View Slide
自己紹介📝 飯野陽平(wheatandcat)🏢 フリーランスエンジニア(シェアフル株式会社CTO)💻 Blog: https://www.wheatandcat.me/🛠 今までに作ったものmemoirペペロミアAtomic Design Check List
Cloud RunとはCloud Runは、スケーラブルなインフラストラクチャ上でコンテナを直接実行できるマネージド コンピューティング プラットフォーム。コンテナ イメージをビルドしてデプロイして使用できる。構成、スケーリングは設定で即座に変更可能。
実行形式Cloud Runには以下の2つの実行形式がある Cloud Run Service主な用途: APIサーバー、webサイト、イベント処理できること自動スケーリング、各種スケーリングの設定Cloud Run Jobs主な用途:バッチ処理、ツールCloud Run Serviceとの差は以下の通り設定タイムアウトの時間を最大1時間まで設定可能最大再試行回数を設定できる並列処理
Cloud Runの使い方Cloud Runでは以下の2つの方法でコンテナイメージの作成が可能。Dockerfileを使用するBuildpacksを使用する
BuildpacksとはBuildpacksは、ソースコードから読み取りベストプラクティスに則ってDockerfileを書かずにイメージを生成してくれるツールで、現状だと以下のプラットフォームで対応している。GoNode.jsPythonJava.NET CoreLearn More
Cloud Run Serviceをデプロイしてみる①以下のチュートリアルをベースに、デプロイを紹介Cloud Runに Goサービスをデプロイする
Cloud Run Serviceをデプロイしてみる②以下のコマンドでイメージを作成上記で、GCPのArtifact Registryにイメージが作成されるので、以下のコマンドでCloud RunにデプロイLearn More$ gcloud builds submit --pack image=IMAGE_URL$ gcloud run deploy $SERVICE_NAME \--project=$PROJECT_ID \--image=$IMAGE_URL \--region=$REGION
環境変数の設定環境変数の設定はコンソールから設定可能環境変数の設定環境変数で機密情報を設定する場合はSecret Managerの値をマウントできる。シークレットを使用する
継続的デプロイの方法GitHub Actionsを使用して実装したので紹介■ Cloud Runへ移行https://github.com/wheatandcat/memoir-backend/pull/117/files
Cloud Run Jobsを試してみる①以下のチュートリアルをベースに紹介Cloud Runで Goジョブをビルドして作成する
Cloud Run Jobsを試してみる②以下のコマンドでイメージをデプロイ以下のコマンドで作成したコンテナを使用してジョブを作成する以下のコマンドで実行$ gcloud builds submit --pack image=gcr.io/PROJECT_ID/logger-job$ gcloud beta run jobs create $JOB_NAME \--image gcr.io/PROJECT_ID/logger-job \--tasks 50 \--set-env-vars SLEEP_MS=10000 \--set-env-vars FAIL_RATE=0.5 \--max-retries 5 \--region REGION$ gcloud beta run jobs execute $JOB_NAME
Cloud Run Jobsを試してみる③結果は、コンソールで確認できる
並列実行以下の記事を元に紹介Cloud Run jobsを解説する
Cloud SchedulerにJobを設定する以下のチュートリアルをベースに紹介スケジュールに従ってジョブを実行するURLには以下を設定するhttps://REGION-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/PROJECT-ID/jobs/JOB-NAME:run
まとめGCPの推しているサービスなだけあってスキの無い作りだったCloud Run Jobsの登場でバッチ処理もカバーできるようになったCloud Run Jobsは、まだプレビューの状態なので注意
ご清聴ありがとうございました