Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

TerraformでCloud Runを作成する際に最大メモリ量を指定する

はじめに

こんにちは、SREエンジニアやってます。@hayaosatoです。
今回はTerraformでGCPのCloud Runを構築する際に最大メモリ量も指定しながら構築する小ネタを書いていきたいと思います。

Cloud Run

Cloud RunはHTTPでリクエストを受ける事が可能なステートレスコンテナを実行できるサービスで、
今回はbeegoで作ったアプリケーションをCloud Runで実行する環境をTerraformで作成していきます。
beegoアプリをCloud Runで実行する記事は以前書いていますので、そちらを見ていただけると幸いです。
また、今回はコンテナイメージはすでにContainer Registryにpushしてあることを前提として進めていきます。

Terraform

では早速Terraformのコードを書いていきたいと思います。
基本的にグローバル公開でただ動かすだけならドキュメントにあるサンプルそのままで作成できます。

resource "google_cloud_run_service" "default" {
  name     = "hoge-${var.image_name}"
  location = var.region

  template {
    spec {
      containers {
        image = "${var.hostname}/${var.project_id}/${var.image_name}"
        resources {
          limits = { "memory" : "512Mi" }
        }
      }
    }
  }

  traffic {
    percent         = 100
    latest_revision = true
  }
}

ここで注意すべき点の一つに最大メモリ量があると思います。
Cloud Runのデフォルト最大メモリ量は256Miとなります。
しかし、今回動かすbeegoアプリケーションはメモリが256Miでは足りないので最大メモリ量を拡張する必要があります。
そこで指定するのがresourcesブロックのlimitsです。
limitsにはk8sのquantityと同じフォーマットの文字列をvalueとしたマップを指定する必要があり、
メモリを指定する場合は

resources {
  limits = { "memory" : "512Mi"}
}

となります。
この辺りはこちらを参考にするとわかりやすいと思います。

最後に

Cloud Runデプロイ楽すぎて不安になる

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?