はじめに
何事にも「取り返しのつかない要素」はあるもので、Google Cloudにおいても存在します。
手戻りや代替策での妥協により苦しむ人を少しでも減らせるよう、書き残しておきます。
制約のため仕方ありませんが、これらの悩みがいつか軽減されることを楽しみにしたいと思います。
実際、少しずつ取り返しがつくように機能改善が続けられており、嬉しい限りです。
※あくまで筆者の体験範囲で、かつ覚えているもののみ記載しています。
プロジェクト、プロジェクトID関連
プロジェクトIDの変更、再利用
(公式ドキュメントより抜粋)
プロジェクト ID は、プロジェクトを Google Cloud の他のすべてのプロジェクトと区別するために使用する一意の文字列です。
このプロジェクトIDは、CloudコンソールやAPI呼び出し時のURL、gcloudコマンドでプロジェクトを指定する文字列としても使用します。
プロジェクトを作成する際、プロジェクトIDは自動で生成されますが、自分で指定することも可能です。
これはあとから変更できません。また、以前に使用されたIDも指定できません。
様々な理由により、プロジェクトIDを変更・再利用したくなる場面があります。例えば以下のとおりです。
- typoした
- 先行してプロジェクトを作成したため、後日定めた命名規則に適合しない
- 他人に知られたくない情報をIDに含めた
- 付けようとしていたプロジェクトIDを、他者が既に使っていた
- 他者に使われないよう名前を自分の検証環境で予約しておき、時が来たので削除して本物を作成しようとした
様々な制約がありますので、公式ドキュメントを確認したうえで命名規則を定め、計画的にプロジェクトを作成しましょう。
https://cloud.google.com/resource-manager/docs/creating-managing-projects?hl=ja#before_you_begin
代替策
新たに希望するプロジェクトIDでプロジェクトを作成し、クラウドリソースとデータを移行します。
IaCで管理済みなら、少しだけショックと手間が軽減されるでしょう。
プロジェクトの組織間移動(2021/05 GA)、組織なしに変更(カスタマーケアに依頼)
以前は、プロジェクトの組織間移動をするためにはGoogleへサポートケースを上げて「組織なし」に変更する対応をしてもらう必要があり、リスクもあるし時間もかかるという話がありました(筆者は未体験)。
そのため、Google Cloudの環境を他者へ引き渡す予定がある場合、最初からプロジェクトを「組織なし」で作成する慣習を見かけます。
「組織なし」から組織下に加えるのは自分で容易にできますし、既存の組織の要素(組織ポリシーやIAM継承など)の影響を受けずに済むので影響範囲が分かりやすいためです。
2021年5月に組織間移動がGAとなり、入念な移行計画は必要ですが、「組織なし」を経由しなくて済むようになりました。
https://cloud.google.com/resource-manager/docs/project-migration?hl=ja
https://cloud.google.com/resource-manager/docs/release-notes#May_26_2021
Public IP Address関連
Public IP Addressを同じアドレスで取り直す
一度開放すると、同じアドレスを取り直せる保証はありません。
検証環境の費用を最適化する目的で、安易に開放するのは危険です。後述の手間を踏まえても開放したいか、よく検討してください。
DNSにアドレスを登録していた場合、再取得によりアドレスが変わるとDNSの設定変更も必要になります。
DNSの設定変更を他部署や他法人に依頼する必要がある場合は、手間・費用・リードタイムを気にかけてください。
Public IP Addressの名前、プレミアム/スタンダード、グローバル/リージョンの変更
後から名前、プレミアム/スタンダード、グローバル/リージョンを変更できません。開放&再予約になります。
安易にリージョンを指定して予約し、グローバル外部アプリケーション ロードバランサで使えなかったというミスに注意してください。予約したアドレスが、使いたいリソースで選択できることをコンソールで確認しておきましょう。
Public IP Addressのプロジェクト間移行(2023/07 GA)
単にプロジェクトの引っ越し時にも使えますし、検証環境のみ構築した状態で検証環境と本番環境のためのPublic IP Addressを予約し、本番環境を構築した後に移すというユースケースにも対応できるようになりました。
https://cloud.google.com/vpc/docs/move-ip-address-different-project?hl=ja
https://cloud.google.com/vpc/docs/release-notes#July_05_2023
トラブルシューティングによると「外部 IPv4 アドレスの移動に失敗する」パターンもあるようなので、事前に確認しましょう。
https://cloud.google.com/vpc/docs/move-ip-address-different-project?hl=ja#troubleshooting
Compute Engineのインスタンス名を変更(2023/12 GA)
インスタンスを作成後、インスタンスを停止すればインスタンス名を変更できるようになりました。
https://cloud.google.com/compute/docs/instances/rename-instance?hl=ja
https://cloud.google.com/compute/docs/release-notes#December_20_2023
FirestoreでネイティブモードとDatastoreモードを自由に選択する(2024/01 GA)
プロジェクト単位で、Firestoreのモードを一つしか選択できない時期がありましたが、
現在では複数のデータベースを作成でき、データベース作成時にモードを選択できるようになりました。
https://cloud.google.com/firestore/docs/manage-databases?hl=ja
https://cloud.google.com/firestore/docs/release-notes#January_10_2024
Cloud SQLのインスタンス名の再利用(2022/09 GA)
インスタンスを削除された直後に、猶予期間無くインスタンス名を再利用できるようになりました。
https://cloud.google.com/sql/docs/mysql/faq?hl=ja#reuse
https://cloud.google.com/sql/docs/release-notes#September_21_2022