[amazon-web-services] 모든 리전에서 실행중인 모든 Amazon EC2 인스턴스를 보려면 어떻게해야합니까?

다른 지역간에 인스턴스를 자주 전환하고 때로는 다른 지역에서 실행중인 인스턴스를 끄는 것을 잊었습니다. Amazon 콘솔에서 실행중인 모든 인스턴스를 볼 수있는 방법을 찾을 수 없었습니다.
지역에 관계없이 실행중인 모든 인스턴스를 표시하는 방법이 있습니까?



답변

명확하지 않은 GUI 옵션은 Resource Groups > Tag Editor입니다. 여기에서 인스턴스에 태그가 지정되지 않은 경우에도 모든 지역의 모든 인스턴스를 찾을 수 있습니다.
화면 캡처


편집 :이 화면은 최근에 재 설계되었으며 이제 새로운 모양과 “모든 지역”옵션이 있습니다.


답변

현재 AWS GUI에서는이 작업을 수행 할 수 없다고 생각합니다. 하지만 다음은 AWS CLI를 사용하여 모든 리전의 모든 인스턴스를 나열하는 방법입니다.

for region in `aws ec2 describe-regions --region us-east-1 --output text | cut -f4`
do
     echo -e "\nListing Instances in region:'$region'..."
     aws ec2 describe-instances --region $region
done

여기 에서 가져옴 (전체 토론을 보려면)

또한, 만약 당신이

지역을 지정해야합니다. “aws configure”를 실행하여 지역을 구성 할 수도 있습니다.

으로 그렇게 할 수 있습니다 aws configure set region us-east-1. 댓글에 대해 @Sabuncu에게 감사드립니다.

최신 정보

이제 (2019 년) 4 번째 필드에 cut 명령을 적용해야합니다. cut -f4


답변

@imTachu 솔루션이 잘 작동합니다. AWS 콘솔을 통해이 작업을 수행하려면 …

  • AWS 콘솔
  • 서비스
  • 네트워킹 및 콘텐츠 제공
  • VPC
  • “실행중인 인스턴스”라는 이름의 블록을 찾으면 현재 지역이 표시됩니다.
  • 아래의 “모든 지역보기”링크를 클릭합니다.

답변

  1. 먼저 AWS Management 콘솔 로 이동하여 리소스 그룹을 클릭합니다.

    여기에 이미지 설명 입력

  2. 그런 다음 다음을 찾아 Network and Content Delivery클릭하십시오 VPC.

    여기에 이미지 설명 입력

  3. 그런 다음 실행중인 인스턴스를 찾아 모든 지역보기를 확장합니다. 여기에서 모든 지역의 실행중인 모든 인스턴스를 찾을 수 있습니다.

    여기에 이미지 설명 입력


답변

콘솔에서

VPC 대시 보드로 이동하여 ->를 https://console.aws.amazon.com/vpc/home클릭하십시오 .Running instancesSee all regions

여기에 이미지 설명 입력

CLI에서

예를 들어 이것을 .bashrc. 다시로드 source ~/.bashrc하고 실행하십시오.

참고 : aws CLI 를 제외하고 jq를 설치 해야합니다.

function aws.print-all-instances() {
  REGIONS=`aws ec2 describe-regions --region us-east-1 --output text --query Regions[*].[RegionName]`
  for REGION in $REGIONS
  do
    echo -e "\nInstances in '$REGION'..";
    aws ec2 describe-instances --region $REGION | \
      jq '.Reservations[].Instances[] | "EC2: \(.InstanceId): \(.State.Name)"'
  done
}

출력 예 :

$ aws.print-all-instances

Listing Instances in region: 'eu-north-1'..
"EC2: i-0548d1de00c39f923: terminated"
"EC2: i-0fadd093234a1c21d: running"

Listing Instances in region: 'ap-south-1'..

Listing Instances in region: 'eu-west-3'..

Listing Instances in region: 'eu-west-2'..

Listing Instances in region: 'eu-west-1'..

Listing Instances in region: 'ap-northeast-2'..

Listing Instances in region: 'ap-northeast-1'..

Listing Instances in region: 'sa-east-1'..

Listing Instances in region: 'ca-central-1'..

Listing Instances in region: 'ap-southeast-1'..

Listing Instances in region: 'ap-southeast-2'..

Listing Instances in region: 'eu-central-1'..

Listing Instances in region: 'us-east-1'..

Listing Instances in region: 'us-east-2'..

Listing Instances in region: 'us-west-1'..

Listing Instances in region: 'us-west-2'..


답변

리소스를 생성 할 때마다 이름으로 태그를 지정하면 이제 리소스 그룹 을 사용 하여 모든 리전에서 이름 태그가있는 모든 유형의 리소스를 찾을 수 있습니다 .


답변

imTachus 답변을 기반으로하지만 덜 장황하고 빠릅니다. 당신이 필요 JQAWS-CLI가 설치되어 있어야합니다.

set +m
for region in $(aws ec2 describe-regions --query "Regions[*].[RegionName]" --output text); do
  aws ec2 describe-instances --region "$region" | jq ".Reservations[].Instances[] | {type: .InstanceType, state: .State.Name, tags: .Tags, zone: .Placement.AvailabilityZone}" &
done; wait; set -m

스크립트는 aws ec2 describe-instances각 지역 (현재 15 개!)에 대해 병렬로 실행 하고 json 출력에서 ​​관련 비트 (상태, 태그, 가용성 영역) 만 추출합니다. 는 set +m백그라운드 프로세스가 시작할 때 / 종료보고하지 않도록 필요합니다.

출력 예 :

{
  "type": "t2.micro",
  "state": "stopped",
  "tags": [
    {
      "Key": "Name",
      "Value": "MyEc2WebServer"
    },
  ],
  "zone": "eu-central-1b"
}