S3
- s3의 경우, 사용하는 모든 종류의 파일을 저장할 수 있으며 저장된 파일을 hosting해 정적사이트로 만들 수도 있습니다.
- s3의 경우 기본이 글로벌이기 때문에, 따로 리전을 설정하지 않아도 됩니다.
- 버킷안에 모든 파일이 들어간다고 생각을 하면 됩니다.
1. 버킷 만들기
- 버킷을 만들때는 언제나 고유해야하며, 공백이나 대문자가 포함되지 않아야합니다.
- 버킷을 사용할 때 사용하는 리전은 버킷의 위치라고 생각하면 쉽습니다.
- 퍼블릭 엑세스란?
- 버킷에 넣어둔 파일을 누가 가져가 사용할 수 있는지를 설정하는 것입니다.
- 퍼블릭 엑세스를 허용하는 경우 악의적인 공격을 받았을 때 비용이 굉장히 많이 발생할 수 있습니다.
- 보통은 퍼블릭 엑세스를 차단하는 것이 이상적입니다.
- 차단을 한 경우 aws sdk를 통해서 어플리케이션단에서 파일을 엑세스를 할 때 내가 가지고 있는 권한 정보를 s3에 보내고 허락을 받아 다운받습니다.
- 또한, 이 권한설정은 iam(리소스에 대한 엑세스관리)에서 사용자를 추가해 설정이 가능합니다.
- 버킷 버전 관리
- 태그
- 서버측 암호화
- 파일 업로드
- 스토리지 클래스가 중요.
- input, output에 대한 빈도가 다른것에 대해 세팅을 할 수 있습니다.
- s3에 올라온 각각의 파일에 대해서는 객체라는 표현을 사용합니다.
- 객체의 url이 중요합니다.
- 실제로 url을 눌러보면 aceessdenied가 뜹니다.(퍼블릭 에세스를 꺼두었기 때문.)
- 퍼플릭 설정을 통해 변경할 수 있습니다.
2. aws-sdk 설치하기
코드에서 s3를 사용하기 위해서는, aws-sdk
가 필요합니다.
2-1. 설치
2-1-1
- AWS-SAMPLE이라는 폴더를 만들고 폴더 내부에 pem파일을 위치시킵니다.
2-1-2 설치