みなさんAmazon CodeCatalyst使っていますか?
とても便利なのでわたしは気に入って使っています。
・・・ですが、先日とあるプロジェクトで利用を止めたことがありました (※)。
今回はそのとき遭遇した開発環境のゾンビに纏わるトラブルについて綴ります。
※当時はCodeCatalystからVPC内リソースにアクセスできず、その点がネックとなり使用を断念しました。2023/11にVPCへ対応しましたが、対応リージョンはオレゴンとアイルランドのみです。東京リージョンに対応することを待ち望んでいます・・・!
まとめ
- CodeCatalystはFree tierでも課金が発生する場合があるため、利用を止めたときは課金状況をチェックしましょう。
- CodeCatalystはAWS CLIで操作できます。
CodeCatalystで想定外の課金が発生
とあるプロジェクトにてAmazon CodeCatalystをStandard tierで利用していましたが、別のツールに移行することが決まり、プランをFree tierに戻したことがありました。その際、今後の再利用に備えてスペースは残したままにしていました。
あるときAWS課金状況を確認していたところ、Free tierに戻したはずのCodeCatalystで料金が発生していることに気がつきました。
なぜ・・・?
該当プロジェクトのAWSコストの大半はRDSが占めており、CodeCatalystのコストは相対的に小さかったため、なかなか気づくことができなかったのだと思います。
課金項目はUSW2-Storage-Dev-Environment-Billed
というもので、開発環境のストレージに関する課金だと名前から推測できました。
マネジメントコンソールから開発環境を削除できない
最初にマネジメントコンソールを見たところ、エラーメッセージが表示されていました。
どうやら開発環境のストレージ上限を超過しているようです。
もしや・・・開発環境を残したままFree tierに戻すと開発環境が課金ゾンビとして残ってしまう・・・?
画面のリロードを何度試しても開発環境を表示することができません。
操作しているユーザはスペース管理者であったため、権限の問題でもなさそうでした。
AWSサポートに問い合わせた
手詰まりになってしまったため、AWSサポートに問い合わせました。
海外部署への問合せになるということで約2週間ほどかかり、開発環境が13個残っているという回答を得ました。
これは「削除の方法」を聞くべきだったところを「課金されている理由」を聞いてしまったためです・・・
また質問を重ねると期間を要してしまう、そんな状況でふと気づきました。
そういえばAWS CLIを使えばいいのでは?
AWS CLIを使ってみた
セットアップ
まず こちら の手順に従ってAWS CLIをセットアップする必要があります。
ポイントは下記2点です。
- AWS CLIのバージョンが最新であること。
- CodeCatalyst固有のプロファイル設定が必要であること。
コマンド例
開発環境の数量を確認する
$ aws codecatalyst list-dev-environments --space-name xxx | jq '.items | length'
13
開発環境のスペース、プロジェクト、IDを確認する
$ aws codecatalyst list-dev-environments --space-name xxx | jq -r '.items[] | [.spaceName, .projectName, .id] | @csv'
xxx, yyy, 231a8a37-4868-4ca0-9ff8-434070de6caa
xxx, yyy, 6e32c963-ee38-49e8-9f4e-da2780d2c1be
xxx, yyy, e805a212-6ab4-43f8-bf46-8688ad3b659f
xxx, yyy, 1ca709f1-5d4a-4014-86f1-3f7bb7da1ad9
xxx, yyy, f526e538-c4be-4cad-ab83-af5d4edbae52
xxx, yyy, 4709fb48-cf10-40c2-b15e-4fcab6c2be10
xxx, yyy, d7c64a84-9db7-46cd-87e9-de3fc06b167f
xxx, yyy, 023038b7-e3a0-44c9-a5af-d0b72f8be022
xxx, yyy, a28e272f-dda3-4636-bed3-ebd80e01cc3c
xxx, yyy, 5f6cb71a-4666-4325-ba62-6dd353f0bd73
xxx, yyy, bf807ef9-acb0-441b-a9a4-783ff58b1637
xxx, yyy, 6c76f696-7be2-4c51-99b8-1411e881e98a
xxx, yyy, 090c570c-ecfd-44de-add5-ba700b3173a3
開発環境を削除する
$ aws codecatalyst delete-dev-environment --space-name xxx --project-name yyy --id 231a8a37-4868-4ca0-9ff8-434070de6caa
{
"spaceName": "xxx"
"projectName": "yyy"
"id": "231a8a37-4868-4ca0-9ff8-434070de6caa"
}
さいごに
AWS CLIを利用することで課金ゾンビを無事倒すことができました。
なぜAWS CLIの利用をすぐに思いつかなかったのか定かではありませんが、CodeCatalystはその他AWSサービスとは別物、という感覚がなんとなくあったからなのかもしれません。
レアケースかもしれませんが、どなたかの参考になれば幸いです。