aws - S3

» BE

인프런 JSCODE 박재성님 비전공자도 이해할 수 있는 AWS 입문/실전 강의를 듣고 정리한 내용입니다
https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-%EC%9D%B4%ED%95%B4%ED%95%A0%EC%88%98%EC%9E%88%EB%8A%94-aws-%EC%9E%85%EB%AC%B8%EC%8B%A4%EC%A0%84/dashboard

S3

S3

파일 저장 서비스

  • 이미지 파일 업로드 과정 Image

    이미지가 저장된 S3 주소를 RDS에 저장

  • 이미지 파일 다운로드 과정 Image


S3 버킷 생성하기
  • 버킷(Bucket)

    • 깃허브의 레포지토리 같은 개념

    • S3에서도 여러 개의 저장소를 만들 수 있는데 여기서 하나의 저장소를 버킷(Bucket)이라고 부름

  • 객체(Object)

    • S3 버킷에 업로드된 파일

AWS > S3 > 버킷 만들기

  1. 버킷 이름 설정

  2. 모든 퍼블릭 액세스 차단 해제

  3. 버킷 만들기

  4. 버킷에 정책 추가하기

    • 정책(Policy)

      • 권한을 정의하는 JSON 문서

      • AWS는 기본적으로 대부분의 권한이 주어져있지 않아서 AWS의 특정 소스에 접근하려면 권한을 허용해주어야 함

    • 버킷 > 권한 > 버킷 정책 > 편집 > 새 문 추가

      • 서비스 선택: s3

      • 이미지 조회 위한 GetObject 추가

      • 리소스 추가
        • 서비스 유형: object

        • 리소스 ARN: arn:aws:s3:::{내가 만든 버킷명}/*의 형식으로 입력

        • ARN(Amazon Resource Number): AWS에 존재하는 리소스를 표현하는 문법

        • 모든 객체들에 대해 권한 허용

      • "Principal": "*", 로 변경
        • 모두에게 이 권한 허용


IAM에서 액세스 키 발급받기

기본적으로 AWS의 리소스에 아무나 접근을 못하기 때문에 S3에 접근해서 파일을 업로드할 수가 없음

하지만 백엔드 서버가 S3에 접근해서 파일을 업로드할 수 있어야 하기 때문에 S3에 접근할 수 있는 권한을 받기 위해 IAM에서 액세스 키를 발급받아야 함

AWS > IAM > 액세스 관리 > 사용자 > 사용자 생성

  1. 사용자 이름 설정

  2. 권한 설정
    • 권한 옵션: 직접 정책 연결
    • 권한 정책
      • S3Full 검색해서 AmazonS3FullAccess 선택
  3. 액세스 키 만들기
    • 사용자 > 보안 자격 증명 > 액세스 키 > 액세스 키 만들기
      • AWS 외부에서 실행되는 애플리케이션

      • 액세스 키 따로 저장해두기


비용 나가지 않게 S3 깔끔하게 종료하기
  1. 버킷 안에 있는 객체 전부 삭제

  2. 버킷 삭제