AWS 멀티 리전 VPC 피어링 기능 추가
2018년 7월부터 서울 리전 지원

멀티 리전 간 VPC 피어링

아마존 웹 서비스에서는 VPCVirtual Private Cloud를 통해 네트워크를 격리하는 기능을 제공하고 있습니다. 사용자는 하나의 계정에서 다수의 VPC를 만들 수 있고 같은 리전 안에서라면 VPC 피어링을 통해 같은 계정이나 다른 계정의 VPC와 연결할 수 있었습니다.* 하지만 리전이 다른 경우 VPC 피어링을 생성할 수 없었습니다. 따라서 퍼블릭 네트워크를 통해서 데이터를 교환하거나 VPN을 직접 구축하는 등 번거로운 작업이 필요했습니다.

* VPC 피어링을 생성하고 VPC 간에 정상적으로 통신이 이루어지면 각 VPC의 CIDR이 충돌해서는 안 됩니다.

2017년 11월 29일 AWS는 re:invent 기간 중에 리전 간 VPC 피어링 지원을 발표합니다. 첫 리전 간 VPC 지원에 포함된 4개의 리전은 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(오레곤), EU(아일랜드)입니다. AWS 블로그에서는 리전 간 네트워크에 대해서 다음과 같이 설명합니다.

서로 다른 두 리전의 VPC 간에 전달되는 데이터는 암호화된 형식으로 AWS 글로벌 네트워크를 통해 전송됩니다. 이 데이터는 최신 알고리즘과 AWS에서 제공한 키를 사용하여 AEAD 방식으로 암호화됩니다. 암호화에 사용되는 키는 자동으로 관리되고 순환됩니다. 모든 피어링 연결의 트래픽을 암호화하는 데에도 동일한 키가 사용되므로, 고객에 관계없이 모든 트래픽은 서로 구분되지 않습니다. 이 같은 익명성은 VPC 간 트래픽이 간헐적으로 발생하는 상황에서 보안을 강화해줍니다.

2018년 2월 20일에는 추가적으로 9개 리전의 리전 간 VPC 피어링 지원을 발표합니다. 추가된 리전은 AWS EU(런던), 미국 서부(캘리포니아 북부), EU(파리), 아시아 태평양(뭄바이), 아시아 태평양(시드니), 아시아 태평양(싱가포르), 아시아 태평양(도쿄), 캐나다(중부) 및 남아메리카(상파울루)입니다. 이 때도 서울 리전은 포함되지 않았습니다.

2018년 7월 19일 서울 리전에서도 VPC 피어링을 지원한다고 공지합니다. 이에 따라서 현재는 서울을 포함한 대부분의 리전에서 리전 간 VPC 피어링을 사용할 수 있게 되었습니다.

44BITS 소식과 클라우드 뉴스를 전해드립니다. 지금 5,000명 이상의 구독자와 함께 하고 있습니다 📮

AWS CLI를 사용해 멀티 리전 간 VPC 피어링 생성

44bits에서는 AWS VPC 피어링:서로 다른 VPC 간에 통신하기에서 VPC 피어링 기능에 대해서 소개한 바 있습니다. 피어링에 대한 기본적인 이해와 사용법이 궁금하시다면 이 글을 참고해주시기 바랍니다. 리전 간 VPC 피어링 기능에 대해서는 AWS 블로그의 AWS 멀티 리전간 VPC 피어링 신규 기능 소개 기사에서 소개하고 있습니다. 여기서는 CLI를 사용해 리전 간 VPC 피어링을 구축하는 방법을 간단히 소개하고자 합니다. AWS CLI 사용방법에 대해서는 AWS 커맨드라인 인터페이스 기초를 참조해주세요.

먼저 각 리전에 VPC를 생성합니다. 명시적으로 명령어 앞에 리전을 붙여두었으며, 출력 결과는 중요한 부분만 남기고 생략하였습니다.

$ AWS_DEFAULT_REGION=ap-northeast-1 aws ec2 create-vpc --cidr-block 10.1.0.0/16
"VpcId": "vpc-00dc6dd8a48620810"

$ AWS_DEFAULT_REGION=ap-northeast-2 aws ec2 create-vpc --cidr-block 10.2.0.0/16
"VpcId": "vpc-0e5019bb52d232b1c"

각 리전의 VPC ID를 확인해둡니다. 같은 계정이므로 피어링 연결이 ap-northeast-1에서 ap-northeast-2 방향이건 그 반대건 큰 상관은 없습니다. 여기서는 ap-northeast-1에서 ap-northeast-2로 피어링 연결을 생성합니다. ap-northeast-1에서 명령어를 실행하며, --peer-region으로 ap-northeast-2를 지정해줍니다.

$ AWS_DEFAULT_REGION=ap-northeast-1 aws ec2 create-vpc-peering-connection \
  --vpc-id vpc-00dc6dd8a48620810 \
  --peer-vpc-id vpc-0e5019bb52d232b1c \
  --peer-region ap-northeast-2
"VpcPeeringConnectionId": "pcx-06230ce416f6fe05a"

VPC 피어링 연결을 요청받은 쪽에서 이를 수락해주어야합니다. ap-northeast-2에서 이 VPC 연결을 수락해줍니다.

$ AWS_DEFAULT_REGION=ap-northeast-2 aws ec2 accept-vpc-peering-connection \
  --vpc-peering-connection-id pcx-06230ce416f6fe05a

