mingming

멀티 리전 & 하이브리드 환경 인프라 구축 본문

AWS Service

멀티 리전 & 하이브리드 환경 인프라 구축

mingming_96 2023. 8. 9. 03:31

 

 

실습 개요

멀티리전 환경과 하이브리드 클라우드환경에서 웹서버와 DB 연동 

클라우드 포메이션을 통한 Iac 인프라 구축

 

실습 주요 사항

1. 전송 게이트웨이와 CGW VPN 연결 

 

2. 서울리전과 싱가폴리전 전송 게이트웨이 피어링 연결 

 

3. 서울 온프레미스와 싱가폴 온프레미스 데이터베이스 복제설정 

 

4. 프라이빗 호스팅영역 생성 및 웹서버 A 레코드 등록 

 

5. Route53 Inbound Endpoint , Outbount Endpoint 

 

6. GloabalAccelerator를 통한 장애조치 

 

실습 세부 사항

1.  전송 게이트웨이와 site to site vpn 연결, CGW device에 openswan 설치  vpn 터널 설정 

 

전송 게이트웨이와 site to site vpn 연결을 먼저 해줍니다.

 

vpn 연결을 하게 되면 vpn 터널 주소가 생성됩니다.

 

cgw device 에 openswan 패키지를 설치해줍니다.  

yum -y install tcpdump openswan

 

다음 실행파일을 실행시켜 줍니다.

vpnconfig.sh 

#!/bin/sh
printf "CGW 퍼블릭(혹은 탄력적) IP를 입력하세요: "
read word1
printf "VGW의 Tunnel1의 외부 IP를 입력하세요: "
read word2

cat <<EOF> /etc/ipsec.d/aws.conf
conn Tunnel1
  authby=secret
  auto=start
  left=%defaultroute
  leftid="$word1"
  right="$word2"
  type=tunnel
  ikelifetime=8h
  keylife=1h
  phase2alg=aes128-sha1;modp1024
  ike=aes128-sha1;modp1024
  keyingtries=%forever
  keyexchange=ike
  leftsubnet=10.2.0.0/16  # IDC 
  rightsubnet=10.1.0.0/16  # AWS 
  dpddelay=10
  dpdtimeout=30
  dpdaction=restart_by_peer
  overlapip=yes

EOF

cat <<EOF> /etc/ipsec.d/aws.secrets
$word1 $word2 : PSK "interface"
EOF

printf "VPN 서비스를 시작합니다.\n"
systemctl start ipsec
systemctl enable ipsec

printf "VPN 설정이 완료되었습니다.\n"
printf "cat /etc/ipsec.d/aws.conf 명령어로 확인해 보세요.\n"
printf "cat /etc/ipsec.d/aws.secrets 명령어로 확인해 보세요.\n"

leftsubnet : Idc 서브넷 cidr

rightsubnet : vpn 연결할 서브넷 cidr

psk 는 설정한 값으로 변경해주세요

 

터널이 up 된 것을 확인하실 수 있습니다.

 

2. 서울리전과 싱가폴리전 전송 게이트웨이간 피어링 연결

 

전송 게이트웨이 연결생성 type: peering 

 

3. 서울 온프레미스와 싱가폴 온프레미스 데이터베이스 복제설정 

 

데이터베이스는 mariadb를 사용했습니다.

 

my.cnf

# 서울리전 온프레미스 데이터베이스 

# mysql 이진로깅
log-bin=mysql-bin
server_id=1

# 싱가폴리전 데이터베이스
log-bin=mysql-bin
server_id=1

master

show master status;

#해당 명령 후 서울리전의 file Position 값 확인

Slave

슬레이브 복제설정

change master to 
master_host='10.2.1.100',
master_user='repl_user',
master_password='qwe123',
master_log_file='마스터 DB의 파일 정보',
master_log_pos='마스터 DB의 Position 값',
START SLAVE;

슬레이브 복제상태 확인

mysql -uroot -pqwe123 -e "show slave status\G" grep Slave

 

4. 프라이빗 호스팅영역 생성 및 웹서버 A 레코드 등록

 

서울리전과 싱가폴리전에 프라이빗 호스팅 영역 생성 및 웹서버 A 레코드 등록해줍니다.

 

 

5. Route53 Inbound Endpoint , Outbount Endpoint

 

Route53 인바운드 엔드포인트와 아웃바운드 엔드포인트를 생성해 idc 센터와 dns 이름 해결

 

 

6. GloabalAccelerator를 통한 장애조치

 

서울리전의 데이터베이스 및 웹 어플리케이션을 동작 정지 시킨 후 서울리전에서 접속테스트

 

싱가폴리전으로 장애조치 테스트

 

통신 테스트 결과

 

프로젝트 후기

 

서울 idc에서 서울 클라우드 웹서버로 dns 쿼리가 해결이 안되는 에러가 있었습니다.

 

프라이빗 서브넷의 모든 트래픽을 NAT Instance를 통해 라우팅 되도록 테이블을 세팅하였기 때문에 

 

프라이빗 서브넷의 라우팅 테이블에는 전송 게이트웨이 라우팅 경로를 설정해주지 않았던게 에러의 원인이였습니다. 

 

제 짧은 견해로는 프라이빗 서브넷에 전송 게이트웨이로 향하는 라우팅 경로를 지정해주지 않아도 nat instance로 트래픽

 

이 전송되어  해당 경로로 향하는 트래픽은 전송 게이트웨이로 라우팅 될거라고 생각했지만 실제는 그러지 않았습니다. 

 

웹서버가 동작하는 프라이빗 서브넷에 전송 게이트웨이로 향하는 라우팅 경로를 설정해주니 에러가 해결되었습니다.