[infra]デプロイ済みAWSリソースを全削除して継続課金を停止する
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
- Tipo di issue
- Refactoring
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- aws, github-actions, terraform
- Ambito
- cloud, devops, infrastructure
Direzione di ricerca
Start with infra/dev/README.md and infra/bootstrap/README.md, then verify the AWS account, region, backend key, state, and safety gates before any deletion. Review the saved terraform plan and check GitHub OIDC and AWS-specific variables. Done means the Hanasu resources and state bucket are removed, independent checks pass, and later Billing verification shows no new recurring charges.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
種別: 運用作業 — AWS・GitHub上の実環境を変更し、結果をIssueへ記録する。コード変更やPR作成は行わない。
目的
AWSアカウント 926046660554 にデプロイ済みのHanasu dev環境と、そのTerraform state用リソースを廃止し、AWSリソースによる新たな継続課金が発生しない状態にする。
過去利用分の請求とBillingへの反映遅延は残り得るため、「請求額が即時0円になること」ではなく、「課金対象リソースが残らず、削除後に新しい利用料が増えないこと」を完了基準とする。
完了条件
- RDSデータ、最終snapshot、ECR image、CloudWatch Logs、Amplify配備履歴、JWT/AmiVoice/RDSのsecret、Terraform state履歴が復旧不能になることを確認し、実行直前の明示承認をIssueへ記録している
- AWSアカウント
926046660554、リージョンap-northeast-1、backend keyecs/terraform.tfstateのstateとAWS実体を照合し、レビュー済みの保存済みdestroy planだけを適用してinfra/devのstateが空になっている - AWS側の独立監査でHanasu所有の課金対象リソースが残っていない。削除予約中のSecrets Manager secretがある場合は、課金停止状態と完全削除予定日を記録している
- GitHub OIDC providerの他用途からの参照を確認し、Hanasu専用なら削除、共有なら別管理へ移管している。AWSリソース固有のGitHub Actions Variablesも削除または無効化している
- dev環境の削除確認後、versioning済みstate bucketの全object versionとdelete markerを削除してbucket自体を削除し、翌日以降のBilling確認でも新しい継続課金がないことをIssueへ記録している
実行範囲
- 手動デプロイを凍結し、実行中のGitHub Actionsがないことを確認する
- caller identity、リージョン、Terraform state、AWS側リソースを棚卸しする
terraform plan -destroy -out=<一時plan>の対象・件数をレビューし、そのplanだけをapplyする- RDS、ECS/Fargate、ALB、CloudFront、Amplify、ECR、CloudWatch Logs、Secrets Manager、VPC/ENI/Public IPv4/EIP/NAT Gateway/VPC endpoint、IAMをAWS側から再確認する
- GitHub Actions Variablesのうち、削除したAWS環境のARN・app ID・URLを削除または無効化する
- 最後に
hanasu-terraform-state-926046660554の用途と全keyを確認し、全version/delete markerを削除してbucketを削除する - 翌日以降にCost Explorer/Billingを確認し、削除後の新規利用料が発生していないことを記録する
安全ゲート・停止条件
- AWS account、region、backend keyのいずれかが想定と一致しない
- state lock、実行中のdeploy、他作業との競合がある
- stateとAWS実体が一致しない、またはHanasu所有か不明なリソースがある
- RDS等のデータ保持やbackupが必要だが、保存先・保持期間が決まっていない
- GitHub OIDC providerを別IAM roleが参照している
- state bucketに
ecs/terraform.tfstateとlock以外の用途不明なkeyがある - destroy planにHanasu dev環境外または共有リソースが含まれる
上記の場合は削除を開始しない。途中失敗時も -target、terraform state rm、AWSコンソールからの強制削除へ進まず、stateと実体を再照合して判断を仰ぐ。
削除時の注意
aws_db_instance.mainはskip_final_snapshot = trueのため、RDSは最終snapshotなしで削除される- ECRは
force_delete = trueのため、imageを含めて削除される - Secrets Managerは削除予約中に物理的には残る場合があるが、既存の検討記録上は課金対象外。安全のため回復期間は維持し、完全削除予定日を記録する
aws_iam_openid_connect_provider.github_actionsはアカウント内で共有され得るため、外部参照の有無を確認する- state bucketは別stateで
prevent_destroy = true、かつversioning有効。infra/bootstrapのlocal stateが現作業ツリーにないため、dev削除完了後にAWS CLIで全version/delete markerを明示的に削除し、空を確認してからbucketを削除する - stateやplanには秘密値が含まれ得るため、内容をIssueへ貼らない。一時planとログは安全に削除する
やらないこと
- アプリ、Terraform、workflowのコード変更やPR作成
- AWS環境の再apply・再デプロイ
- Hanasu所有と確認できない共有リソースの削除
- state、secret値、認証情報、生のplan/logのIssue添付
- AmiVoice等、Terraform管理外の第三者サービス契約の解約
検証方法
terraform state listが空であること- 上記AWSサービスごとの一覧・describe結果にHanasu所有の課金対象リソースがないこと
- state bucketにobject version/delete markerがなく、bucketが存在しないこと
- GitHub ActionsのAWS固有Variablesが削除または無効化されていること
- 翌日以降のCost Explorer/Billingで、削除後の新しい継続利用料が確認されないこと
検証結果は、実行日時、対象account/region、destroy件数、残存確認結果、Billing確認日時だけをIssueへ記録し、秘密値やstate内容は記載しない。
前提・依存
- 依存Issue: なし
- Issue #111: dev環境の構築・配備記録
- infra/dev 運用手順
- infra/bootstrap 運用手順
- dev環境のdestroyと再apply運用
- AWS: versioning済みS3 objectの完全削除
- AWS Billing User Guide — Cost Explorerの反映には最大24時間かかり得る
対象外だが別途確認すること
AmiVoiceのAPI keyをAWS Secrets Managerから削除しても、AmiVoice側の契約・課金は停止しない。第三者サービスも含めて費用を完全停止する場合は、契約状況を別途確認する。
- Lingua principale
- HTML
- Stelle
- 1
- Fork
- 0
- Merge medio
- 1h 19m
- PR unite (30g)
- 76
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di study-basic-hackathon/hanasu
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
study-basic-hackathon/hanasu#219 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
study-basic-hackathon/hanasu#218 ·
-
[frontend]評価結果から回答方式の表示を削除する Aperta種別: 実装
Difficoltà 2/5 Mezza giornata Idoneità per principianti 88/100
study-basic-hackathon/hanasu#211 ·
-
種別: 実装
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
study-basic-hackathon/hanasu#210 ·
-
種別: 実装
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
study-basic-hackathon/hanasu#207 ·
Tutte le issue di study-basic-hackathon/hanasu
Issue simili
-
[BUG] ECR GetAuthorizationToken returns a proxyEndpoint for the default region, not the request's Apertabug ecr
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
docs-from-code
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
microsoft/aspire.dev#1734 ·
-
[BUG] Apertabug needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
openwallet-foundation/eudiplo#1067 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
hashicorp/go-azure-helpers#286 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
akash-network/community#1526 ·