다른 지역간에 인스턴스를 자주 전환하고 때로는 다른 지역에서 실행중인 인스턴스를 끄는 것을 잊었습니다. 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
- “실행중인 인스턴스”라는 이름의 블록을 찾으면 현재 지역이 표시됩니다.
- 아래의 “모든 지역보기”링크를 클릭합니다.
답변
-
먼저 AWS Management 콘솔 로 이동하여 리소스 그룹을 클릭합니다.
-
그런 다음 다음을 찾아
Network and Content Delivery
클릭하십시오VPC
. -
그런 다음 실행중인 인스턴스를 찾아 모든 지역보기를 확장합니다. 여기에서 모든 지역의 실행중인 모든 인스턴스를 찾을 수 있습니다.
답변
콘솔에서
VPC 대시 보드로 이동하여 ->를 https://console.aws.amazon.com/vpc/home
클릭하십시오 .Running instances
See all regions
CLI에서
예를 들어 이것을 .bashrc
. 다시로드 source ~/.bashrc
하고 실행하십시오.
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 답변을 기반으로하지만 덜 장황하고 빠릅니다. 당신이 필요 JQ 와 AWS-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"
}