develop/AWS
[SAA] Global Infrastructure
hsleeee
2024. 5. 10. 17:26
반응형
SMALL
1. Amazon CloudFront
- Content Delivery Network(CDN) 콘텐츠 전송 네트워크
- 콘텐츠를 서로 다른 엣지 로케이션에 미리 캐싱하여 읽기 성능을 향상시키는 것
- 사용자 경험 향상
- 전세계에 총 216개의 엣지 로케이션(Point of Presence)를 보유하고 있음
- DDos 공격에서 보호받을 수 있으며(콘텐츠가 전세계적으로 분산되어 있기 때문), Shield, AWS 웹 애플리케이션 방화벽과 통합
- Origins
- S3 Bucket
- 파일을 분산하고 엣지에 캐싱하는데 사용
- Origin Access Control(OAC)를 통한 강화된 보안
- OAC는 Origin Access Identity(OAI)를 대체함
- Cloudfront를 통해 버킷에 데이터를 보내는 방법(Ingress)으로 사용될 수 있음
- Custom Origin(HTTP)
- 애플리케이션 로드 밸런서
- EC2 instance
- S3 website(먼저 버킷을 활성화하여 정적 웹사이트로 설정해야 함)
- 원하는 모든 백엔드 HTTP
- CloudFront at a high level
- 전 세계에 퍼져있는 CloudFront의 엣지가 잇고, 여기에 연결할 원본(S3 or HTTP Server)가 있음
- 클라이언트가 연결하여 엣지 로케이션에 HTTP 요청을 보내면 엣지는 해당 콘텐츠가 캐싱되어 있는지 확인함
- 캐싱되어 있지 않은 경우에는 원본으로 가서 요청 결과를 가져오고, 로컬 캐시에 저장하여 다른 클라이언트가 같은 콘텐츠를 같은 엣지에 요청 시에 사용
- CloudFront - S3 as an Origin
- AWS 클라우드의 어떤 리전에 있는 S3 버킷이 원본이고 전 세계에 엣지 로케이션이 있음
- 엣지에 접근하는 사용자는 엣지가 직접 콘텐츠 제공, 내부 AWS망을 통해 S3 버킷 원본을 받아옴
- 이 버킷은 OAS를 통해 보호받으며, S3 버킷 정책에 의해서만 수정 가능
- CloudFront와 엣지 로케이션을 이용해 특정 리전에 속한 S3 버킷을 전세계의 엣지 로케이션으로 분산시킬 수 있음
- CloudFront vs S3 Cross Region Replication
- CloudFront
- Global Edge Network
- 파일은 TTL 동안 캐싱(일반적으로 1 day)
- 전세계적으로 사용 가능한 정적 콘텐츠에 적합
- S3 Cross Region Replication(
- 각 복제를 원하는 리전마다 설정해야 함(Non-Global)
- 파일은 거의 실시간 갱신
- 읽기 전용
- 일부 리전을 대상으로 동적 콘텐츠를 낮은 지연 시간으로 제공할 때 적합
- CloudFront
- Cloudfront - ALB or EC2 as an origin
- ALB
- Public으로 설정되어야 함
- 백앤드의 EC2 인스턴스는 프라이빗 설정을 해도 상관 없음, 로드 밸런서와 인스턴스 간에 가상 프라이빗 네트워크가 설정되어 있기 때문
- 단순히 EC2 인스턴스의 보안 그룹이 로드 밸런서를 허용하게 설정하면 됨
- 사용자는 엣지 로케이션으로 접근하기 때문에 연결이 맺어질 수 있도록 애플리케이션의 공용 IP가 로드 밸런서의 보안 그룹 정책에 허용이 되어 있어야 함
- EC2
- 사용자들이 CloudFront를 통해 접근하길 원함, 사용자들은 CloudFront 엣지 로케이션에 접근할 것이고, 애플리케이션이 EC2 인스턴스에 요청을 보낼 것임. 따라서 이 둘은 모두 Public으로 설정되어야 함
- 그렇지 않으면 CloudFront에서는 가상 프라이빗 클라이언트가 없기 때문에 EC2 인스턴스에 접근할 수 없게 됨
- 엣지 로케이션의 모든 공용 IP가 EC2에 접근할 수 있도록 하는 보안 그룹 역시 설정해주어야 함
- CloudFront의 IP 목록: https://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips
- ALB
- S3 Bucket
- CloudFrornt Geo Restriction
- 사용자의 지역에 따라 배포 객체 접근을 제한할 수 있음
- Allowlist: 사용자가 승인된 국가 목록에 있는 경우에만 콘텐츠에 액세스할 수 있도록 허용
- Blocklist: 사용자가 차단한 국가 목록에 있는 경우에 콘텐츠에 액세스하지 못하도록 차단
- 국가는 Third-party Geo-IP DB를 사용하여 결정
- ex) 저작권 법률을 준수하여 콘텐츠에 대한 액세스 제어
- 사용자의 지역에 따라 배포 객체 접근을 제한할 수 있음
- Pricing
- https://aws.amazon.com/ko/cloudfront/pricing/
- Price Classes
- 비용 절감을 위해 CloudFront를 분산할 엣지 로케이션의 수를 줄일 수 있음
- 세 가지의 가격 등급
- 요금 계층 전체: 모든 지역 - 최상의 성능
- 요금 계층 200: 대부분의 지역, 가장 비싼 리전은 제외
- 요금 계층 100: 가장 저렴한 리전만 사용 가능(북미, 유럽 엣지 로케이션 제공)
- Cache Invalidations
- 백엔드 오리진을 업데이트 할 때, CloudFront는 이 업데이트 사항을 알지 못하며, TTL이 만료된 후에서야 백엔드 오리진으로부터 업데이트된 콘텐츠를 전달받음
- CloudFront Invalidation을 통해 전체 캐시 또는 일부 캐시를 강제로 새로고침하여 TTL을 모두 제거
- 모든 파일(*) 또는 특정 경로(/images/*)를 무효화할 수 있음
2. AWS Global Accelerator
- 전세계 사용자가 직접 액세스하려는 글로벌 애플리케이션을 배포할 경우 애플리케이션은 한 리전에 위치하지만 사용자는 전세계에 걸쳐있어 사용자가 애플리케이션 접근 시 수만은 홉(hops)으로 인해 상당한 지연이 발생할 수 있음, 지연 시간 최소화를 위하여 Global Accelerator 사용
- Unicast IP vs Anicast IP
- Unicast IP: 하나의 서버가 하나의 IP 주소 보유
- Anycast IP: 모든 서버가 동일한 IP 주소를 가지며 클라이언트는 가장 가까운 서버로 라우팅
- AWS Global Accelerator
- 애플리케이션을 라우팅하기 위해 AWS 내부 글로벌 네트워크 활용
- 애플리케이션을 위해 2개의 Anycast IP가 생성됨
- Anycast IP는 사용자와 가장 가까운 엣지 로케이션으로 트래픽을 직접 전송함
- 엣지 로케이션은 훨씬 안정적이고 지연시간이 적은 사설 AWS 네트워크를 거쳐 애플리케이션 로드 밸런서로 트래픽을 전송함
- 탄력적 IP, EC2 Instance, ALB, NLB와 함께 작동하며 퍼블릭일 수도, 프라이빗일 수도 있음
- 안정적인 성능
- 가장 짧은 지연시간과 신속한 리전 장애 극복을 위한 지능형 라우팅
- 클라이언트 캐시와는 문제 X(IP 변경이 없기 때문)
- 내부 AWS 네트워크
- Health Checks
- Global Accelerator가 애플리케이션에 대한 상태 확인 실행
- 애플리케이션을 글로벌하게 만들어줌(헬스체크 실패 시 자동화된 장애 조치가 1분 안에 정상 엔드포인트로 실행됨)
- 재해 복구에 탁월
- 보안
- 단 2개의 외부 IP만 화이트 리스트에 등록하면 됨
- AWS Shield를 통한 DDos 보호 기능 제공
3. AWS Global accelerator vs CloudFront
- 공통점
- 둘 다 글로벌 네트워크를 사용하고 AWS가 생성한 전세계의 엣지 로케이션을 사용함
- AWS Shield와 통합하여 DDos로부터 보호
- CloudFront
- 캐시 가능한 콘텐츠(이미지 및 동영상)의 성능 개선
- API 가속 및 동적 사이트 전달과 같은 동적 콘텐츠에도 적용
- 콘텐츠는 엣지에서 제공
- Global Accelerator
- TCP 또는 UDP를 통해 다양한 애플리케이션의 성능 개선
- 패킷은 엣지 로케이션으로부터 하나 이상의 AWS 리전에서 실행ㅇ되는 애플리케이션으로 프록시, 모든 요청이 애플리케이션 쪽으로 전달, 캐싱 불가
- UDP 기반의 게임, MQTT를 사용하는 IoT, 음성 통화등과 같은 HTTP가 아닌 사용 사례에 적합
- 글로벌하게 고정 IP 주소가 필요한 HTTP 사용 사례에 적합
- 결정적이고 신속한 리전 장애 조치가 필요한 HTTP 사용 사례에 적합
반응형
LIST