Freesunny

[awscli] s3 버킷 라이브사이클 설정

AWS

# 설정 확인

# aws s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAME
{
    "Rules": [
        {
            "ID""Convert IA",
            "Filter": {
                "Prefix"""
            },
            "Status""Enabled",
            "Transitions": [
                {
                    "Days"30,
                    "StorageClass""STANDARD_IA"
                }
            ],
            "AbortIncompleteMultipartUpload": {
                "DaysAfterInitiation"7
            }
        }
    ]
}
 

 

# 설정 삭제

# aws s3api  delete-bucket-lifecycle --bucket BUCKET_NAME

 

# 설정 추가

# aws s3api put-bucket-lifecycle-configuration --bucket BUCKET_NAME --lifecycle-configuration file://LIFECYCLE_POLICY.JSON

 

[awscli] 볼륨 출력

AWS

인스턴스에서 사용 중인 볼륨 출력 (인스턴스에 Attached 되어 있는)

$ aws ec2 describe-volumes --region ap-northeast-2 \
  --filters Name=status,Values=in-use --query 'Volumes[].VolumeId'

$ aws ec2 describe-volumes --region ap-northeast-2 \
  --filters Name=attachment.status,Values=attached --query 'Volumes[*].VolumeId'

 

 

인스턴스에 연결되어 있지 않은 볼륨 출력 (인스턴스에 Detached 되어 있는)

$ aws ec2 describe-volumes --region us-east-1 \
  --filters Name=status,Values=available --query 'Volumes[].VolumeId'

 

 

특정 tag 가 있는 볼륨 출력 (zsh에서는 오류 발생 bash 실행)

$ aws ec2 describe-volumes --region ap-northeast-2 \
  --filters Name=tag:kubernetes.io/cluster/test-cluster,Values=* \
  --query 'Volumes[*].VolumeId[]'

 

 

특정 tag 의 특정 값이 있는 볼륨 출력

$ aws ec2 describe-volumes --region ap-northeast-2 \
  --filters Name=tag:kubernetes.io/cluster/test-cluster,Values=owned \
  --query 'Volumes[*].VolumeId[]'

 

 

특정 tag가 지정되지 않는 볼륨 출력

$ aws ec2 describe-volumes --region ap-northeast-2 \
  --query 'Volumes[?Tags[?Key != `Serivce`]].VolumeId'

[awscli] 특정 EC2 인스턴스 정보 출력

AWS

아래의 명령으로 인스턴스의 정보를 출력할 수 있다.

# aws ec2 describe-instances --region ap-northeast-2 \
  --filters Name=instance-id,Values=i-0f129db467cc63be9 \
  --query 'Reservations[].Instances[]'

[awscli] 정지된 인스턴스의 인스턴스ID, 블럭디바이스명, 볼륨ID추출

AWS

정지된 인스턴스의 인스턴스ID, 블럭디바이스명, 볼륨ID를 추출하는 방법

# aws ec2 describe-instances --region ap-southeast-1 \
  --filters Name=instance-state-name,Values=stopped \
  --query 'Reservations[].Instances[].[InstanceId, BlockDeviceMappings[].DeviceName, BlockDeviceMappings[].Ebs[].VolumeId]'

 

## 결과 예시 ##


    [
        "i-06f177d59b0e3d50c",
        [
            "/dev/xvda"
        ],
        [
            "vol-02cf2427bc2f1997d"
        ]
    ],
    [
        "i-0f2216c429a10e341",
        [
            "/dev/sda1",
            "/dev/sdb"
        ],
        [
            "vol-0c11c6d04a20e4225",
            "vol-09af1b51937217dcd"
        ]
    ]
]

[awscli] 정지된 인스턴스ID 추출

AWS

정지된 인스턴스들의 ID를 추출하는 방법

# aws ec2 describe-instances --region ap-southeast-1 \
  --filters Name=instance-state-name,Values=stopped \
  --query 'Reservations[*].Instances[].InstanceId'

 

## 결과 예시 ##

[
    "i-0f867acdbc92ed196",
    "i-00b002f8c1f0c5b90",
    "i-0a1acb9ef7dc079d1"
]

전체 Elastic IP 리스트 출력

AWS

awscli 만 사용하여 출력

$ aws ec2 describe-addresses --query "Addresses[*].PublicIp"
[
    "13.124.0.67",
    "13.124.100.13",
    "13.124.109.10",
    "13.124.134.12",
    "13.124.134.67",
    "13.124.171.220",
    "13.124.210.10",
    "13.124.211.188",
    "13.124.213.123",
    "13.124.29.204",
]

 

awscli + jq 를 사용하여  출력

$ aws ec2 describe-addresses | jq '.Addresses[].PublicIp'
"13.124.0.67"
"13.124.100.13"
"13.124.109.10"
"13.124.134.12"
"13.124.134.67"
"13.124.171.220"
"13.124.210.10"
"13.124.211.188"
"13.124.213.123"
"13.124.29.204"

 

Elastic IP 정보 출력

AWS

awscli 만 사용하여 특정 EIP 정보 출력

$ aws ec2 describe-addresses --query "Addresses[?PublicIp=='13.124.0.244']"
[
  {
    "InstanceId": "i-01bb358db39e00eaf",
    "PublicIp": "13.124.0.244",
    "AllocationId": "eipalloc-051f47aa00be3e2f6",
    "AssociationId": "eipassoc-02c86d3f88f4b39aa",
    "Domain": "vpc",
    "NetworkInterfaceId": "eni-0c05b71024c58f8ad",
    "NetworkInterfaceOwnerId": "552342233276",
    "PrivateIpAddress": "10.12.1.119",
    "PublicIpv4Pool": "amazon"
  }
]

 

awscli + jq 사용하여 특정 EIP 정보 출력

$ aws ec2 describe-addresses | jq '.Addresses[] | select (.PublicIp=="13.124.0.244")'
{
  "InstanceId": "i-01bb358db39e00eaf",
  "PublicIp": "13.124.0.244",
  "AllocationId": "eipalloc-051f47aa00be3e2f6",
  "AssociationId": "eipassoc-02c86d3f88f4b39aa",
  "Domain": "vpc",
  "NetworkInterfaceId": "eni-0c05b71024c58f8ad",
  "NetworkInterfaceOwnerId": "552342233276",
  "PrivateIpAddress": "10.12.1.119",
  "PublicIpv4Pool": "amazon"
}