AWS

S3를 간단하게 배워보자 2/3

elikim 2021. 3. 1. 00:00

학습 목표

 

1. 버킷을 생성하고 파일을 올린다. 퍼블릭 객체 읽기 권한을 설정한다.

2. 퍼블릭 링크를 복사한 후 AWS 계정이 로그인 되지 않은 환경에서 링크를 열어본다.

3. 버킷에서 버전 관리와 수명 주기 관리를 활성화 한다.

4. 미리 서명된 URL 생성과 사용

5. 버킷에서 정적 웹사이트 호스팅 활성화

6. 데이터의 수명 주기 비용 계산

 

매우 간단한 과제. 바로 시작하면,

 

버킷의 속성에 들어가 "버킷 버전 관리"의 편집을 눌러준 후 활성화로 바꿔준다.

 

test1 파일을 두번 업로드 한다. 내용은 바꿔도 되고 안바꿔도 시간을 기준으로 버전을 나눈다.

 

객체 탭에서 "버전 나열"을 켜주면 버전 관리가 되고 있는 것을 확인 할 수 있다.

 

 이전 버전을 계속 가지고 있는 것은 용량을 효율적으로 관리하기 위해 구 버전의 데이터는 다른 스토리지로 이전을 하거나 영구 삭제를 해준다. 여기서 전환에 필요한 최소 기간은 30일이다. 29일로는 설정할 수 없다.

 

수명주기가 활성화 되었다.

 

미리 생성된 URL을 사용하는 과정이다. 이 부분은 해결하지 못한 문제점을 포함한다. 지나치게 많은 시간을 쏟았고 여전히 해결하지 못해 접근했던 부분까지만 기록하고 추후 완성하기로 한다.

 

 ec2 인스턴스를 통해 s3 버킷에 접근하여 600초 동안 유효한 사전에 인증된 url을 생성하여 test1 파일을 열어보려고 하였다. 하지만 시작부터 뭔가 잘못되었다. 

 

 ec2와 s3가 연동이 안된 것이다.

곧바로 IAM을 통해 EC2와 S3를 연동하는 설정을 해준다.

S3에 대한 모든 접근을 허용해주는 역할을 만들어 놓는다.

 

ec2 콘솔에 들어가 보안에서 "IAM 역할 수정" 에 들어간다.

 

IAM에서 설정한 역할을 불러와서 설정하면 끝난다.

 

aws s3 ls를 통해 내가 사용중인 인스턴스와 연동된 s3 내역을 확인할 수 있다.

잘 나오긴 했는데..

 

 

문제는 내부 환경과 외부환경 모두에서 invalid request 에러가 나온다는 것이다. 이것만 2일째 시도중인데..

 

지금까지 해본 것.

1. s3의 모든 퍼블릭 접근을 허용하기

2. 객체 별 퍼블릭 접근을 허용하기

--> 이 것들로 성공하지도 못했지만 presign은 이미 인증된 사용자로부터 시한을 정해놓고 발급한 url이므로, 퍼블릭 환경에서 되야 한다는 것은 이 명령어의 취지에 어긋난 것이라 생각함.

3. 버킷 정책 만들기

--> 아직 개발언어를 배우지 않은 단계이므로 활용할 수가 없다. 그래도 aws에서 제공하는 support페이지와 블로그 등에서 작성된 커멘드를 그대로 가져와 버킷주소 등 개별적인 부분을 수정하고 사용해 봤는데도 실패했다.

4. IAM에서 모든 권한을 가진 역할로 URL 만들기

--> 이미 S3의 fullaccess로 설정된 역할이 있어 불필요한 시도라고 생각하면서도 굳이 하면서 실패했다..

5. 기도하기

6. 엑세스 지점 설정

--> 어떤 역할을 하는지도 아직 모르겠지만 S3 콘솔에 있어 access point를 설정하고 버킷 정책에 반영해보려고 하였다.

실패.

 

계속 하다보면 언젠간 되겠지.