글로벌(멀티 리전) 서버 구축 #01 - 크로스 리전 보안 그룹 설정하기

‍이준성·2023년 2월 16일
0
post-thumbnail

기존 mysql 데이터 베이스는 북미 지역에 있었다. 그리고, 새로운 서버는 유럽 지역에 있다. 접근을 위해서라면 mysql 보안그룹 인바운드 규칙에 유럽에 있는 서버를 추가해줘야한다.

기본적으로 같은 리전에 있는 elastic beanstalk에서 db에 접근 가능하게 하려면, 인바운드 규칙에 eb의 보안그룹을 추가해주면 된다.
하지만, 해당 경우에는 서로 다른 리전에 있기에, 해당 방식을 사용할 수 없다.

VPC 피어링이란

따라서, VPC 피어링 기능을 사용해야한다.

vpc 피어링은 서로 다른 vpc 간의 통신을 위한 기능으로 받아들일 수 있다. 피어링된 두 vpc는 서로 동일한 네트워크에 있는 것처럼 생각할 수 있다.

참고로 vpc 피어링은 다른 계정 간 피어링도 지원한다.

VPC 피어링을 위한 사전작업

vpc 피어링에는 제약 조건이 존재한다. 두 vpc 간에는 ip cidr 블럭이 겹쳐서는 안 된다.
따라서, 북미 지역의 db가 위치한 vpc의 ip 범위와 다른 범위를 갖는 vpc를 유럽 리전에 만들어야한다.

편의상 vpc-na를 북미 vpc, vpc-eu를 유럽 vpc
vpc-na의 ip 범위를 172.31.0.0/16
vpc-eu의 ip 범위를 10.1.0.0/16
이라고 하자.

피어링 진행

  1. vpc 중 하나에서 다른 하나에게 피어링 신청을 한다. na에서 eu로 신청했다고 가정하자.

  2. 유럽 리전으로 넘어가서, 신청받은 피어링을 수락한다.

  3. 피어링된 vpc에 대해서, 각 라우팅 테이블에 서로를 추가하고, 인터넷 게이트웨이도 추가하자.
    a. vpc-na의 라우팅 테이블에는, 10.1.0.0/16이 들어가 있어야 하며, 이는 피어링 vpc를 대상으로 해야한다.
    b. vpc-eu의 라우팅 테이블에는, 172.31.0.0/16이 들어가 있어야 하며, 이는 피어링 vpc를 대상으로 해야한다.

  4. 유럽에 있는 서버가 vpc를 통해서 db에 private ip로 접근할 수 있도록, vpc 피어링 설정에서 DNS 설정 허용으로 변경한다.

보안그룹 수정

vpc a에 속한 db 입장에서, vpc b에 속한 ec2의 접근은 vpc b에서의 접근으로 보이게 된다.
따라서, vpc b에 해당하는 ip cidr 블럭을 보안그룹 인바운드 규칙에서 허용하게 되면, 이후에 서버를 만들더라도 정상적으로 접근 가능하게 된다.

0개의 댓글