CDN으로 서비스 웹서버 오프로딩
Virtual Machine 기반 웹 애플리케이션의 정적 데이터 제공을 위해 CDN 서비스를 이용하여 오프로딩합니다.
- 예상 소요 시간: 60분
- 사용자 환경
- 권장 운영 체제: MacOS, Ubuntu
- Region: kr-central-2
- 참고 문서
사전 준비
이 실습을 진행하기 위해서는 액세스 키와 VM 접근용 키 페어 확인이 필요합니다.
Step 1. Bastion 호스트 설정
Load Balancer와 MySQL를 사용한 Virtual Machine 기반의 웹 애플리케이션를 배포합니다. 이를 위해 외부에서 접근할 수 있는 Bastion 호스트를 설정합니다.
-
카카오클라우드 콘솔 > Beyond Compute Service > Virtual Machine에서 아 래 표의 Bastion 인스턴스를 생성합니다.
인스턴스 이름 handson-bastion 개수 1 인스턴스 유형 m2a.large 이미지 Ubuntu 20.04 볼륨 크기 10 서브넷 public 퍼블릭 IP 연결 -
Beyond Networking Service > VPC 메뉴에서 보안을 선택합니다. 외부에서 Bastion 인스턴스에 접속할 수 있도록 보안 그룹과 인바운드 규칙을 설정합니다.
인바운드 규칙 프로토콜 패킷 출발지(Source) 포트 번호 bastion inbound policy 1 TCP 0.0.0.0/0 10000-10010 bastion inbound policy 2 TCP 0.0.0.0/0 81 bastion ssh policy TCP 0.0.0.0/0 22 -
Bastion 호스트에 퍼블릭 IP를 연결한 뒤, 로컬 환경에서 터미널 실행 후 다음 명령어를 실행하여 SSH 접근합니다.
ssh -i ${PRIVATE_KEY}.pem ubuntu@${BASTION_PUBLIC_IP}
-
nginx-proxy-manager
를 사용하여 Bastion을 구성합니다.ssh
로 인스턴스에 접속하여 아래 명령어를 실행하여 프로비저닝 합니다.sudo curl -o /tmp/init-bastion.sh https://raw.githubusercontent.com/kakaoenterprise/kc-handson-config/vm-3tier/init-bastion.sh
bash /tmp/init-bastion.sh -
앞 작업을 통해
nginx-proxy-manager
가 실행되었습니다. 사용자 로컬 환경에서 브라우저를 실행하여 아래 주소를 입력하면 관리 페이지에 접속할 수 있습니다.http://${BASTION_PUBLIC_IP}:81/login
# ID : admin@example.com
# 비밀번호 : changeme
Step 2. 관리형 MySQL 데이터베이스 생성
카카오클라우드의 MySQL은 완전 관리형 데이터베이스 서비스로, VPC(Virtual Private Cloud) 환경에서 제공됩니다. 이 서비스를 사용하면 복잡한 설치 과정 없이 콘솔에서 쉽게 MySQL 인스턴스를 프로비저닝할 수 있고, 논리적으로 분리된 네트워크에서 안전하게 사용할 수 있습니다.
카카오클라우드 콘솔 > MySQL에서 [인스턴스 그룹 만들기]를 클릭하고, 필요한 MySQL 인스턴스 그룹을 생성합니다.
생성할 DB 목록
Type | MySQL |
---|---|
Instance Group Name | handson-mysql |
MySQL User Name | admin |
MySQL Password | root1234 |
Quantity | 1 |
Flavor | m2a.large |
Volume | 100 |