LoginSignup
6
3

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-12-13

はじめに

こんにちは、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デプロイ楽すぎて不安になる

参考

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3