두 가지 S3 엔드포인트 유형은 설계 검토에서 서로 바꿔 쓸 수 있어 보이지만 클라이언트가 사이트 밖으로 나가는 순간 전혀 다르게 동작합니다. 게이트웨이 엔드포인트는 VPC 내부의 라우팅 테이블 통합이므로 사이트 VPN에서 온 요청이 프라이빗 목적지로 도달하는 일은 없습니다. 인터페이스 엔드포인트는 프라이빗 주소를 네트워크 인터페이스에 배치하며, 하이브리드 경로가 실제로 도달할 수 있는 대상입니다. 이후의 모든 것은 이 둘 중 무엇을 선택했는지에 달려 있습니다.

서비스 이름이 아니라 네트워크 진입점으로 판단하십시오

트래픽이 시작되는 곳에서 출발하십시오. 엔드포인트 유형이 답하는 질문이 바로 그것입니다. 지원되는 VPC 컨텍스트의 워크로드는 게이트웨이 엔드포인트를 사용할 수 있고 자체 프라이빗 주소가 필요하지 않습니다. 온프레미스 워크로드는 라우팅할 수 있는 프라이빗 주소가 필요하며, 이를 제공하는 것이 인터페이스 엔드포인트이며, 설계가 둘을 혼합하면 두 엔드포인트 유형이 하나의 VPC에서 공존할 수 있고 이는 중복이 아니라 정상적인 구성입니다.

둘을 혼합하는 것이 문제가 아닙니다. 한 유형이 다른 유형을 포괄한다고 가정하는 것이 문제입니다.

무엇이든 선택하기 전에 클라이언트를 분류하십시오. VPC 내부 워크스페이스, NAT 게이트웨이 뒤의 컨테이너, 지사 사무소의 애플리케이션은 서로 다른 세 가지 소스이며 마지막 것만 하이브리드 진입을 강제합니다. 이 분류를 엔드포인트 목록 옆에 적어 다음 검토자가 각 엔드포인트가 존재하는 이유를 볼 수 있게 하십시오.

인터페이스 경로가 처음부터 끝까지 요구하는 것

인터페이스 엔드포인트는 프라이빗 주소에 대한 도달성을 제공하며, 도달성은 네 가지 요구 사항 중 하나일 뿐입니다. 온프레미스 네트워크에는 해당 주소로 가는 경로가, VPC 측에는 반환 경로가, 엔드포인트의 보안 그룹에는 소스 범위 허용이 필요하며, 둘 사이의 모든 검사 장비는 흐름을 허용해야 합니다. VPC의 어떤 인스턴스로 가는 경로도 이 네 가지 중 어느 것도 증명하지 못합니다.

먼 쪽 끝에서 뒤로 작업하십시오. 엔드포인트의 네트워크 인터페이스가 예상한 서브넷에 있는지 확인하고, 그 보안 그룹이 자리 표시자가 아니라 실제 온프레미스 범위를 허용하는지 확인하십시오. 그다음 터널이나 회선이 같은 방향으로 반환 경로를 전달하는지 점검하십시오. 검사는 사람들이 건너뛰는 단계인데, 연결을 허용하는 중간 장비도 더 큰 응답 본문을 떨어뜨릴 수 있고 그것은 정책 문제가 아니라 처리량 문제처럼 보이기 때문입니다.

큰 다운로드 대신 사용 가능한 가장 작은 승인된 작업으로 테스트하십시오. 실패가 더 빨리, 설명할 트래픽도 적게 나타납니다.

DNS는 VPC가 아니라 쿼리 소스를 따릅니다

존재하는 엔드포인트는 그 자체로 아무것도 리디렉션하지 않습니다. 애플리케이션은 리졸버가 반환한 이름을 받고, 리졸버는 볼 수 있도록 허용된 뷰에 따라 응답합니다. VPC 내부의 인스턴스와 사무실의 노트북은 서로 다른 두 질문을 하며 둘 다 올바르지만 다른 답을 얻을 수 있습니다. 하나를 검증하고 다른 하나를 결론짓는 것이 통과한 테스트를 실패한 배포로 만드는 길입니다.

엔드포인트의 프라이빗 DNS 설정을 라이브 후에 켜는 체크박스가 아니라 설계의 일부로 읽으십시오.

사무실 리졸버가 VPC의 뷰를 봐야 한다면 그 경로는 의도적으로 구축해야 하며, 보통 인바운드 리졸버 엔드포인트를 통해 이루어집니다. 애플리케이션 자체의 컨텍스트에서 질의하고 어떤 리졸버가 응답했는지 기록하십시오. VPC 내부의 배스천 호스트에서 수집한 결과는 배스천의 뷰만 설명하고 그 밖의 것은 설명하지 않습니다.

권한은 도달성과 별개입니다

도달 가능한 엔드포인트는 보안 주체가 수행할 권한이 없는 요청에 대해 오류를 반환하며, 그 오류는 시스템이 설계대로 동작하고 있음을 뜻합니다. 자격 증명 정책, 버킷 정책, 엔드포인트 정책은 각자의 계층에서 평가됩니다. 네트워크 액세스가 권한을 부여한 적은 없습니다.

성공하는 무해한 승인 호출과 제외된 자격 증명 또는 버킷에 대한 예상된 거부라는 두 가지 결과로 설계를 수용하십시오.

aws ec2 describe-vpc-endpoints --filters Name=vpc-id,Values=vpc-0123456789abcdef0
dig +short s3.us-west-2.amazonaws.com @10.0.0.2

각 결과 옆에 엔드포인트 이름, 확인된 목적지, 정책 컨텍스트를 기록하십시오. 나중의 DNS 변경 하나로 전체 결론이 무효가 될 수 있습니다. 무엇이든 프로비저닝하기 전에 두 엔드포인트 유형의 현재 비용과 운영 부담을 비교하십시오. 인터페이스 엔드포인트는 하이브리드 프라이빗 진입을 사는 것이며 보편적 요구 사항이 아니고, VPC 내부 워크로드에는 게이트웨이 경로가 더 나은 답으로 남는 경우가 많으며, 선택은 클라이언트별이고 계속 재검토할 수 있습니다.

관련 글