- クラウドを普段触っていく中での作業を、メモベースですが書いて行こうと思います
- あまりこらずに書いていく予定です
ゴール
- 最近お客さんがaws 費用を気にし始めたため、不要なaws リソースを削除していく作業が発生
現在のRDS の構成
-
インスタンスサイズも小さいので、まぁいいやでこの構成に
-
ステージング環境でAurora の複数台構成はやはり不要となり、リードレプリカを削除することに
アプリケーション構成
- ALB -> ECS(Fargate) -> RDS
- Fargate にはPHP が動いていて、Laravel で書かれている
削除までに対応したこと
- 画面にユーザ・管理画面があり、それぞれのLarabel でどのようにDB を参照しているか確認
- ユーザ画面
- リードレプリカを参照している
- 管理画面
- リードレプリカを参照していない
- ユーザ画面を作ったバックエンドエンジニアにDB の参照方法を確認
- 環境変数を参照していることを確認
- 次にFatgate で動いているタスクの環境変数の確認
- Systems Manager のパラメータストアで管理していることを確認
- パラメータストアで定義しているエンドポイントも、Aurora クラスタが払い出してくれているエンドポイントを使っていることを確認
- Systems Manager のパラメータストアで管理していることを確認
- ここまでの確認で、リードレプリカを削除してもLaravel 側の変更なしで行けることを確認
リードレプリカの削除
- aws リソースは、Terraform で管理されているためTerraform を修正してapply
- 各種確認はしているけどやはり削除は怖い...
削除後の確認
-
terraform plan
を実行して、意図しない差分が出ていないかを確認 - aws マネージメントコンソールで確認
- dig でIP の確認
- ここまでインフラサイドの確認をして、ディレクションしている人にざっとサイトチェックを依頼
まとめ
- 「この構成無駄だろう」と少しでも思ったら、自分一人では決めず周りに相談
- ロンチしてからこう行った作業は流石に嫌なので...
- アプリケーションの構成を把握して、チェックするポイントを把握する
- 自信がなければPHP を書いた人たちにもヒアリング
まとめのまとめ
- このくらいの記事は、あまり時間をかけず書けるようになりたい