GCP/AWSなどの複数プロジェクトを管理しやすくする

GCP/AWSなどの複数プロジェクトを管理しやすくする

Tags
GCP
AWS
CLI
Tech
Published
March 9, 2024
Last Updated
Last updated February 24, 2025
Author
GCPやAWSなどのクラウドを使用して複数のプロジェクトを管理していると設定の切り替えなどが面倒に感じることがあります。
特にCLIを使用してプロジェクトの操作を行うときに切り替え忘れると事故につながる場合もあるかもしれません。
 
そこで開発ディレクトリに移動したタイミングで自動的にプロファイルを切り替える方法を紹介します。
 

前提

  • gcloud, awsなどのcliでプロファイルを設定済み
 
プロファイルの確認方法
GCPの場合は gcloud config configurations list
AWSの場合は aws configure list
 

direnvの導入

direnvは、ディレクトリに対して環境変数を設定するための拡張ツールです。このツールを使用すると、特定のディレクトリに移動したときに自動的に環境変数を設定することができます。
 

インストール

apt install direnv eval "$(direnv hook bash)" source ~/.bashrc
 
 

ディレクトリに環境変数を設定するファイルを設置

作業ディレクトリのルートに.envrcを作成します
 
# GCPの場合 export CLOUDSDK_ACTIVE_CONFIG_NAME=<CONFIG_NAME> # AWSの場合 export AWS_PROFILE=<PROFILE_NAME>
 
.envrcを設定後にディレクトリに移動するとdirenvの許可を求められるので指示に従います。
direnv allow
 
以上で作業ディレクトリ移動するだけでプロファイルの切り替えができるようになります。
 
更にStarshipを使用してterminalに現在のプロファイルを表示すると視覚的にわかりやすくなります。
 
おまけ
kubernetesのcontext切替を自動で行う方法
プロジェクトルートにkube/configを作成します
aws eks update-kubeconfig --name <PROFILE_NAME> --kubeconfig=.kube/config
 
.envrcにkubeconfigを設定する項目を追加
... export KUBECONFIG=$(pwd)/.kube/config