VPC EndPoint란?
먼저 Endpoint란 요청을 보낼 때 필요한 목적지이다. 어떠한 서비스나 리소스로 접근할 때 특정 URL이나 네트워크 주소가 될 수 있다. VPC Endpoint는 Endpoint 유형 중 하나로, VPC Endpoint를 사용하면 VPC 내부 또는 외부에 있는 AWS 서비스들과 통신할 때 인터넷 통신이 되지 않더라도 Private한 통신 환경을 통해 서비스에 접근할 수 있다.
따라서 내가 실습하는 환경에서는 Private노드에 NAT 게이트웨이가 없어 통신이 되지않더라도 프라이빗노드에서 Endpoint를 통해 퍼블릭노드에 있는 s3 버킷에 접근할 수 있다는 가정이다.
VPC Endpoint 종류에는 3가지가 존재한다 Interface Endpoint, Gateway endpoint, Gateway Loadbalancer Endpoint이다.
Gateway Endpoint는 NAT 디바이스가 없어도 VPC에 연결된 라우팅 테이블을 참조하여 Amazon S3 또는 DynamoDB로 전달되는 트래픽에 사용된다. 이것이 지금 실습에 사용하는 Endpoint 이다.
Interface Endpoint는 AWS PrivateLink 기술을 사용하여 구성되며, VPC 내부에 전용 라우팅 테이블이 생성되어, Interface Endpoint를 생성하게 되면 AWS 서비스에 대한 ENI가 일반적으로 한 개 생성되고, 이 ENI는 VPC 내부에서 전용 IP 주소를 사용하여 AWS 서비스와 통신하는 인터페이스이다.
Gateway LoadBalancer Endpoint는 여러 개의 VPC나 계정 사이에서 인터넷 트래픽을
이를 사용하면 다중 VPC, 계정 간 통신이 가능할 뿐만 아니라 security applicances를 제공하는 업체들이 보안 솔루션 관리가 유용해지며, 인터넷에서 유입되는 트래픽들이 보안 어플라이스언스를 거쳐 방화벽, IPS에서 조치 후 실제 서비스로 보내지기 때문에 보안성을 높일 수 있다.
VPC Endpoint의 장점
1) 퍼블릭 인터넷망을 사용하지 않아 해커가 침입할 위치가 공용망 보다 한정된다.
2) 보안그룹과 ACL를 사용하여 허용되지 않은 접근을 제한할 수 있다.
3) AWS PrivateLink를 사용할 수 있으며, 이는 확장성과 보안성을 보장한다.
4) NAT Gateway, VPN, AWS Direct Connet 와 같은 추가적인 비용이 드는 서비스를 사용하지 않아도 되고 인터넷망을 사용하지 않기 때문에 인터넷 연결 비용등 절감할 수 있다.
5) VPC 내의 인스턴스에서 AWS 서비스로 직접 액세스 할 수 있도록 하여 VPC외부가 아닌 내부에서 처리가 되기 때문에 데이터 전송 속도가 빨라지고, 대기 시간이 줄어든다.
VPC Endpoint 실습
다음과 같은 환경을 구축하여 실습한다.
1) EC2 인스턴스 생성
- 이름은 PubNode01으로 앞선 실습처럼 인스턴스를 하나 생성하는데 MyVPC에 PubSub 서브넷에 연결해주고 키페어를 새로 생성해준다. 이 노드에는 퍼블릭 IP를 활성화해준다.
- 이와 똑같이 PriNode01도 만들어준다. 여기서 키페어는 실습 편의상 앞서 만든 키페어를 동일하게 사용한다.
- 이처럼 설정해주고 보안그룹은 앞서 sgSSH로 퍼블릭노드를 만들 때 사용한 보안규칙을 똑같이 사용한다.
2. 다음으로 s3에 .pem파일인 키를 업로드 해준다.
- 먼저 설정을 아무것도 건드리지 않은 버킷을 하나 만들어준다.
- 다음으로 자신이 가지고 있는 퍼블릭 노드의 키페어를 버킷안에 업로드한다 .
- 그런 후에 CLI에 접근하기 위해서 액세스키를 생성한다.
생성이 완료되었으면 cli 창을 켜서 생성해두었던 ec2 퍼블릭노드에 접근한다.
ec2 서버에 연결하고 액세스키와, 비밀액세스키를 통해 접속하여 s3에 접근해서 .pem 파일인 키를 다운로드 받는다.
퍼블릭 노드에서 버킷에있는 키파일을 다운로드 받았으면 프라이빗노드의 아이피로 연결을 한다.
다음과 같은 오류가 발생한다면 파일에 대한 권한 문제이므로 권한을 수정해주면 된다.
그 후 aws configure을 명령어를 수행해 aws s3 ls를 확인해보면 확인할 수 없다.
왜냐하면 해당 서비스의 권한이 있어도 네트워크가 연결이 안되어 있기 때문에 확인할 수 없는 것이다.
그렇기에 VPC 엔드포인트를 생성해야한다.
3. 엔드포인트 생성하기
엔드포인트를 설정할 때, 이름을 다음과 같이 설정하고 aws 서비스에서 s3 유형중 게이트웨이 유형으로 아래 서비스이름에 해당하는 것으로 선택하고 라우팅테이블에 프라이빗 라우팅 테이블을 연결해주고 생성해준다.
다음과 같이 생성이 엔드포인트가 생성이 되는 것을 확인할 수 있다.
엔드포인트가 생성되어 aws 서비스를 연결해주면 NAT 게이트웨이가 존재하지 않은 프라이빗 노드에서 aws s3 ls 명령어를 수행했을 때 앞서 결과가 출력되지 않았던 것과 다르게 결과가 출력 되는 것을 확인할 수 있다.
'클라우드 > AWS' 카테고리의 다른 글
AWS Route 53, Lambda란? (0) | 2024.04.01 |
---|---|
AWS DB, 관계형,비관계형 데이터베이스란? (0) | 2024.04.01 |
로드 밸런서(ELB), 오토 스케일링(ASG) 실습 (0) | 2024.03.29 |
S3, iAM 실습 (0) | 2024.03.28 |
IAM, S3 실습 및 개념 (0) | 2024.03.27 |