AWS로 시작하는 인프라 구축의 정석 리뷰4(9장 이미지 저장 장소 준비하기)

신창호·2023년 7월 30일
0

aws책리뷰

목록 보기
3/8
post-thumbnail

🗃️스토리지

데이터를 오랫동안 저장하는 것을 목적으로 제공되는 데이터 저장 장소

  • 보조 기억 장치라고도 한다.
  • 주 기억장치인 메모리와 차이는 여러가지가 있지만, 주된 차이점은 스토리지는 전원을 꺼도 데이터를 저장할 수 있다는 것이다.






S3

🔥EC2 내부 스토리지 사용시 문제점

EC2 인스턴스에서 제공되는 스토리지는 EBS라고한다.
RDS도 EBS를 사용한다.

  • EBS 스토리지로 DB저장공간으로 사용하게되면 여러 문제가 발생한다.
    • EC2 인스턴스의 OS 자체도 관리해야 됨
    • 예측하지 못한 장애 발생 시 대응 준비 필요
    • EC2가 SLA에 의해 잠깐 (5분정도)정지될 시, 사용 못하게되는 이슈가 발생한다.


💰S3 작업 범위와 비용

  • 위 문제를 해결할 수 있는 것이 스토리지 관리서비스를 수행하는 S3이다.
  • 또한, 내결함성과 비용 측면에서도 EBS보다 압도적으로 우수하다.(약 5배)
    • 비용은 용량에 따라 계산된다.
  • 대신 외부 스토리지 서비스(외장하드 개념)이기에 C드라이브로 활용하거나, 파일시스템처럼 마운트할 수 없다.






🔁 S3와 VPC의 관계

S3는 VPC 밖에 생성해야 한다. 따라서 S3에 접근하는 방법은 크게 2가지로 나타난다.

  • 인터넷으로 부터 직접 접근
  • VPC로 부터 접근

👣 VPC로 부터 접근

  • S3 버킷에 대한 접근 권한이 필요하다.(역할 활용)
    1. S3 버킷에 접근하기 위한 정책을 가진 역할을 생성하고,
    2. EC2에 역할 적용한다.
  • 다른 방법으로 하는 방법도 있다.(정책 활용)
    1. S3에 접근할 수 있는 정책을 가진 사용자
    2. 사용자의 권한 + 엑세스키 조합으로 S3에 접근

하지만 이 방식 보단 역할 방식을 더 많이 이용한다.

S3 시스템

  • S3에 데이터를 저장할 때 버킷에 저장한다.
    • 버킷 : S3에서 관리하는 데이터를 하나로 모은 단위
    • 즉, 여러 버킷을 만들 수 있다.
    • 버킷 안에는 서비스에서 이용하는 데이터인 객체를 저장한다.
      • 객체 : 파일을 말한다.
      • 텍스트, 이미지, 음성, 동영상 등
    • 파일들을 폴더구조로도 관리할 수 있다.






💻 S3 저장장소 준비 실습

버킷 생성하기

  • 이름 설정시 같은 리전안에서는 중복되지 않아야 한다.
  • 다른 계정에서 이용되는 이름이라고 해도 버킷 이름이 중복되면 안된다.
  • 따라서, 보통 서비스 이름이나 도메인 이름을 포함시켜 만든다.

액세스 차단 설정

  • 모든 퍼블릭 액세스 차단이 체크되어 있으면 데이터는 공개되지 않느다.

역할 생성후, EC2 적용

  1. IAM에서 역할 만들기 클릭
  2. 엔티티와 사용사례
  • AWS서비스 선택
  • EC2 선택
  1. 권한 추가
  • AmazonS3FullAccess 체크
  • 생성할 모든 S3 버킷으로 액세스권한을 가지게되는 역할임으로, 해당 S3버킷만 액세스할 수 있는 정책을 생성해서 할당해주는 것이 좋다.
  1. 이름지정, 검토 및 생성
  • 역할의 경우 Global 리소스임으로, 네이밍 컨벤션이 따로 있다.
  • 참고링크
  • {{app_naming}} – {{product_used}} – {{level_of_access}} – iam – policy
  1. EC2 인스턴스 목록에서 적용할 인스턴스를 선택하고 역할을 부여한다.
  • 인스턴스 하나만 선택 -> 작업 -> 보안 -> IAM 역할 수정을 선택
  • 내가 만들었던 IAM 역할로 선택 후 저장

작동 확인

  • EC2을 열어 접근한 뒤, 간단하게 테스트용 파일을 홈디렉토리에 만든다.
  • 그리고 aws s3 cp 명령어를 이용해 S3에 업로드 한다.
$ aws s3 cp test.txt s3://{버킷이름}
  • 에러가 표시되지 않으면 업로드 완료.
  • 실제 버킷에서도 확인해보면 업로드된 것을 확인할 수 있다.
profile
한단계씩 올라가는 개발자

0개의 댓글