[AWS Basic] CloudFront CDN(Contents Delivery Network) 서비스설정
목표 구성
사용자 PC 에서 버지니아 북부 EC2 의 오리진 서버 직접 접속 및 지연시간 테스트
CloudFront 를 통한 CDN 서비스 설정 후 접속 및 지연시간 테스트 비교
1. VPC 생성
리전 : 버지니아 북부 선택
이름 : US-VPC , IPv4 : 10.0.0.0/16
DNS 호스트 이름 활성화 체크
2. 서브넷 생성
이름 : US-Public-SN-1 , IPv4 : 10.0.0.0/24 , AZ: us-east-1(버지니아 북부)
3. 라우팅테이블 생성 및 서브넷 연결
이름 : US-Public-RT , 서브넷 연결 : US-Public-SN-1 , 라우팅 : 0.0.0.0->US-VPC-IGW 추가
4. 인터넷 게이트웨이 생성 및 VPC 연결
이름 : US-VPC-IGW , VPC 연결 : US-VPC
5. EC2 인스턴스 생성
이름 : US-EC2 , 연결 : US-Public-SN-1 , HTTP 구성
보안그룹 : HTTP , 0.0.0.0/0 접속 허용 추가
6. HTTP 서비스 설치 및 기동
sudo su -
yum install httpd -y
systemctl start httpd #http 서비스 시작
systemctl status httpd #서비스 상태확인
echo "<h1>us-ec2 test page 1</h1>" > /var/www/html/index.html
curl localhost
7. route 53 ec2 인스턴스 A레코드 등록
단순 라우팅-> 단순 레코드 정의
레코드 이름 : 빈칸 , 레코드 유형 : A 레코드 선택, 값/트래픽 라우팅 대상 : 레코드유형에 따라 IP주소 또는 다른값 선택(EC2 인스턴스 Public ip 추가)
8. 페이지 접속 확인 및 지연시간 확인
평균 지연시간 : 240ms 정도이며, 평상시 느리다고 체감할 정도의 속도는 아니다.
상파울로 리전에서 ec2생성을 했을시 지연시간은 더 발생 할수 있을 것이다.
9. CloudFront 설정
원본 도메인 : US-EC2 인스턴스의 도메인(ec2-44-193-X-X.compute-1.amazonaws.com)
기본 캐시 동작 : default 설정값 유지
설정 -> 가격분류 : 모든 엣지 로케이션 사용(최고의 성능)
대체 도메인 이름 : cdn.travellife.site
사용자 정의 ssl 인증서 : *.travellife.site 선택
기본값 루트 객체 : /index.html
10. route 53 레코드 등록
레코드 이름 : cdn , 레코드 유형 : A , 값/트래픽 라우팅 대상 : CloudFront 배포에 대한 별칭
11. 웹 접속 및 지연시간 테스트
최초 cdn.travellief.site 접속 시 오리진서버의 컨텐트 요청 및 응답
그후 Distribution 의 엣지로케이션으로 배포하여 동기화
오리진서버 직접 접속시 평균 지연시간 : 240ms , Distribution 의 엣지 로케이션 접속시 평균 지연시간 : 13ms
X-Cache 의 필드값이 hit from cloudfront 로 콘텐츠 응답을 엣지 로케이션이 응답을 주었다는 의미
12. 자원삭제
Cloudfront 배포 비활성화 ->삭제-> 레코드 삭제->EC2 인스턴스 삭제->VPC 삭제