*メモ的な感じで記載しています。
2020年3月2日に2020年2月請求として¥3円が発生。
何事かと思い請求内容を確認したところ、ストレージのマルチリージョンに対して請求があった。
今年の1月までは無料トライアル期間であったため気がついていなかった。
どうやら移行作業を行なった時からストレージのマルチジーリョンのバケットが使用されていることがわかった。
当時(昨年末)、Go1.9からGo1.11へ移行するため試行錯誤し、やっとデプロイできる様になったので、
問題なくデプロイできるか確認するために何度もデプロイを行なった。
(Mac のターミナルで gcloud app deploy を実行)
結果、ビルド?されたファイルが多く作成され、数百MBも使用していた。
調べた結果、次のことがわかった。
・デプロイするとローカルにあるソースがストレージ(標準?のリージョン)へアップロードされる。
・次に、Cloud Build サービスを使用してコンテナイメージを作成される。
・コンテナイメージが App Engine へ適用される。
ん?Cloud Build サービス?
Google Cloud ドキュメントを確認しました。
-
アプリケーションのデプロイ
デプロイを行うと、Cloud Build サービスが App Engine スタンダード環境で実行するアプリケーションのコンテナイメージを作成します。 -
ビルドイメージの管理
新しいバージョンをデプロイするたびに、Cloud Build サービスを使用してコンテナイメージが作成され、Container Registry の app-engine フォルダに保存されます。
自動的に削除されないので、保存容量の上限に達する前に不要なイメージは削除するとよいでしょう。 -
ローカル イメージにレジストリ名でタグ付けする
イメージを新しいホスト名でレジストリに push すると、Container Registry では、指定されたマルチリージョン内にストレージバケットを作成します。
ここです!
「マルチリージョン内にストレージバケットを作成します。」って書いてある!
ビルドイメージの管理には「自動的に削除されないので」と書いてある!
確認のために何度もデプロイをした結果、コンテナイメージファイルが大量に作成され、数百MBも使用してしまったようです。
リージョンが asia-northeast1 でしたので、us-east1 で新規に作成したけど、マルチリージョンが使用されていました。
とりあえず、古いファイルを削除して料金がどの様になるか様子を見ています。
請求が発生しない方法?など、知っている方がいましたら教えてください。
気になる点
App Engineの標準環境であるPython 3、Java 11、PHP 7、Go 1.11 / 1.12、Ruby、NodeJSランタイム、およびApp Engineフレキシブル環境は変更されていません。これらのランタイムは常にCloud Buildを使用しており、支払い手段が必要でした。(翻訳)
と書いてあるので、第二世代のランタイムは全てデプロイ時にマルチリージョンのバケットが使われるのだろうか?