피어링 연결
피어링 연결 (Peering connections)
HashiCorp Cloud Platform(HCP)과 AWS의 가상 사설 클라우드(VPC) 사이에 피어링 연결을 만들어 서비스 간 트래픽을 허용할 수 있어요.
출처: 문서
본문
개요 (Overview)
HCP Vault Dedicated는 피어링 연결을 사용해 AWS 환경에 호스팅된 클라이언트와 통신해요. 피어링 연결은 HCP 포털이나 Terraform의 HCP 프로바이더로 만들 수 있어요. Terraform으로 만드는 방법은 HCP 프로바이더 문서를 참고하세요. 규모가 큰 환경이라면 트랜짓 게이트웨이(transit gateway)를 통해 HCP를 VPC에 연결하는 것을 권장합니다.
요구 사항 (Requirements)
- AWS 계정 ID
- 연결하려는 VPC의 ID
- VPC는 RFC1918 또는 RFC6598 사양의 IP 주소로 구성되어야 해요
- HVN에 연결된 활성 PrivateLink 서비스가 없어야 해요
피어링 연결 만들기
HCP HVN과 AWS VPC 사이의 피어링 연결을 만드는 방식은 자동(automated)과 수동(manual) 두 가지가 있어요.
자동 방식은 AWS 계정에 연결해 CloudFormation 템플릿을 실행해서 피어링 구성을 완료해요. CloudFormation 템플릿이 피어링 요청 생성, 피어링 요청 수락, HVN과 VPC 사이의 필요한 라우트 생성을 모두 처리합니다.
수동 방식은 HCP와 AWS 계정에서 각 단계를 직접 수행해야 해요.
자동 방식 절차:
- 왼쪽 탐색 메뉴에서 HashiCorp Virtual Network를 클릭해요.
- 피어링 연결을 만들 HVN을 선택해요.
- 선택한 HVN 개요 페이지에서 Peering connections를 클릭해요. 사용 가능한 피어링 연결이 있으면 화면 중앙에 나열돼요.
- Create connection을 클릭해요.
- Quick peering with quick-create links 라디오 버튼을 선택해요.
- 피어링 연결을 만들 VPC region을 선택하고 Launch stack creation in AWS CloudFormation을 클릭해요. 새 브라우저 탭/페이지가 열리며, 인증되지 않았다면 AWS 계정에 로그인해요.
- Parameters 섹션에서 HCP HVN과 피어링할 VPC를 선택해요.
- I acknowledge that AWS CloudFormation might create IAM resources 체크박스를 클릭하고 Create stack을 클릭해요.
- 상태가 CREATE_COMPLETE로 바뀔 때까지 진행 상황을 모니터링해요.
- HCP 포털로 돌아와 왼쪽 탐색 메뉴에서 Peering connections를 클릭해요. 새 피어링 연결이 나열되어 있어요.
- 왼쪽 탐색 메뉴에서 Route table을 클릭해요. 자동 프로세스는 피어링 연결 생성·수락 외에도 HCP HVN과 AWS VPC 사이의 트래픽을 허용하는 라우트 생성까지 처리했어요.
참고 (Note): CloudFormation 템플릿이 만든 리소스는 모두 AWS에서 스택을 삭제하면 제거할 수 있어요.
수동 피어링 — AWS CLI로 연결 시작하기 (Initiate peering connection)
- 왼쪽 탐색 메뉴에서 HashiCorp Virtual Network를 클릭해요.
- 피어링 연결을 만들 HVN을 선택해요.
- 선택한 HVN 개요 페이지에서 Peering connections를 클릭해요. 사용 가능한 피어링 연결이 있으면 화면 중앙에 나열돼요.
- Create connection을 클릭해요.
- Manual peering using AWS CLI 라디오 버튼을 선택해요.
- 요청된 정보를 입력하고 Create connection 버튼을 클릭해 피어링 과정을 시작해요.
참고 (Note): AWS Account ID나 VPC ID를 어디서 찾을지 모르겠다면 Where can I find this? 링크를 클릭해 보세요. AWS 콘솔에서 이 정보를 찾을 수 있는 위치와 스크린샷을 제공해 줍니다.
피어링 연결 수락하기 (Accept peering connection)
새로 만든 피어링 연결은 보류(pending) 상태예요. AWS CLI로 연결을 수락할 수 있어요.
- Acceptance instructions 아래의 코드 스니펫을 복사해, 원하는 AWS 계정용으로 구성된 AWS CLI가 있는 터미널에서 실행해요.
예시 출력 (Example output):
{
"VpcPeeringConnection": {
"AccepterVpcInfo": {
"CidrBlock": "172.31.0.0/16",
"CidrBlockSet": [
{
"CidrBlock": "172.31.0.0/16"
}
],
"OwnerId": "734750226488",
"PeeringOptions": {
"AllowDnsResolutionFromRemoteVpc": false,
"AllowEgressFromLocalClassicLinkToRemoteVpc": false,
"AllowEgressFromLocalVpcToRemoteClassicLink": false
},
"VpcId": "vpc-8vgu9gugu9090g",
"Region": "us-west-2"
},
"RequesterVpcInfo": {
"CidrBlock": "172.25.16.0/20",
"CidrBlockSet": [
{
"CidrBlock": "172.25.16.0/20"
}
],
"OwnerId": "676562983947",
"VpcId": "vpc-8vgu9gugu9090g",
"Region": "us-west-2"
},
"Status": {
"Code": "provisioning",
"Message": "Provisioning"
},
"Tags": [],
"VpcPeeringConnectionId": "pcx-uiovg9f79vu"
}
}
- 다음 단계로 진행하기 전에 스테퍼(stepper)가 Configure 단계로 이동할 때까지 기다려요.
보안 그룹 갱신하기 (Update security groups)
대상 VPC의 관련 보안 그룹을 갱신해서 HVN의 CIDR 블록에 대한 인그레스·이그레스를 허용하는 규칙을 추가해요. 이 규칙은 localhost를 통해 클러스터(DNS·API)에 접근하는 애플리케이션에 유효하지만, 여러분의 구성은 다를 수 있어요.
주의 (NOTE): AWS 공식 문서나 HCP 포털 도움말 안내를 참고하세요.
- AWS 콘솔에서 보안 그룹으로 이동해 갱신할 Security group ID를 복사해요.
- HCP 포털로 돌아오면 피어링 워크플로우가 Configure 단계로 이동해 있어요.
- AWS 콘솔에서 복사한 보안 그룹 ID를 AWS security group ID 텍스트박스에 입력해요.
- Outbound rules CLI 명령어를 복사해, 원하는 AWS 계정용으로 구성된 AWS CLI가 있는 터미널에서 실행해요.
AWS 라우트 테이블 갱신하기 (Update AWS route table)
컴퓨트 리소스가 피어링 연결이 가능하게 한 논리적 네트워크 경로를 활용하려면 VPC의 라우팅 테이블에 네트워크 라우트를 추가해야 해요. 라우트 테이블 항목이 컴퓨트 리소스를 HCP 네트워크로 지시합니다. VPC 라우트 테이블에 라우트 항목이 없으면 그 컴퓨트 리소스는 HCP 리소스에 연결할 수 없어요.
- AWS 콘솔로 돌아가 Route tables로 이동해 갱신할 Route table ID를 복사해요.
- HCP 포털로 돌아와 2. Update route table을 클릭해요.
- AWS 콘솔에서 복사한 라우트 테이블 ID를 AWS target VPC route table ID 텍스트박스에 입력해요.
- 코드 스니펫을 복사해, 원하는 AWS 계정용으로 구성된 AWS CLI가 있는 터미널에서 실행해요.
예시 코드 스니펫:
$ aws ec2 --region
us-west-2
create-route --route-table-id
rtb-043ec68d39469bf17
--destination-cidr-block
172.25.16.0/20
--vpc-peering-connection-id
pcx-07504abe35f63e360
수동 피어링 — HCP와 AWS 웹 콘솔로 연결 시작하기 (Initiate peering connection)
- 왼쪽 탐색 메뉴에서 HashiCorp Virtual Network를 클릭해요.
- 피어링 연결을 만들 HVN을 선택해요.
- 선택한 HVN 개요 페이지에서 Peering connections를 클릭해요. 사용 가능한 피어링 연결이 있으면 화면 중앙에 나열돼요.
- Create connection을 클릭해요.
- Manual peering using HCP and AWS web console 라디오 버튼을 선택해요.
참고 (Note): AWS Account ID나 VPC ID를 어디서 찾을지 모르겠다면 Where can I find this? 링크를 클릭해 보세요. 좋은 정보와 스크린샷을 제공해 줍니다.
피어링 연결 수락하기 (Accept the peering connection)
새로 만든 피어링 연결은 보류(pending) 상태예요. AWS 콘솔에서 연결을 수락할 수 있어요.
- Amazon VPC 콘솔을 열고 왼쪽 탐색 메뉴에서 Peering Connections를 선택해요. 목록에 pending acceptance 상태의 항목이 보일 거예요.
참고 (Note): 피어링 연결을 사용할 수 있고 보이게 되기까지 몇 분 걸릴 수 있어요.
- Actions를 클릭한 다음 Accept request를 선택해요.
- 화면에 팝업이 나타나요. VPC와 HCP 사이의 피어링 연결을 확립하려면 연결을 수락해요.
참고 (Note): AWS 피어링 연결에 대한 추가 정보는 AWS 문서에서 찾을 수 있어요.
- HCP 포털로 돌아와 다음 단계로 진행하기 전에 스테퍼가 Configure 단계로 이동할 때까지 기다려요.
보안 그룹 갱신하기 (Update security groups)
대상 VPC의 관련 보안 그룹을 갱신해서 HVN의 CIDR 블록에 대한 인그레스·이그레스를 허용하는 규칙을 추가해요. 이 규칙은 localhost를 통해 클러스터(DNS·API)에 접근하는 애플리케이션에 유효하지만, 여러분의 구성은 다를 수 있어요. VPC에 연결된 보안 그룹을 선택하고 다음 인바운드·아웃바운드 규칙을 추가해요.
주의 (NOTE): AWS 공식 문서나 HCP 포털 도움말 안내도 참고하세요.
HCP Vault Dedicated는 AWS 리소스의 트래픽을 허용하는 아웃바운드(egress) 규칙이 필요해요. 기본적으로 AWS는 보안 그룹의 모든 아웃바운드 트래픽을 허용해요. 하지만 이 규칙을 제거했거나 Terraform으로 AWS 보안 그룹을 관리한다면, Vault 트래픽을 허용하는 규칙을 추가해야 합니다.
Vault를 사용해 워크플로우를 처리하거나 환경의 서비스와 상호작용하려면 인바운드(ingress) 규칙이 필요해요. 예시 워크플로우는 다음을 포함할 수 있지만 여기에 국한되지는 않아요.
- 데이터베이스 자격증명이나 Kubernetes 서비스 어카운트 생성 같은 동적 자격증명(dynamic credential) 워크플로우
- 자체 관리 LDAP 서비스나 여러분이 제어하는 다른 IDP를 활용하는 인가(authorization) 워크플로우
아웃바운드 (Outbound / Egress)
보안 그룹에 적용해야 하는 이그레스 구성은 다음 표와 같아요.
| 프로토콜 | From Port | To Port | 대상(Destination) | 용도(Purpose) |
|---|---|---|---|---|
| TCP | 8200 | 8200 | HVN-CIDR | Vault API |
| TCP | 5696 | 5696 | HVN-CIDR | KMIP |
- AWS VPC 콘솔에서 왼쪽 탐색 메뉴의 Security groups를 선택해요.
- 갱신할 보안 그룹을 클릭하고 Outbound rules 탭을 클릭해요.
- Edit outbound rules를 클릭해요.
- Add rule을 클릭해요.
- Type 드롭다운을 Custom TCP로 설정해요.
- Port range 텍스트박스에 8200을 입력해요.
- Destination 텍스트박스에 HVN의 CIDR 블록을 입력해요.
- Add rule을 다시 클릭해요.
- Type 드롭다운을 Custom TCP로 설정해요.
- Port range 텍스트박스에 5696을 입력해요.
- Destination 텍스트박스에 HVN의 CIDR 블록을 입력해요.
- Save rules를 클릭해요.
AWS 라우트 테이블 갱신하기 (Update AWS route table)
컴퓨트 리소스가 피어링 연결이 가능하게 한 논리적 네트워크 경로를 활용하려면 VPC의 라우팅 테이블에 네트워크 라우트를 추가해야 해요. 라우트 테이블 항목이 컴퓨트 리소스를 HCP 네트워크로 지시합니다. VPC 라우트 테이블에 라우트 항목이 없으면 그 컴퓨트 리소스는 HCP 리소스에 연결할 수 없어요.
- Amazon VPC 콘솔에서 왼쪽 사이드바의 Route Tables를 선택해요. VPC가 여러 개라면 피어링 연결을 확립할 때 사용한 VPC가 선택됐는지 확인해요.
- Actions를 클릭하고 Edit Routes를 선택해요.
- Add route를 클릭해요.
- Destination 텍스트박스에 HVN의 CIDR 블록을 입력해요.
- Target 텍스트박스에
pcx-를 입력하고 HVN용 피어링 연결 ID를 선택해요.
더 알아보기 (Learn more)
- Routes — 피어링 이후 라우트 구성 방법을 살펴보세요.
- Security groups — 보안 그룹 규칙을 자세히 알아보세요.
- Transit gateway attachments — 규모가 큰 환경에 권장되는 트랜짓 게이트웨이 연결을 확인해 보세요.