AWS全体のリソースを効率的にリスト化する方法
AWSの各種リソース(VPC、EC2、ALB、TG、SG、RDS、ECS、ECR)を一覧化する方法を解説します。AWSアカウント内のリソースを効率的に管理するために、CLIやSDK、コンソールツールを活用しましょう。
1. AWS CLI を使用する方法
AWS CLI(コマンドラインインターフェース)を利用すれば、各リソースの情報を簡単に取得できます。以下の手順でセットアップし、コマンドを実行します。
1.1 AWS CLIのインストール
AWS CLIがインストールされていない場合は、以下のコマンドでインストールしてください。
macOS / Linux
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /
Windows(PowerShell)
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
1.2 AWS CLIの設定
AWS CLIをインストールしたら、以下のコマンドで設定を行います。
aws configure
設定時に以下の情報を入力してください。
- AWS Access Key ID: IAMユーザーのアクセスキー
- AWS Secret Access Key: シークレットキー
- Default region name: 利用するリージョン(例:
us-east-1
) - Default output format:
json
、table
、text
から選択
1.3 AWS CLIでリソースをリスト化
VPCのIDと名前を取得
aws ec2 describe-vpcs --query "Vpcs[*].[VpcId, Tags[?Key=='Name'].Value | [0]]" --output table
EC2インスタンスのIDと名前を取得
aws ec2 describe-instances --query "Reservations[*].Instances[*].[InstanceId, Tags[?Key=='Name'].Value | [0]]" --output table
ALB(Application Load Balancer)のIDと名前を取得
aws elbv2 describe-load-balancers --query "LoadBalancers[*].[LoadBalancerArn, LoadBalancerName]" --output table
ターゲットグループ(TG)のIDと名前を取得
aws elbv2 describe-target-groups --query "TargetGroups[*].[TargetGroupArn, TargetGroupName]" --output table
セキュリティグループ(SG)のIDと名前を取得
aws ec2 describe-security-groups --query "sort_by(SecurityGroups, &VpcId)[*].[GroupName, GroupId, VpcId]" --output table
RDSインスタンスのIDと名前を取得
aws rds describe-db-instances --query "DBInstances[*].[DBInstanceIdentifier, DBInstanceClass]" --output table
ECSクラスタのIDと名前を取得
aws ecs list-clusters --query "clusterArns" --output table
aws ecs describe-clusters --clusters <CLUSTER_ARN> --query "clusters[*].[clusterArn, clusterName]" --output table
ECRリポジトリのIDと名前を取得
aws ecr describe-repositories --query "sort_by(repositories, &repositoryName)[*].[repositoryArn, repositoryName]" --output table
2. AWS SDK(Boto3)を使用する方法(Python)
2.1 Boto3のインストール
Python環境にBoto3がインストールされていない場合、以下のコマンドでインストールしてください。
pip install boto3
2.2 Boto3を利用してAWSリソースを取得する
以下のPythonスクリプトを実行すると、AWSのリソースを取得できます。
import boto3
def list_resources():
ec2 = boto3.client('ec2')
elbv2 = boto3.client('elbv2')
rds = boto3.client('rds')
ecs = boto3.client('ecs')
ecr = boto3.client('ecr')
print("VPCs:", [(vpc['VpcId'], vpc.get('Tags', [{}])[0].get('Value', 'N/A')) for vpc in ec2.describe_vpcs()['Vpcs']])
print("EC2 Instances:", [(i['InstanceId'], i.get('Tags', [{}])[0].get('Value', 'N/A')) for r in ec2.describe_instances()['Reservations'] for i in r['Instances']])
print("Load Balancers:", [(lb['LoadBalancerArn'], lb['LoadBalancerName']) for lb in elbv2.describe_load_balancers()['LoadBalancers']])
print("Target Groups:", [(tg['TargetGroupArn'], tg['TargetGroupName']) for tg in elbv2.describe_target_groups()['TargetGroups']])
print("Security Groups:", [(sg['GroupId'], sg['GroupName']) for sg in ec2.describe_security_groups()['SecurityGroups']])
print("RDS Instances:", [(db['DBInstanceIdentifier'], db['DBInstanceClass']) for db in rds.describe_db_instances()['DBInstances']])
print("ECS Clusters:", ecs.list_clusters()['clusterArns'])
print("ECR Repositories:", [(repo['repositoryArn'], repo['repositoryName']) for repo in ecr.describe_repositories()['repositories']])
list_resources()
3. AWS Resource Explorer を使用する方法
3.1 設定手順
- AWS マネジメントコンソールにログイン
- Resource Explorer を開く(https://console.aws.amazon.com/resource-explorer/home)
- [インデックスを作成] をクリックし、対象のリージョンを選択
- リソース検索を実行し、必要なリソースの一覧を取得
- CSVとしてエクスポートして管理
4. AWS Config を使用する方法
4.1 設定手順
- AWS Config を有効化(https://console.aws.amazon.com/config/home)
- クエリ機能を使用してリソース一覧を取得
- CSV形式でエクスポートして管理
5. AWS Trusted Advisor を使用する方法
5.1 設定手順
- AWS マネジメントコンソール にログイン
- Trusted Advisor を開く(https://console.aws.amazon.com/trustedadvisor/home)
- コスト最適化やセキュリティの推奨事項を確認
まとめ
AWSリソースのリスト化には、CLI、Boto3、Resource Explorer、AWS Config、Trusted Advisorといったツールが利用できます。用途に応じて最適な方法を選びましょう!
コメント