일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 쿠버네티스
- Aurora cluster
- grafana on kubernetes
- headless service
- Solution Architecture
- 그라파나 시각화
- helm
- kubernetes 동작 원리
- 메탈LB
- SAA 합격 후기
- 솔데스크
- EFS CSI Driver
- Prometheus install
- Kubernets on Jenkins
- AWS 딥레이서
- jenkins
- 깃허브 액션
- livenessPorbe
- github action 사용법
- 그라파나 대시보드
- 딥레이서 보상함수
- Firelens
- Kubernetes
- 딥레이서
- EKS 클러스터
- blue-green
- LoadBalancer Controller
- 쿠버네티스 컴포넌트
- 로드밸런서 컨트롤러
- terraform
- Today
- Total
mingming
멀티 리전 & 하이브리드 환경 인프라 구축 본문
실습 개요
멀티리전 환경과 하이브리드 클라우드환경에서 웹서버와 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로 트래픽
이 전송되어 해당 경로로 향하는 트래픽은 전송 게이트웨이로 라우팅 될거라고 생각했지만 실제는 그러지 않았습니다.
웹서버가 동작하는 프라이빗 서브넷에 전송 게이트웨이로 향하는 라우팅 경로를 설정해주니 에러가 해결되었습니다.
'AWS Service' 카테고리의 다른 글
AWS SCT & DMS 이기종 데이터베이스 마이그레이션 (0) | 2024.02.10 |
---|---|
ECS 컨테이너 서비스 인프라 구축 및 Codepipeline 배포 자동화 (0) | 2023.08.21 |
MSA 리팩토링과 클라우드 마이그레이션 (0) | 2023.08.21 |
솔데스크 Deepracer 경진대회 (0) | 2023.08.09 |