이번 포스팅에는 AWS Amazon S3에 이미지를 업로드하는 기능을 구현하려고 합니다 !
S3(Simple Storage Service)는 AWS에서 제공하는 객체 스토리지 서비스입니다.
Scalable Storage
데이터 보안
내구성 및 가용성
웹 인터페이스를 통합 관리
다양한 데이터 전송 옵션
S3는 위의 기능으로 토대로
유연성
,비용 효율성
,확장성
,신뢰성
,통합성
을 바탕으로 사용하게 됩니다.비용도 저렴하고, 저장할 수 있는 데이터 양이 무한에,, 가깝고 별도의 스토리지 확장, 축소에 신경쓰지 않으셔도 됩니다.
S3는 수천 대 이상의 매우 성능이 좋은 웹 서버로 구성되어서 EC2나 EBS로 구축했을 때 처럼 AutoScaling이나 LoadBalancing를 신경쓰시지 않으셔도 됩니다.
웹 하드 서비스와 비슷하지만, 별도의 클라이언트 설치를 하지 않고, HTTP 프로토콜(RestFul)로 파일 업로드와 다운로드가 가능합니다.
S3로 정적인 웹 서비스가 가능합니다.
동적 웹 페이지는 EC2에서 서비스하고, 정적 웹 페이지는 S3를 이용하면 성능과 비용을 모두 잡을 수 있습니다.
AWS 프리티어는 매달 5GB의 Amazon S3 스토리지(S3 Standard 스토리지 클래스), 20,000건의 GET 요청, 2,000건의 PUT, COPY, POST 또는 LIST 요청, 100GB의 데이터 송신까지는 무료입니다 !
사용 예
https://{BucketName}.{Region}.amazons.com/{objectKey.file}.extension
https://testBucketName.s3-ap-southest-2.amazonaws.com/test/objectKey.html
✅ 버킷 만들기
✅ 버킷 이름 설정
✅ 퍼블릭 엑세스 설정
저는 이미지를 업로드 할 예정이고 해당 이미지들은 퍼블릭으로 전환돼도 문제가 없다고 판단했고 이미지 업로드는 클라이언트에서 자류옵게 할 수 있으므로 가능합니다.
그래도 어느정도 보안은 유지해줘야 하기 때문에 IAM 정책으로 사용자에게 권한을 부여 할 예정입니다.
다른 설정은 default로 생성해주세요
IAM(Identity and Access Management)이란 Amazon Web Services 리소스에 대한 접근 및 권한을 관리하는 서비스입니다.
IAM으로 사용자, 그룹, 역할 및 정책을 통해 S3 리소스에 대한 접근을 제어할 예정으로 사용해보겠습니다.
기본적으로 IAM은 무료로 제공됩니다 : >
IAM
→ 엑세스 관리
→ 사용자
→ 사용자 생성
사용자 이름 입력
권한 정책 -> AmazonS3FullAccess
사용자 생성 완료 !
엑세스 관리 → 사용자 → 사용자 이름 선택→ 보안 자격 증명 → 엑세스 키 만들기
사례는 자유롭게 생성합니다.
태그 입력 → 선택 사항
AccessKey, SecretKey
가 생성되는데SecretKey
의 경우에는 해당 화면을 벗어나면 확인할 수 없기 때문에 꼭 따로 저장해주세요 !