생활 코딩을 참고하며 정리한 내용입니다.
Cache : 가장 기본적인 기능
CDN(Content Delivery Network)
CloudFront = Cache Server + CDN
사용자가 웹 사이트에 접속한다. (현재 시간 : 10:27:20)
사용자가 웹 사이트에 다시 접속한다. (현재 시간 : 10:27:55)
➡️ 이를 위한 해결책으로 CloudFront
를 사용하면 매번 빠르게 다시 접속할 수 있다.
CloudFront
를 먼저 만나게 된다.CloudFront
가 사용자의 요청을 받아 웹 서버에 전달한다.CloudFront
에게 전달하여, 사용자에게 전달된다.
🔔 사전 세팅
- 인스턴스를 하나 생성한다.
sudo apt-get update
sudo apt-get install apache2
/var/www/html
에서index.html
삭제 후, 새로 생성 후,sudo mv index.html index.php
php로 변경
sudo apt install php
: php 설치
sudo vim index.php
소스 삽입
- 1초간 잠재운다.
- 서버에 접속할 때마다, 현재 시간이 출력된다.
✔️ CloudFront 생성하기
이후로는 추가할 것이 없기에 배포 생성하기를 클릭한다.
💡 참고
- 아마 배포 생성 후, 바로 활성화 상태가 될 것인데, DNS 주소로 웹 접속할 시 접속이 안될 것이다.
- 2 ~ 3분정도 기다리면 웹사이트 접속이 된다!
성공!
EC2
서버를 띄웠을 때는 시간이 지날 때마다 초가 변경되지만CloudFront
에서는 재접속을 해도 똑같은 시간 결과물이 나온다.1.03s
→ 10ms
)origin
숫자가(시간이) 변경되었지만, Distribution
에는 숫자 및 아무런 변화가 없다.
✔️ 배포 삭제할 때
CloudFront
가 사용 중지 상태가 된다.
기본값 (*)
: 모든 동작 방법을 지정한다.
log
: apahce2 웹 서버(log)는 접속이 들어올 떄마다 xss 로그 텍스트 파일에 접속자에 대한 정보를 저장한다.
tail -f /var/log/apach2/access.log
: 실시간 log
실행
✔️ 현재는?
EC2 주소를 입력하여 웹사이트에 접속했을 때는 Enter를 칠 때마다 로그가 추가된다.
CloudFront에서 만든 도메인 주소를 웹 주소에 입력하여 실행했을 때는, 로그가 추가되지 않는다.
✔️ Cache를 사용해보자!
웹 서버가 웹 클라이언트에게 캐시를 10초동안 진행하라는 것을 알려줘야 한다.
html
의 index.php
에 header("Cache-Control: max-age=10")
을 준다.
Request Headers Cache-Control : max-age=0
: f5(reload버튼)을 클릭했을 때 웹 브라우저가 웹 서버에게 캐시를 쓰지 않을 것이라고 말하는 것이다.
자기 자신에게 가는 링크를 달기
self
를 클릭했을 때, 웹 브라우저가 웹 서버에게 요청하지 않은 상황이 발생하였다.
Cloud Front
에는 링크가 추가되지 않았다.Cloud Front
로 접속해서 f5(reload)
를 눌러보지만, 아무런 변화가 없는 상태이다.Cache
가 살아있기 때문이다. 기본적으로 Cloud Front
는 Cache
를 24시간 저장한다.
✔️ invalidate, 무효화
/index.php
지정
CloudFront
에 이전에 생성한 self
가 추가된 것을 확인할 수 있다.Cache
가 강제로 지워진다.
⚠️ 하지만
- 무효화 생성할 경우, 돈이 발생한다.
- 무효화 대신 다른 전략을 세워야 한다.
캐시 시간을 설정할 수 있다.
수업 화면
현재 aws에서
CDN(Content Delivery Network)
✔️ 속도 차이
생성한다고 요금이 발생하지는 않는다.
* 사용량에 따라 요금이 발생한다.12개월간, 데이터 송신 50GB 무료이다.
읽으면 데이터 크기에 따라 발생하는 요금을 알 수 있다.
실습을 하며, 요금에 대해 감을 익히는 것이 가장 좋다.
💡 참고
도메인 이름을 지정하려면 Route53를 사용하면 된다.
aws cloud front는 http를 제공하는데, AWS Certificate Manager를 사용시 https를 사용하기 위한 인증서를 만들어준다.
Cloud front 관련 동적인 컨텐츠를 제공하는 방법에 대해 알아보면 좋다.
Cloud front는 애플리케이션 상태를 보여주는 통계 기능도 제공한다. (여러 서비스 수 감각에 대해 알게 될 것이다. 특이점을 감지할 수 있을 것이다.)