다음 단계를 수행했습니다.

  1. VPC 생성(단일 퍼블릭 서브넷 포함)
  2. VPC에 EC2 인스턴스 추가
  3. 탄력적 IP 할당
  4. 탄력적 IP를 인스턴스와 연결했습니다.
  5. 보안 그룹을 생성하여 인스턴스에 할당
  6. 포트 22에서 인바운드 ICMP 에코 및 TCP를 허용하도록 보안 규칙 수정

이 모든 작업을 수행했지만 여전히 인스턴스에 대해 ping 또는 ssh를 수행할 수 없습니다. VPC 비트를 뺀 동일한 단계를 따르면 문제 없이 설정할 수 있습니다. 나는 어떤 단계를 놓치고 있습니까?

answer

VPC 외부에서 통신하려면 기본이 아닌 각 서브넷에 라우팅 테이블과 연결된 인터넷 게이트웨이가 필요합니다(기본 서브넷은 기본적으로 외부 게이트웨이와 라우팅 테이블을 얻음).

VPC에서 퍼블릭 서브넷을 생성한 방식에 따라 추가로 명시적으로 추가해야 할 수도 있습니다. VPC 설정은 시나리오 1 - 단일 퍼블릭 서브넷이 있는 프라이빗 클라우드(VPC) 및 AWS VPC 설명서에서 인터넷통한 통신을 활성화하는 인터넷 게이트웨이와 일치하는 것처럼 들립니다 .

당신은 것입니다 귀하의 VPC에 인터넷 게이트웨이를 추가해야 하고, 공공 서브넷의 라우팅 테이블 내부에 할당0.0.0.0/0 할당 된 인터넷 게이트웨이로 이동 (기본 경로). 설명서 안에 정확한 네트워크 토폴로지에 대한 좋은 그림이 있습니다.

또한 자세한 내용은 VPC Internet Gateway AWS 설명서를 참조하십시오. 불행히도 그것은 약간 지저분하고 명확하지 않습니다.

연결 문제에 대한 자세한 내용은 인스턴스 연결 문제 해결을 참조하십시오 .

이것이 정확히 이 경우인지는 확실하지 않지만 퍼블릭 및 프라이빗 서브넷이 있는 VPC를 방금 생성했고 동일한 보안 그룹 이름과 소스 주소를 가진 기본 보안 그룹이 있음을 확인했습니다. 효과적인 액세스 권한이 없습니다. 이 소스를 Anywhere로 변경해야 했고 작동하기 시작했습니다.

나는 (내 생각에) 인스턴스가 생성되는 가용성 영역에 대해주의해야한다는 것을 알았습니다. 서브넷, 네트워크 인터페이스 및 인스턴스는 동일한 가용성 영역에 있어야합니다. 그렇지 않으면 공용 IP에 연결할 방법이 없습니다. 그 예를 들어.

내가 틀릴 수도 있지만 그렇게 생각하지 않습니다. 이 문제를 파악하는 데 12시간이 소요되었습니다.

이것이 다른 사람을 돕기를 바랍니다.

ENI를 할당하고 이 ENI에 탄력적 IP를 할당해야 합니다. 또한 이 ENI를 VPC에 할당해야 합니다. 외부 패킷을 VPC로 올바르게 전달하려면 라우팅 테이블도 정확해야 합니다.

SSH는 상태 저장 프로토콜이므로 네트워크 ACL에 다음 OUTBOUND 규칙이 있는지 확인해야 합니다.

Rule #  Type            Protocol        Port Range      Destination     Allow / Deny
100     Custom TCP Rule TCP (6)         49152-65535     0.0.0.0/0       ALLOW