본문 바로가기

ACC/ACC CNU

[ASC 1기] 5주차 - Storage

[이론]

 

S3: 클라우드가 탑재된 보조기억장치 (like 구글 드라이브)

주로 이미지를 저장할 때 S3를 많이 이용한다. 일반적 데이터는 DB에 저장하지만 이미지를 저장하기에는 적합하지 않음. DB에 이미지의 주소를 저장하고 S3에는 이미지를 넣는 것. (엔드 포인트: 객체 접근 가능 주소)

용량에 대한 제한이 없다고 생각해도 된다. 사용량별로 요금이 나간다.

S3는 리전별로 다른 서비스이지만, 주소는 글로벌 단위로 겹치면 안된다. (세계 유일)

실제로 개발에 사용하는 드라이브라서 파일 저장에 대한 관리 가능. (자주 사용되거나, 자주 쓰지는 않는데 오래 갖고 있어야 하는 것들 등을 자동으로 분리해서 관리해주는 서비스도 있다. (ex. 자주 접근을 안하면 속도가 느린 버킷에 넣거나..))

IAM은 AWS에 대한 권한 관리 Cognito는 Auth를 사용하여 우리 서비스에 대한 권한 관리.

 

https://aws.amazon.com/ko/s3/storage-classes/

 

amplify도 공부해보자.

 


CDN: 

 

CloudFront: AWS에서 제공하는 CDN 서비스

 

웹사이트를 전세계에서 접속할 수 있다. 미국에서 우리 페이지를 들어가기 위해 항상 우리나라 서버에 가는 건 손해니까 그 나라의 CDN에 캐싱하여 비용 및 속도 절감. AWS shield를 통해 보안도 좋음. 

 

엣지 로케이션: 리전과 다르게 관리. 뭐하는 애지?

엣지 네트워크: CDN끼리 빠르게 통신하기 위해.

엣지 컴퓨팅: CloudFront 활용

 


Snowcone, Snowball, Snowfamily, SnowMobile

하드웨어에 데이터를 적재하면 AWS로 옮겨주는 것.

SnowMobile은 트럭급.

 


[실습]

 

S3 등록하기

 

 

S3 - 버킷 - 버킷 만들기로 만들어준다.

 

 

 

일반 구성이다.

버킷 이름을 지정해주고 리전을 지정해준다. 여기서 주의할 점은, 버킷 이름은 리전이 아닌 글로벌 수준에서 중복이 없어야 한다는 것이다. 그럼에도 리전 별로 다른 서비스임을 알아야 한다.

 

 

 

객체 소유권이다.

크게는 ACL 활성으로, 여기서 만약 'ACL 활성화됨'을 선택하면 세부 선택 사항으로 '버킷 소유자 선호'와 '객체 라이터'라는 항목이 등장한다.

'ACL 비활성화됨'이 가장 일반적인 선택으로, 버킷 내에 존재하는 모든 객체들은 내 계정이 소유한다. 또한 정책을 통해 액세스를 지정할 수 있다.

'ACL 활성화됨'를 선택하면 객체의 일부 혹은 전체가 타 AWS 계정에서 소유할 수 있다. 또한 거기서 '버킷 소유자 선호'를 선택하면 객체를 생성할 때 bucket-owner-full-control 삽입 ACL을 지정하는 경우 새 객체는 버킷 소유자가 소유하고 그렇지 않은 경우 객체 라이터가 소유하게 된다. '객체 라이터'를 선택하면 항상 객체 라이터가 소유권을 갖게 된다.

여기서 ACL은 접근 제어 목록을 의미하고, 객체에 접근하기 위해 누가, 무엇을, 어떻게 허가를 받을지 지정하는 목록이다. 간단한 차이점은 ACL을 이용한 액세스를 지정할지, 정책을 통해 액세스를 지정할지의 차이이다. 자세한 설명이 없어서 모르겠지만 아마도 ACL은 객체 단위로 액세스를 지정할 수 있는 것 같고 정책은 버킷 단위로 액세스를 지정할 수 있는 듯 하다.

 

 

 

버킷의 퍼블릭 액세스 차단 설정이다.

아마도 클라우드처럼 파일을 저장하는 용도로 사용한다면 퍼블릭 액세스를 차단하는 것이 올바르겠지만, 나는 정적 웹사이트 호스팅이 목적이기 때문에 모두 퍼블릭으로 열어주었다.

 

 

 

기본 암호화

 

고급 설정은 건드리지 않았다.

 

 

 

 

 

파일을 업로드하기 전에, 버킷의 정책을 생성해야 한다. 위 사진처럼 아직 어떤 정책도 없으므로 파일을 업로드한다면 권한 문제로 읽을 수 없을 것이다. 편집을 눌러보자.

 

 

 

오른쪽의 새 문 추가를 누르면 위 화면처럼 문이 추가된다.

 

 

 

그리고 위와 같이 수정하자. Resource에는 위에서 버킷 ARN을 복사해서 사용하고 마지막에 /*를 추가해주면 된다. 그리고 변경 사항 저장을 눌러서 저장한다.

 

 

 

파일 업로드. 간단하게 만든 정적 웹사이트 코드와 해당 사이트에서 필요로 하는 이미지 파일을 업로드한다.

 

 

https://webking2--bucket.s3.ap-northeast-2.amazonaws.com/test.html

만들어진 도메인으로 들어가면 정상적으로 작동이 된다.

 


CloudFront

 

 


Reference

 

객체 소유권: https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/object-ownership-retrieving.htmlACL: https://ko.wikipedia.org/wiki/%EC%A0%91%EA%B7%BC_%EC%A0%9C%EC%96%B4_%EB%AA%A9%EB%A1%9D

 

정책: https://velog.io/@otterji/AWS-S3-%ED%8D%BC%EB%B8%94%EB%A6%AD-%EB%B2%84%ED%82%B7-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0