2016-12-05 5 views
1

우리는 Elastic Beanstalk 인스턴스 중 하나에 직접 연결하려고하므로 public IP address을 알아야합니다.콘솔에서 Elastic Beanstalk 인스턴스 중 하나에서 공용 DNS를 가져옵니다.

우리는 일반적으로 aws.console 웹 사이트의 EC2 탭에서 인스턴스의 public IP을 가져옵니다. 우리는 페이지의 몇 가지를 찾아 웹을 필요로하기 때문에 ... 우리는 우리의 서버 중 하나에서 eb 유틸리티를 구성한

복잡, 그래서 우리는 eb list 우리의 환경을 폴링 또는 eb status와 상태를 확인할 수 있습니다.

유틸리티를 사용하여 환경 인스턴스의 공용 DNS를 얻으려면 어떻게해야합니까?

이 정보를 얻을 수있는 다른 방법이 있습니까?

감사합니다.

답변

1

저는 EB CLI 사용자가 아닙니다. 그러나 당신은 awscli을 사용하여 1 명령으로 원하는 것을 얻을 수 있습니다.

먼저 설치하고 awscli을 구성

$ pip install awscli 
$ aws configure 

ElasticBeanstalk 자동 elasticbeanstalk:environment-name 태그 ElasticBeanstalk 환경의 일부 EC2 인스턴스 태그. 이 정보를 사용하면 특정 elasticbeanstalk:environment-name 태그 값을 가진 실행중인 모든 인스턴스를 필터링 할 수 있습니다. 위의 명령

$ aws ec2 describe-instances --filters "Name=tag:elasticbeanstalk:environment-name,Values=your-environment-name"

당신에게 꽤 오랜 JSON 출력을 제공 할 것입니다. "PublicIpAddress"을 찾을 수 있지만 jq 같은 도구를 사용하여이 정보를 필터링 할 수 있습니다.

$ aws ec2 describe-instances --filters "Name=tag:elasticbeanstalk:environment-name,Values=your-environment-name" | jq '.Reservations | .[] | .Instances | .[] | .PublicIpAddress'

그것을 시도 : 그래서 마지막 명령은 같을 것입니다.

가 여기에 사용 awscli 명령에 대한 다양한 옵션에 대한 자세한 내용은 다음과 같습니다 2017년 3월 12일

jq가 불필요 aws ec2 describe-instances docs

UPDATE, 리눅스 명령 줄 도구도 필요하지 않습니다. awscliJMESPath (JSON query language)을 사용하여 관심있는 특정 값을 쿼리하는 데 사용할 수있는 --query 옵션을 지원합니다. 이 경우 당신은 할 것 :

$ aws ec2 describe-instances --filters "Name=tag:elasticbeanstalk:environment-name,Values=your-environment-name" --query 'Reservations[].Instances[].PublicIpAddress' --output text

위는 한 줄에 하나씩 일반 IP 주소를 인쇄합니다. (| 그렙 INSERVICE | EB 상태 -v 잘라 -d ":"-f1 | AWK는 '{$ 1 인쇄}')

EC2-설명-경우 $ :

+0

우분투는'jq' 유틸리티를 설치하라고합니다.그러나, 나는 이것을 요구하지 않는 나의 딜레마에 대한 해답을 게시했다. 내가'ec2-describe-instances'를 사용했을지라도'describe-instances'가 갈 방법 이었기 때문에 당신에게 upvote를주었습니다 ... – arod

+0

'jq를 사용하는 것 대신 grep/awk/perl로 할 수 있습니다. '뿐만 아니라 표준 툴킷에 비해 JSON을 사용하는 것이 매우 편리한 도구입니다. –

+0

@arod 외부 도구없이 정말 깨끗한 구문에 대한 업데이트 된 답변을 확인하십시오. –

0

이것은 신속하고 더러운 방법 | grep INSTANCE | awk '{print $ 4}'