'CloudFront'에 해당하는 글 2건

AWS https 세팅

Server/AWS 2021. 11. 22. 21:43

ssl-check

 

매번 인프라가 다 해주다보니 ACM 인증서 발급도 한번 못해봤는데, 공짜인줄은 몰랐네;

 

https 통신은 ssl 보안 서버 인증서가 필요하다. ssl 인증서는 한국정보인증을 비롯한 많은 곳에서 구매가 가능한데 AWS Certificate Manager(ACM) 에서는 이 비싼(?) ssl 인증서를 무료로 제공한다. ALB, Cloud Front, API Gateway, ... 등에서 이 인증서를 사용할 수 있으며 따로 설치가 필요없다.

 

예를 들면, Cloud Front 에 S3 와 ssl 인증서를 연결하고 특정 도메인을 Cloud Front 에 연결하는 단계는 다음과 같다.

 

S3 - 특정 버킷의 특정 디렉토리에 리소스 업로드
ACM - 특정 도메인의 인증서 생성
Cloud Front - 배포 생성하여 S3 와 ACM 연결
Route 53 - 레코드 생성하여 Cloud Front 연결

 

 

1. Route 53 DNS 설정

 

AWS 에서 도메인을 관리하기 위해서는 Rourte 53 에 호스팅 영역을 추가하고, 레코드를 생성한다. 외부 도메인일 경우 도메인 구매한 곳(가비아나 카페24 같은?) 에서 네임서버를 해당 NS 값으로 변경해 준다. 아래와 유사한...

 

  • ns-94.awsdns-12.com.
  • ns-1975.awsdns-56.co.uk.
  • ns-1181.awsdns-18.org.
  • ns-743.awsdns-28.net.

 

 

2. ACM 인증서 요청

 

인증서는 반드시 미국 동부(버지니아 북부) 리전(us-east-1)에서 요청해야 하며, 그렇지 않으면 Cloud Front 에서 해당 인증서를 선택할 수 없다. 인증서 요청시, 사용하려는 여러 도메인을 등록해도 되고 아래처럼 모든 2차 도메인 처리(*)와 2차 도메인이 없는 두가지 경우를 등록해도 된다.

 

  • example.com
  • *.example.com

 

해당 도메인에 대해 DNS 검증을 하며, Route 53 에 해당 레코드가 작성되어 있지 않다면 인증서 요청시 생성된 CNAME 으로 레코드 생성이 가능하다.

 

약 1분 내로 인증서 상태가 [검증 대기 중] 에서 [발급됨] 으로 변경되며, 이제 *.example.com 도메인에 대해 https 통신을 할 수 있다. 검증이 30분에서 이틀까지 걸렸다는 글들도 있던데 난 모르겠고...

 

 

3. Cloud Front 배포 생성

 

  • 원본 도메인(S3) 및 경로 설정
  • 대체 도메인 이름(CNAME) 추가: example.com, www.example.com, ...
  • SSL 인증서 선택
  • 프로토콜 정책: Redirect HTTP to HTTPS (HTTP 시도시 HTTPS 로 연결)
  • 기본값 루트 객체: index.html (default 파일)

 

 

4. Route 53 도메인 연결 (별칭-alias)

 

  • example.com (A) www.example.com.
  • www.example.com (A) d1asdfqwerasdf.cloudfront.net.

 

여기까지 설정했다면 example.com 도메인으로 접속했을 때 https://example.com 으로 연결되며 cloudfront 를 통해 s3 리소스를 확인할 수 있어야 한다. (Response Header 에서 cloudfront 확인) 

 

403 forbidden error 등이 발생한다면, S3 버킷 정책을 public access 가 가능하도록 설정한다.

 

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

CloudFront

Server/AWS 2019. 8. 20. 18:43



CloudFront 는 .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 AWS 의 CDN 서비스이다. 전 세계 주요지역에 CloudFront POP(엣지 로케이션) 이 위치하고 있어 해당 캐시 서버에서 오리진(EC2 인스턴스나 ELB, S3 버킷 등) 의 파일을 받아 클라이언트에게 빠르게 응답하는 기능을 한다. 캐시 서버는 오리진(origin)으로부터 파일을 캐시하고 나면 해당 파일이 수정되기 전까지는 오리진에 연결하지 않고 빠르게 클라이언트에 응답할 수 있다. 


CloudFront 는 이미지나 동영상 등의 리소스가 보관된 S3 를 오리진으로 설정하는 것이 일반적이며, 운영시 꼭 필요한 서비스 중 하나이다.



CloudFront 의 설정/배포 방법


  1. CloudFront 에 캐시할 오리진(예제에서는 S3 사용) 의 주소(test.s3.amazonaws.com) 메모.
  2. 콘솔의 CloudFront 에서 [Create Distribution] 으로 배포 설정.
  3. Origin Domain Name 의 S3/ELB 목록에서 캐시할 오리진을 선택하고 Alternate Domain Names(CNAMEs) 에 원하는 CloudFront 도메인 설정.
  4. 나머지 설정은 버킷 접근 권한/정책, https, SSL 설정 정도... 이렇게 세팅하고 배포 생성하기를 시작하면 수분안에 각 캐시 서버에 오리진이 배포된다.


CloudFront 배포 도메인은 http://aabbccdd112233.cloudfront.net 형식이며 설정한 CNAME 으로 대체할 수 있다. 브라우저에서 해당 리소스의 헤더에서 X-Cache: Hit from cloudfront 가 확인되면 정상적으로 캐시되고 있는 것이다. 캐시 유지 시간이 지나서 CloudFront가 오리진에 접속하여 파일을 가져왔을 때에는 Miss from cloudfront 라고 표시된다.



캐시 삭제


캐시 파일은 기본적으로 24시간 동안 유효하며, 특정 파일을 즉시 갱신해야 할 경우 콘솔 등에서 무효화(Invalidation) 요청을 통해 캐시된 파일을 삭제시킬 수 있다.




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,