クラウドサーバー

勝手に増えていくCloud Storageのコンテナイメージを自動で削除する

Google App Engineを使っていると、いつの間にかCloud Storageの使用量が勝手に増えて課金されるようになります。今回はこの現象の原因と解決策についてまとめました。

無料なはずなのに・・App Engineでいつ間にか課金が 

Google App EngineはGoogle Cloud PlatformのAlways Free対象プロダクトなので、無料で利用することが出来ます。

しかし、ある程度使っているとある日から突然Google Cloud Platformから請求のメールが届いてびっくりします。他のプロダクトを使っていないのであれば、Cloud Storageの課金になっていることが多いでしょう。

App Engineはデプロイの度にコンテナイメージを勝手に保存する

課金されているデータを確認してみると、日本のリージョンにデプロイしている場合はCloud Storageの「Standard Storage Asia Multi-region」となっているはずです。

App Engineのプログラムデータなのかと思って、バージョンを削除しても使用量が削減されません。Cloud Storageのバケットを調べてみると、作成した覚えのない「asia.artifacts.プロジェクト名.appspot.com」というバケットが作成されていることがわかります。

同じappspot.comドメインでも、App Engineで公開しているアプリのドメインは、「プロジェクト名.appspot.com」となるので、異なるものです。

「artifacts.プロジェクト名.appspot.com」の中身はコンテナイメージ

バケットの中身を確認してみると、「containers_images_sha256 乱数」というファイルがたくさん作成されていることに気づきます。

作成日付・ファイル名から類推すると、どうやらApp Engineでデプロイした際のコンテナイメージをCloud Storageに自動的にバックアップしているようです。

実際に当該バケットを監視してみると、App Engineにアプリをデプロイしたタイミングでイメージファイルが作成されていましたので、まずデプロイ時に自動作成されるものと見て間違いなさそうです。

コンテナイメージは削除しても問題ない

これらのファイルは海外のフォーラムでも話題になっていて、「削除して良いのかがわからないけど、削除してみたけど大丈夫だった」という指摘がありました。実際にイメージを削除しても、問題なくデプロイが出来ました。

ただし、イメージを削除する前よりも明らかにデプロイに時間がかかったため、デプロイする際のキャッシュとして利用されていると推測できます。

Cloud Storageのライフサイクルルールで古いイメージを削除しよう

キャッシュでデプロイを高速化してくれるのは嬉しい機能ですが、デプロイするほどストレージ容量が増えて課金されるのは嫌だという方も多いでしょう。そうした方は、Cloud Storageのライフサイクルルールで、古いファイルを自動で削除してしまいましょう。

頻繁にデプロイする方でも30日後くらいは自動削除するようにしておくとCloud Storageの使用量を削減できます。

ライフサイクルルールについては利用環境によって異なると思うので、下記の記事を参考にしてみてください。


勝手に増えていくCloud Storageのコンテナイメージを自動で削除する方法をみてきました。

無料で使えるはずなのに、いつ間にか課金されてどうしても削減ができないと悩んでいる方は、一度チェックしてみてください。


価格は記載がある場合を除き、すべて税抜きです。

この記事の関連キーワード

クラウドサーバーの記事