마지막으로 VPC 피어링이 정상적으로 작동하고 있는지 describe-vpc-peering-connections 명령어로 확인해봅니다.

$ AWS_DEFAULT_REGION=ap-northeast-1 aws ec2 describe-vpc-peering-connections \
  --filters Name=vpc-peering-connection-id,Values=pcx-06230ce416f6fe05a
{
    "VpcPeeringConnections": [
        {
            "AccepterVpcInfo": {
                "CidrBlock": "10.2.0.0/16",
                "CidrBlockSet": [
                    {
                        "CidrBlock": "10.2.0.0/16"
                    }
                ],
                "OwnerId": "12777216",
                "VpcId": "vpc-0e5019bb52d232b1c",
                "Region": "ap-northeast-2"
            },
            "RequesterVpcInfo": {
                "CidrBlock": "10.1.0.0/16",
                "CidrBlockSet": [
                    {
                        "CidrBlock": "10.1.0.0/16"
                    }
                ],
                "OwnerId": "12666716",
                "VpcId": "vpc-00dc6dd8a48620810",
                "Region": "ap-northeast-1"
            },
            "Status": {
                "Code": "active",
                "Message": "Active"
            },
            "Tags": [],
            "VpcPeeringConnectionId": "pcx-06230ce416f6fe05a"
        }
    ]
}

정상적으로 활성Active 상태인 것을 확인할 수 있습니다. 정말 간단히 서로 다른 리전의 VPC가 연결되었습니다. 🎉

하지만 이 예제에서는 단순히 VPC들을 생성하고 VPC 피어링을 연결했을 뿐입니다. 실제로 사용하기 위해서는 서브셋과 라우트 테이블, 시큐리티 그룹 등 추가적인 설정이 필요합니다. 참고로 같은 리전의 VPC 피어링의 경우 시큐리티 그룹에서 상대 VPC의 시큐리티 그룹을 직접 참조하는 것이 가능하지만, 다른 리전의 VPC 간에는 이 기능을 사용할 수 없습니다.

마지막으로 (더 이상 사용하지 않는다면) 예제를 위해 생성한 VPC와 VPC 피어링을 삭제해줍니다.

$ AWS_DEFAULT_REGION=ap-northeast-1 aws ec2 delete-vpc-peering-connection \
  --vpc-peering-connection-id pcx-06230ce416f6fe05a
$ AWS_DEFAULT_REGION=ap-northeast-1 aws ec2 delete-vpc --vpc-id vpc-00dc6dd8a48620810
$ AWS_DEFAULT_REGION=ap-northeast-2 aws ec2 delete-vpc --vpc-id vpc-0e5019bb52d232b1c
44BITS 로고

아마존 웹 서비스(AWS, Amazon Web Serivce)란?

🏷️ 키워드, 2020-01-20 - 아마존 웹 서비스는 아마존의 자회사로 같은 이름으로 퍼블릭 클라우드 컴퓨팅 서비스를 제공하고 있습니다. 대표적인 서비스로는 컴퓨팅 자원을 제공하는 EC2, 오브젝트 스토리지 S3, 프라이빗 클라우드 VPC, 권한 제어 IAM, 컨테이너 오케스트레이션 ECS, EKS 등이 있습니다.
도움이 되셨나요?
RSS 리더 피들리에서 최신 글을 구독할 수 있습니다.
트위터, 페이스북으로 44BITS의 새소식을 전해드립니다.
✔ 44BITS의 다른 활동도 확인해보세요. 다양한 채널에서 만나볼 수 있습니다.
✔ 따뜻한 댓글 하나와 피드백은 큰 힘이 됩니다.
'도커(Docker) 컨테이너 로케일 설정: 데비안(Debian), 우분투(Ubuntu) 이미지에서 한글 입력 문제' 대표 이미지

도커(Docker) 컨테이너 로케일 설정: 데비안(Debian), 우분투(Ubuntu) 이미지에서 한글 입력 문제

🗒 기사, 2018-07-12 - 도커 우분투, 데비안 이미지에서는 기본적으로 한글 입력을 지원하지 않습니다. 한글을 입력하기 위해서는 로케일 설정을 UTF-8로 지정할 필요가 있습니다. 이 글에서는 로케일 개념과 함께 도커 이미지/컨테이너에서 로케일을 적용하는 방법에 대해서 소개합니다.

AWS 파게이트(Fargate) 가격 30%-50% 인하 발표

🗞 새소식, 2019-01-10 - AWS 파게이트는 AWS ECS 상에서 컨테이너를 인스턴스 없이 실행하는 서비스입니다. 파게이트는 가격이 비싼 편이었는데 대폭적인 가격 인하를 발표했습니다. 서울 리전을 포함해 1월 7일부터 기존 자격 대비 vCPU는 20%, 메모리는 65% 단위 가격을 인하합니다.

싱크띵(Syncthing), 여러 기기간 파일 동기화 애플리케이션: 드롭박스 대신 무료로 가능한 오픈소스 프로젝트

🗒 기사, 2019-09-08 - 싱크띵(Syncthing)은 드롭박스와 같은 여러 기기간에 파일을 동기화하는 애플리케이션입니다. 싱크띵은 오픈소스로 개발되고 있으며 동기화하지 않을 파일 패턴을 지정하지 않을 수 있는 방법을 제공합니다. 이 글에서는 싱크띵의 기본적인 사용법을 소개합니다.