EC2 인스턴스에는 퍼블릭 DNS가 없습니다


299

내가 일하는 사람이 EC2 콘솔에 로그온 할 수있는 EC2 자격 증명을 제공했습니다. 나는 그것을 설정 한 사람이 아니었다. 일부 인스턴스에는 공개 DNS 이름이 표시되고 다른 인스턴스에는 공개 DNS가 비어 있습니다. 빈 퍼블릭 DNS가있는 인스턴스에 연결할 수 있기를 원합니다. 왜 이것이 공백으로 나타나는지 알 수 없었습니다.


2
인스턴스가 VPC 내에 있습니까? 인스턴스 설명 화면에서 VPC ID 필드 옆에 값이 있는지 확인하십시오.
David Levesque

1
나도 같은 문제가있어. 내 인스턴스가 VPC 내부에 있고 서브넷에서 퍼블릭 DNS를 사용할 수 있는지 확인했습니다. 여전히 공개 DNS 이름이 없습니다. 내 VPC 구성에서이라고 말하는 DNS hostnames: no것을 볼 수 있지만 해당 값을 변경할 수 없으며 새 VPC를 추가해도 선택 항목이 제공되지 않습니다.
렌치

설치 때 다른 문제가 내-VPC이 의이 DNS hostname: yes인스턴스가 시작될 때,하지만 그것은 단지 개인 ID입니다. 탄력적 IP를 사용하는 경우에만 공용 IP를 얻을 수 있습니다.
Chetabahana

1
퍼블릭 IP / DNS없이 인스턴스를 중지하고 시작하는 데 도움이 된 것은 도움이되지 않았습니다. 인스턴스가 다시 시작된 후 퍼블릭 IP를 얻었습니다.
justadev

답변:


613

나는 같은 문제를 해결했다. 단계별 지침을 살펴보십시오.

  • console.aws.amazon.com으로 이동
  • 서비스로 이동 -> VPC
  • VPC 열기
  • EC2에 연결된 VPC를 선택 하고
  • 조치 => DNS 호스트 이름 편집 ---> DNS 호스트 이름 변경 :을 예로 선택하십시오.

도움이 되었기를 바랍니다!

건배


6
이것이 가장 좋은 대답입니다. 확인해야합니다!
Alberto Spelta

2
VPC가 포함 된 섹션을 이제 네트워킹이라고합니다. 편집하려면 VPC를 마우스 오른쪽 버튼으로 클릭하십시오.
nasch

89
+1 이제 퍼블릭 IP 자동 할당을 허용하도록 서브넷을 설정해야합니다. 서브넷을 마우스 오른쪽 버튼으로 클릭하고 공개 IP 자동 할당 수정> 확인란을 선택합니다
Adam Hey

1
Elastic Ip를 추가하려고 할 때도 dns 호스트 이름을 변경하는 옵션이 yes로 설정 될 때까지 작동하지 않았습니다.
RenatoSz

5
@Vignesh 기존 인스턴스의 퍼블릭 IP 또는 DNS를 얻지 못했습니다. 중지하고 다시 시작해도 아무런 변화가 없습니다. 작동 한 유일한 것은 인스턴스를 종료하고 다시 작성하는 것입니다.
Y e z

59

실제로 VPC에는 "DNS 호스트 이름"이라는 설정이 있습니다. EC2 인스턴스가있는 VPC를 수정하고 "예"로 변경할 수 있습니다. 그 트릭을해야합니다.

어제이 문제에 부딪 쳤고 작동하지 않는 Manny의 위 답변을 시도했습니다. 상기 VPC 설정, 그러나, 나를 위해 일을.

궁극적으로 나는 EIP를 추가하고 그것을 사용하여 연결합니다.


1
VPC를 전체적으로 수정하지 않고이를 수행 할 수있는 방법이 있습니까? VPC의 한 노드에 퍼블릭 DNS를 원하지만 해당 VPC에 탄력적 IP가있는 다른 모든 노드에 적용하고 싶지는 않습니다.
Robbie Averill

2
해당 노드에 탄력적 IP를 추가 할 수 있어야한다고 생각하십니까?
Mike T

그래,하지만 :-) 대답에 제안없이 내부적으로 해결하지 않을 것이다
로비 에버 릴

"DNS 호스트 이름"을 사용하여 난 공공 DNS 볼 수 있어요
인 Sujit Dhamale

38

인스턴스가 VPC에서 시작된 것처럼 들리고 그렇게하는 동안 확인란 Automatically assign a public IP address to your instances이 선택되지 않았습니다. 따라서 인스턴스에 퍼블릭 IP가 없습니다

이 인스턴스에 탄력적 IP를 할당 한 다음 해당 IP를 사용하여 로그인 할 수 있습니다.


1
퍼티로 공개 IP를 사용하여 연결을 시도했습니다. 그러나 "서버가 키를 거부했습니다"라고 말했습니다. puttygen을 사용하여 .pem 파일을 .ppk 파일로 변환
user1456508

