본문 바로가기

교육

[AWS] S3, CloudFront

S3

: 높은 데이터 내구성 및 보안을 제공하는 웹 기반 객체 스토리지 서비스

 

 

S3의 데이터 내구성

  • 3개의 가용영역(AZ)에 데이터를 저장(Standard)
  • 99.999999999% 내구성

S3의 보안

  • S3 버킷은 Private 형태로 생성 됨 -별도 설정을 통해 Public으로 운영 가능
  • 버킷 별로 정책 구성하여 권한 범위를 설정

사용 사례

▪ 정적 웹 사이트 호스팅

▪ 정적 리소스 서빙

▪ 파일 서버

▪ 데이터 백업 서버

▪ 민감 데이터 저장용 서버

 

실습

버킷 생성 후 정책 편집 → 퍼블릭 액세스 가능

 

 

정적 웹 사이트 호스팅

버킷 - 속성 - 정적 웹 사이트 호스팅 편집

index.html 파일 업로드 후 확인

 

url 확인 

버킷 - 객체 - url 복사

버킷 - 속성 - 정적 웹 사이트 호스팅에서 url 확인

버킷 - 객체 - url 복사로 s3에 저장된 index.html파일이 잘 뜨는지 확인

 

 

 

S3 API 사용해 파일 Push 테스트 - Postman

Put요청

  • https://edu04-bucket.s3.amazonaws.com/[업로드할 파일명.확장자] 


Authorization - Type - AWS Signature 선택

  • AccessKey, SecretKey, AWS Region, Service Name 입력

Body - binary - 이미지파일 첨부 후 Send로 요청보내기

 

qr.png파일이 s3버킷에 업로드되어있음.

 


CloudFront

: 데이터 캐싱을 통해 사용자에게 데이터를 빠른속도로 전달해주는 CDN 서비스

 

적용 대상: 기간이 정해진 이벤트 페이지(데이터가 변하지 않아서) 

*실시간 서비스 적합 X

 

*비용 높은 순 : ec2 > s3 > CloudFront

 

장점

  • 글로벌 서비스 시에도 빠른 지연 속도.
  • 데이터 전송을 노드 서버에서 수행하기 때문에 원본 서버에 부하가 감소.
  • EC2 서버에서 발생하는 트래픽 비용보다 더 저렴
  • Anti-DDoS 기능 제공

동작 원리

  1. 사용자로부터 데이터 요청
  2. 사용자 근처의 엣지 로케이션에 데이터 여부 확인
  3. 데이터가 없을 시(cache miss) 엣지 로케이션에서 오리진 서버로 데이터 수신(캐싱)
  4. 캐싱된 데이터가 없어서, 원본 서버로 요청
  5. 데이터가 존재할 시(cache hit) 해당 캐싱된 데이터 사용자로 전송

 

실습

수정된 데이터라도 캐시된 데이터만 보여줄 수 있음.

변경이 없는 데이터를 캐시 적용.

 

cloudfront 생성

원본: s3

*CachingOptimized: TTL 설정(캐싱된 데이터를 얼마나 유지할 것인지, 기본 24시간)

 

 

 

 

캐싱된 파일의 헤더 값 / 요청 시간 확인

개발자 도구 - Network - Hearder - X-cache 에서 값 확인

 

Cloudfront가 적용된 이미지 파일

아직 캐시된 파일이 적용되기 전(새로고침 전)

X-Cache : Miss

아직 캐시된 파일이 적용되기 전(새로고침 전) or 캐시 유지 시간이 지나서 Cloudfront가 오리진에 접속하여 파일을 가져왔을 때

 

새로고침 후(캐시 파일 적용됨)

X-Cache : Hit

Cloudfront에서 캐시된 파일을 가져옴.

 

70.2KB jpeg 파일이 캐싱 적용되기 전 시간

: 206.20ms

캐싱 적용 후 → 지연시간 줄어듬

: 113.80ms

'교육' 카테고리의 다른 글

[Ncloud] Onpremise - Ncloud IPSecVPN 연동  (0) 2024.01.17
[Ncloud] IPsec VPN (Ncloud-Oracle cloud(OCI))  (0) 2024.01.15
[AWS] Auto Scaling 실습  (0) 2024.01.08
[NCP_실습] NKS  (0) 2023.12.12
[NCP] 소규모 아키텍처 설계  (1) 2023.12.06