티스토리 뷰
- 개요
- CloudFront는 AWS의 CDN 서비스임.
- Edge Location(캐시서버) 으로 전송되며 Expire는 24시간임.
- HTTP Header의 Cache-Control을 이용하여 시간 조절 가능
- Invalidation (무효화) 요청으로 캐시된 파일을 삭제 가능.
- 특징
- 동적 컨텐츠 전송을 지원한다 ( Dynamic Content Delivery )
- URL 규칙에 따라 정적 페이지는 캐시, 동적 페이지는 EC2 바로 접속 설정 가능
- Http GET, HEAD, POST, PUT, DELETE, OPTIONS, PATCH 메서드 지원, 특히 POST, PUT, DELETE, OPTIONS, PATHC 메서드는 오리진으로 바로 전달.
- HTTP 쿠키를 지원
- 라이브 스트리밍 프로토콜 지원
- 사용한 만큼만 비용 지불
- 배포 ( Distribution )
- Distribution 은 가장 CloudFront의 가장 작은 단위
- 독립적인 도메인을 가지게 되며 Route53나 별도 DNS를 통해 CNAME 설정으로 연결가능.
- Origin : 원본을 가지고 있는 서버.
- S3 bucket : 가장 기본적인 Origin, S3에 bucket생성 후 저장만 하면 됨.
- EC2 instance : 웹 서버를 구축하면 Origin으로 사용가능.
- ELB : EC2 instance 여러 대의 부하분산 Origin을 사용할 수 있음.
- AWS 이외의 웹 서버 : 웹 서버의 형태만 띠고 있다면, OS, APP의 종류에 상관없이 Origin으로 사용가능.
- S3를 이용하여 Distribution
- Web : 일반적인 웹 서버, RTMP : 동영상 실시간 스트리밍 프로토콜
- Origin Settings
- Origin Domain NAME : Origin의 이름 설정, 지정 가능한 S3 Bucket , ELB가 표기됨
- Origin Path
- Origin ID : Origin Domain Name을 설정하면 자동으로 입력됨.
- Restrict Bucket Access : S3 bucket 에 CloudFront 만 접근할 수 있도록 설정하는 옵션.
- Yes 선택시 : Origin Access Identity : 새로운 식별자 또는 기존 식별자를 설정할 수 있음.
- Comment : 생성할 식별자
- Grant Read Permissions on Bucket : CloudFront가 S3에서 파일을 읽을 수 있는 권한을 버킷의 Bucket Poilicy에 설정 함. Yes는 다른 모든 접속은 제한되고 CloudFront만 접근 가능함.
- Origin Custom Headers
- Default Cache Behavior Settings
- Viewer Protocol Policy : 3가지 옵션 둘다쓰거나 리다이렉트 시키거나 https만 쓰거나.
- Allowed HTTP Methods : 허용 메서드 종류
- Object Caching : Customize가능함 Min,Max Default 등.
- Forward Cookies : Origin의 Cookies를 CloudFront를 통해 사용자에게 전달할지를 선택하는 옵션
- None :전달하지 않음. 캐시 성능이 좀더 향상됨.
- Whitelist : 선별 하여 전달
- Query String Forwarding and Caching : Oringin에서 쿼리 문자열에 따라 파일을 구분해서 보여주고 싶을때 설정. 설정하지 않으면, 성능향상
- Smooth Streaming : Microsoft Smooth Streaming 프로토콜을 사용 여부 ( 실시간 스트리밍 )
- Restrict Viewer Access : 서명된 URL 또는 서명된 쿠키를 사용하여 콘텐츠에 액세스 할지 여부, Signed URL로 CloudFront 사용을 제안하고 싶을때 설정.
- Compress Objects Automatically : 헤더에 gzip이 포함되어 있으면 자동으로 압축을 사용할지 여부
- Distribution Settings
- Price Class : 요금수준, edge location 사용범위를 설정 하는데, 필요 없는 지역을 제외할 때 사용.
- Use Only U.S., Canada and Europe
- Use U.S, Canada, Europe Asia And Africa
- Use All Edge Locations
- Alternate Domain Names : Route 53에서 도메인을 연결하려면 설정 해야됨. 구입한 도메인 입력하는 곳.
- SSLCertificate : SSL사용시
- Default Root Object : 최상위 디릭토리 접근시 기본적으로 보여줄 파일 이름 ( index.html )
- Logging : 로그설정
- Bucket for Logs - 로그를 저장할 S3를 선택
- Log Prefix - S3버킷에 로그를 저장할때 디렉토리명을 설정
- Comment : 메모
- Distribution State : 배포상태
- 커스텀 오리진 사용 - EC2, ELB, 외부 웹 서버를 Origin으로 사용하는 것( 필수적으로 웹 서버가 필요 )
- Node.js를 이용하여 EC2와 CloudFront 연동
- EC2에 웹 서버를 설정한다.
- Elastic IP를 사용한다. = 사용하지 않을 경우 Public 도메인이 변경 되어 정보를 잃을 수 있음.
- Origin Domain name 에 EC2 Public Domain을 입력.
- Step 2 에서 Default Root Object 에 index.html 항목 입력-> 이후 생성
- 외부 서버와 CloudFront 연동
- 웹 서버로 구성되어 있다면 위의 내용과 같음.
- Signed URL 로 CloudFront 콘텐츠 사용 제한.
- Signed URL 은 파일의 사용을 제한하는 기능임.
- 특정 날짜가 지나면 받지 못하게 하거나
- 특정 날짜 이후에 파일을 받게 하거나
- 특정 IP에서만 파일을 받을 수 있도록 설정 할때 이용.
- Canned Policy를 사용한 Signed URL
- 파일 1개의 사용을 제한함.
- 특정 날짜가 지나면 파일을 받지 못하게 하는 기능만 수행.
- Policy의 내용이 URL에 포함되어 있지 않아 URL의 길이가 짧음.
- URL 구조로 = http://domain/index.html?Expires= Signature= Key-Pair-ID=
- Custom Policy를 사용한 Signed URL
- 파일 여러 개의 사용을 제한
- 특정날짜가 지나면 파일을 받지 못하는 기능, 특정 날짜 이후에 파일을 받을 수 있는 기능 사용가능.
- 특정 IP 혹은 특정 IP 대역에서만 파일을 받을 수 있도록 할 수 있음.
- Policy에 URL이 포함되어 있어 URL의 길이가 김.
- URL 구조 = http://domain/index.html?Policy= Signature= Key-Pair-ID=
- 생성
- CloudFront -> Signed URL 만들 Distribution을 클릭 -> Distribution Setting -> Behaviors -> Behavior 클릭-> Edit - > Edit Behavior 항목에서 [ Restrict Viewer Access ( Use Signed URLs OR Signed Cookies )] YES 선택
- Behavior 설정
- Restrict Viewer Access : Signed URL 사용 유무
- Trusted Signers : Signed URL 에서 서명( Signature) 할 계정 설정
- Self : 서명할 AWS 계정. 기본값.
- Specify Account : 서명할 AWS 계정을 추가할 수 있음. 계정 번호를 입력 해야됨.
- 계정 번호 : AWS 콘솔 ( 내 이름 ) -> My Account 페이지에서 확인 가능.
- Key 생성
- 상단 계정에 대한 My Security Credentials -> CloudFront key pairs -> Create New Key Pair
- 공개키와 개인키를 다운받음.
- 개인키 : pk-<엑세스키>.pem
- 공개키 : rsa-<엑세스 키>.pem
- Canned_policy.json 파일 생성
- Resource : CloudFront에서 배포된 도메인
- DataLessThan -> AWS:EpochTime : https://www.epochconverter.com/ UTC로 생성 입력
- [root@ip-172-31-24-57 bin]# cat canned_policy.json |openssl sha1 -sign pk-APK.pem |openssl base64 |tr '+=/' '-_~'
aSUsIeECEw5uIuKjlg8C-oAlAr7Y75y9uBCTC9Ijb~pcG4PaOIACTWUNP0tbjPvK
PoYr8tYJv4oXBGDYkj5PL6rT2UChrniiokJmX~mM9VerghNka0TCEqrzdlmA-iJ2...
- 도메인 + Expires + signature + key-pair-id 로 직접 생성
Ex )
- Invalidation
- Distributions -> Distribution Settings ->Invalidations -> Create Invalidation 에서 예제와 같은 형식으로 지정
'서버 > AWS 이야기' 카테고리의 다른 글
EBS ( Elactic Block Store )에 관하여 (0) | 2019.02.11 |
---|---|
ElasticCache에 관하여 (0) | 2019.02.11 |
ELB 엑세스로그 포맷 (0) | 2019.02.11 |
VPC에 관하여 (0) | 2019.02.11 |
S3에 관하여 (0) | 2019.02.11 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- kubernetes Monitoring
- Cressfit
- kubernetes HA
- ssd health check
- squat clean
- kubespray
- kubespray install
- bar muscle up
- Thruster
- kubernetes 1.10.0 dashboard
- k8s dashboard
- 18point3
- kubernetes dashboard
- prometheus install
- snatch
- 크로스핏 천하
- kubernetes install - kubespray
- ssd linux check
- Dice Game
- crossfit open 18.2
- kubernetes-dashboard
- Kubernetes
- dashboard 권한
- smartmontools
- 크로스핏
- kubernetes install
- k8s prometheus
- zmfhtmvlt
- mysql5.7
- crossfit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
글 보관함