1
어떤 사용자 이름을 사용하고 있습니까? 이것은 어느 AMI입니까? 이것은 어떤 운영 체제입니까?
slayedbylucifer

3
사실 후에 공개 IP를 할당하는 방법이 있습니까? 인스턴스 세부 사항 설정을 편집 할 수있는 방법이 없습니다.
David Balažic

2
@slayedbylucifer 중지 된 인스턴스는 어떻습니까?
David Balažic

3
@ DavidBalažic, 동일합니다. 인스턴스 수명주기 동안 펍 IP를 연결할 수 없습니다. Pub IP는 시작시에만 연결할 수 있습니다.
slayedbylucifer

30

내 경우에는 slayedbylucifer 와 같은 것을 가리키는 다른 사람들 의 대답 이 유효하다는 것을 알았습니다 . my-pvc 에 공용 IP가 할당되지 않은
것으로 설정되어 있습니다 (Privat IP 만 해당). DNS hostname: yes

반드시 자동 할당 퍼블릭 IP 를 설정해야 Enable합니다.
선택하지 않으면 기본적으로Use subnet setting (Disable)

퍼블릭 IP 할당


23
  1. AWS Console로 이동하십시오.
  2. 서비스로 이동하여 VPC를 선택하십시오.
  3. vpc를 클릭하십시오.
  4. 인스턴스를 선택하고 조치를 클릭하십시오.
  5. DNS 호스트 이름 편집을 선택하고 예를 클릭하십시오.

결국 당신은 당신의 공공 DNS를 얻을 것입니다.


할당 된 탄력적 IP와 함께 퍼블릭 DNS를 VPC에 추가합니다. 어떤 이유로 든 보안 그룹을 통해 외부에서 탄력적 IP를 핑 (ping) 할 수 있지만 공개 DNS가 할당되지 않은 한 Solr과 같은 웹 앱을 실행하는 데 실패했습니다.
false_memories

22

다음은 작동하지 않는 문제를 해결하기 위해 제공되는 팁입니다.

팁-인스턴스에 퍼블릭 DNS 이름이없는 경우 VPC 콘솔을 열고 VPC를 선택한 다음 요약 탭을 확인하십시오. DNS 확인 또는 DNS 호스트 이름이 아니요 인 경우 편집을 클릭하고 값을 예로 변경하십시오.

이 작업을 수행했지만 여전히 공용 IP를 얻지 못한다고 가정하면 VPC 관리 화면에서 해당 서브넷으로 이동하면 "공용 IP 자동 할당"이 예로 설정되지 않은 것입니다. 그런 다음 해당 설정을 수정하면이 서브넷에서 원하지 않는 것을 알고 해당 서브넷에 새 인스턴스를 만듭니다. 내가 호스트에서 이것을 수정할 수 없다는 것을 알 수있는 한, 시도하고 시도했습니다. 종료하십시오.



14

"DNS 호스트 이름"이라는 VPC 기능과 관련이 있습니다. 활성화 또는 비활성화 할 수 있습니다. VPC로 이동하여 작업 메뉴에서 "DNS 호스트 이름 편집"항목을 선택한 다음 "예"를 선택하십시오. 그런 다음 EC2 인스턴스의 퍼블릭 DNS가 표시되어야합니다.


사용자 정의 이름을 사용할 수 있습니까? 내 인스턴스에서 이메일을 보낼 때 사촌, Gmail은 쇼 ... ec2..ip 주소로 location..etc 대신 내 도메인 이름 우송
MR ID를

@mrid는 DNS를 생성 된 EC2의 DNS와 연결해야합니다. 호스팅 / DNS 관리자 인 AWS Route53 서비스로이를 수행 할 수 있습니다.
Lior Kirshner

10

다른 인스턴스를 시작하고 문제가없는 인스턴스를 삭제하면 이번에는 "인스턴스에 퍼블릭 IP 주소 자동 할당"을 선택하십시오. 만약 그렇지 않다면 루시퍼가 제안한대로; 인스턴스에 탄력적 IP (EIP)를 할당 한 다음 해당 IP를 사용하여 로그인하십시오. 무료 AWS 티어를 실행하는 경우 EIP에 비용이 발생합니다. 이는 '다른 주제'입니다.


6

우선, 두 가지 이유가 있습니다.

  1. 자체 VPC를 생성하고 퍼블릭 DNS를 활성화하는 것을 잊었습니다.

이것을 해결하려면 :

i) AWS VPC 콘솔로 이동하여 생성 한 VPC를 선택하십시오.

ii) 그런 다음 작업을 클릭 한 다음 DNS 확인을 활성화하십시오.

            OR
  1. EC2 구성에서 공용 ip-assign 옵션을 활성화하지 않았습니다.

여기에서 설정을 변경할 수 없습니다. ami 이미지를 생성 한 다음 그 인스턴스를 다시 생성하십시오.


이것들은 많은 가능한 원인 중 두 가지이며, 확실히 유일한 두 가지 가능성은 아닙니다.
Madbreaks

6

