본문 바로가기
AWS (Amazon Web Services)

AWS S3 - 속도 이슈 처리를 위한 기술

by 책읽는구리 2022. 2. 27.
반응형

Bucket
- Object type의 데이터를 담는 저장소

버킷은 특정 리전에 존재하며 동일 리전의 사용자들이 데이터에 접근하는 경우는 이슈가 없다.
하지만 사용자가 해당 버킷과 멀어질수록 latency가 증가한다.

 

S3에 데이터를 업로드하는 방법
1. AWS Managemen Console
2. AWS CLI
    Command를 이용
    - cp (Copy), mv (Move), sync (Synchronize)
3. AWS SDKs
    - code를 작성해서 직접 S3 API를 호출
    - 지원 언어 : Python(Boto3), C++, Go, Java, Javascript, .NET, Node.js, PHP, Ruby

 

global user가 S3 데이터를 사용해야 하는 경우? (download)

CloudFront를 사용한다.

CloudFront가 데이터를 전송하는 과정 (출처 : https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowCloudFrontWorks.html)


- 사용자 근처의 Cache Node를 이용하여 빠르게 데이터에 접근할 수 있도록 해줌
- cache node는 optimized path(최적화경로)를 이용하여 서로 연결되어 있기 때문에 데이터 전송이 빠르다.
   "bucket -> CloudFront -> (optimized path) -> cache node -> 사용자"로 데이터가 전송된다.
- 사용자가 요청한 object가 cache node에 없더라도 optimized path를 사용하므로 더 빠르게 데이터에 접근할 수 있다.
 

global user가 S3에 데이터를 보내야 하는 경우? (upload)

Transfer Acceleration 사용한다.
- Bucket 단위로 Transfer Acceleration 기능 적용(enable)
- 기능 적용 시, 전용 endpoint가 생성된다.
   ex) bucketname.s3-acceleration.amazonaws.com (for IPv4)
          bucketname.s3-acceleration.dualstack.amazonaws.com (for IPv6)
- CloudFront의 Edge Location과 optimized path를 이용하여 빠르게 데이터를 S3로 보내준다.

반응형

댓글