운영 환경의 DB를 RDS 클러스터로 변경
TODO
1.
기존 EC2 DB 데이터를 RDS DB 인스턴스로 마이그레이션
init.sql 실행 (wrtier에만 넣고, read에는 복제되는지 확인하기)
배포 스크립트에 들어갈 환경 변수에서 db 설정 변경
2.
RDS DB 인스턴스의 읽기 전용 복제본 설정
WAS에서 writer DB에 커넥트 되는지 확인
Transactional 설정 붙이고 DB 로그 확인 (적용 후엔 로그 설정 끄기)
기존 EC2 DB 데이터를 RDS DB 인스턴스로 마이그레이션
접속
•
기존 DB 인스턴스
•
RDS 인스턴스
◦
접속 정보
▪
writer: database-project.cluster-cqsc6pyqhwww.ap-northeast-2.rds.amazonaws.com:3306
▪
reader: database-project.cluster-ro-cqsc6pyqhwww.ap-northeast-2.rds.amazonaws.com:3306
▪
DB 이름: chongdaemarket
▪
계정: chongdaemarket
▪
비밀번호: 비밀
◦
접속 방법
터미널로 들어갈 때
datagrip으로 들어갈 때
•
project bastion EC2 인스턴스
◦
접속 정보
▪
ip: 54.180.137.1
◦
접속 방법
터미널로 들어갈 때
설정
•
데이터베이스 설정 → 바꾸지 않음
◦
character set : utf8mb4 (기본값)
◦
collation : utf8mb4_0900_ai_ci (rds 별도 설정)
•
테이블 생성
쿼리
트랜잭션
WAS에서 RDS 커넥트 확인
결과
read/write db 사용
운영 환경에 로드 밸런서를 적용
TODO
1.
ELB로 분산 처리
WAS 생성 (az-a, az-b)
docker 깔기
github runner 등록하기
스왑 메모리 설정, 타임존 설정
클라우드 워치 설정
클라우드 워치 대시보드 만들기
az-a, az-b에서 각각 writer db, reader-db 통신되는지 확인
ELB에서 az-a, az-b 연결
/health-check api 만들기
spring boot CI/CD 를 변경
ci/cd 스크립트 변경하기
배포 시 prod-a → prod-b 순서로 배포 할 수 있게 변경하기
pr 올려서 제대로 배포가 되었는지 확인
nginx가 죽은 서버 연결안하고 건강한 서버 연결하는지도 배포 과정 중에 확인해보기 (DNS 설정 변경)
1.
ELB와 외부 인터넷 연결
DNS, SSL를 ELB에 적용
DNS 변경
기존 was,nginx 떠있는 인스턴스 제거
2.
성능 확인
인덱스 설정 및 성능 확인
WAS
•
WAS 접속
./ssh/config
•
az-a, az-b에서 각각 writer db, reader-db 통신되는지 확인
# 각 chongdae-prod-a, chongdae-prod-b 에서 테스트
# writer
telnet database-project.cluster-cqsc6pyqhwww.ap-northeast-2.rds.amazonaws.com 3306
# reader
telnet database-project.cluster-ro-cqsc6pyqhwww.ap-northeast-2.rds.amazonaws.com 3306
Bash
복사
•
was에 설정
docker 깔기
sh 실행
github runner 등록하기
코드
권한
/health-check api 만들기
스왑 메모리 설정
코드
타임존 설정
코드
레퍼런스
•
subnet, security group 설정
◦
subnet
▪
LB: project-lb-a, project-lb-b
▪
WAS: project-app-a, project-app-b (project-public-a, project-public-b 사용하지 않음)
◦
security group
▪
LB: project-lb
▪
WAS: project-app (project-public 사용하지 않음)