다음은 가장 일반적인 문제를 요약 한 것입니다.

사용자 지정 VPC를 생성 할 때 인터넷과 통신 할 수 있도록 ec2 인스턴스와 같은 AWS 리소스가 퍼블릭 IP 주소를 획득하도록하려면 먼저 ec2 인스턴스가 사용자 지정 VPC의 퍼블릭 서브넷과 연결되어 있는지 확인해야합니다. 이는 서브넷에 인터넷 게이트웨이가 연결되어 있음을 의미합니다. 또한 ec2 인스턴스와 연결된 VPC의 보안 그룹에 ssh, http 및 https와 같은 원하는 포트로의 인바운드 트래픽을 허용하는 규칙이 있는지 확인해야합니다. 그러나 여전히 발생하는 몇 가지 일반적인 감독이 있습니다.

1) VPC에 대해 DNS 호스트 이름이 활성화되어 있는지 확인해야합니다

2) EC2 인스턴스에 연결된 퍼블릭 서브넷에 '퍼블릭 ip 자동 할당'플래그가 활성화되어 있는지 확인해야합니다.

3) 인스턴스가 이미 작성된 경우 인스턴스를 종료하고 퍼블릭 IP 및 퍼블릭 DNS 필드를 채울 새 인스턴스를 작성해야합니다.


시작된 인스턴스에서이 퍼블릭 IP가 표시되면이 IP를 사용하여 퍼티 SSH를 통해 인스턴스를 연결할 수 있습니다
rinilnath

5

VPC 및 서브넷 설정을 확인한 후에도 EC2 인스턴스에 퍼블릭 DNS가 없었습니다. 하루 동안 해결책을 찾은 후에 마침내 알아 냈습니다.

새 탄력적 IP 주소를 생성 한 다음이를 인스턴스에 연결해야했습니다.

EC2 대시 보드에서 :

사이드 바에서 탄력적 IP 로 이동 하십시오.

새 주소 할당을 클릭 한 다음 할당 .

EC2 대시 보드로 돌아갑니다. 네트워크 인터페이스로 이동 .

퍼블릭 DNS가없는 EC2 인스턴스를 선택하십시오. 그런 다음 조치-준회원 주소 .

주소 필드에 새 탄성 IP 주소를 선택합니다.

사설 IP 주소로 준 필드는, 아니 공용 DNS와 사설 IP 주소를 선택합니다.

담당자 주소를 클릭하십시오. .

EC2 인스턴스에는 이제 퍼블릭 DNS가 있어야합니다.


1
이것이 저에게 답이었습니다. 내 VPC는 ​​이미 퍼블릭 DNS를 사용하도록 설정되었습니다.
melicent

퍼블릭 DNS가 표시되었지만 여전히 scp / putty를 통해 연결할 수 없습니다. 연결 시간이 초과되었습니다!
ShivarajRH

2

AWS CLI를 사용하여 DNS 호스트 이름 설정을 변경할 수도 있습니다.

aws ec2 modify-vpc-attribute --vpc-id $vpc_id --enable-dns-hostnames '{"Value": true}'

(여기서 $ vpc_id는 인스턴스가 연결된 VPC의 ID입니다.)

VPC가 업데이트 되 자마자 인스턴스는 퍼블릭 DNS를 얻게됩니다.


2

CloudFormation을 사용하는 사용자의 경우 주요 특성은 EnableDnsSupportEnableDnsHostnames 이며 true로 설정해야합니다.

VPC: {
    Type: 'AWS::EC2::VPC',
    Properties: {
      CidrBlock: '10.0.0.0/16',
      EnableDnsSupport: true,
      EnableDnsHostnames: true,
      InstanceTenancy: 'default',
      Tags: [
        {
          Key: 'env',
          Value: 'dev'
        }]
    }
  }

유용한 답변, 감사합니다. 참고로 EnableDnsSupport의 기본값은 true이므로 일반적으로 EnableDnsHostnames를 나타내는 것으로 충분합니다. true.
jarmod

1

인스턴스가 VPC에있는 경우 "DNS 확인"및 "DNS 호스트 이름"이 모두 "예"로 설정되어 있는지 확인하십시오. Aws 콘솔 UI에서이 작업을 수행 할 수 있습니다. HTH!


1

VPC 콘솔로 이동하여 VPC를 선택하고 작업 메뉴를 클릭하고 DNS 호스트 이름 편집을 선택한 후 예를 선택하십시오. 해결해야합니다.



0

EC2가 시작되고 실행되면 '퍼블릭 DNS 없음'을 수정하려고했지만 퍼블릭 DNS를 추가 할 수 없었습니다.

이것은 VPC 또는 서브넷을 수정하는 위의 단계를 따른 후에도 가능합니다.

따라서 다른 인스턴스를 시작하기 전에 서브넷과 vpc를 수정하고 새로운 인스턴스를 시작해야했습니다.

새 인스턴스에는 퍼블릭 DNS가있었습니다. 그것이 나를 위해 일한 방법입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.