[AWS] S3 (Simple storage service)

hugingstar·2026년 3월 27일

AWS

목록 보기
6/18
post-thumbnail

S3 (Simple storage service)

  • AWS에서 제공하는 Object Storage
  • Data를 Object 단위로 저장/관리하는 구조
  • Tree 구조 없이 무제한 확장성이 보장된 평면 주소 공간

개념

  • Bucket : S3에서 Data를 저장하는 단위, 이름은 Region 단위로 유일해야 한다.
  • Object : 저장되는 파일, Key + Metadata(크기, 생성 날짜, 태그 등)
  • Key : 객체의 경로
  • Region : Buckey이 생성된 AWS Region
  • Namespace(Registry) : Bucket 간 충돌을 방지하기 위한 최상위 구역

Bucket 생성

  • S3를 검색한다.

  • Account Regional namespace로 변경한다.

  • 객체 소유권 비활성화로 놓고

  • 퍼블릭 액세스 차단 설정해준다.

  • 나머지는 기본값으로 그대로 둔다.

  • 여기에 이제 파일을 올릴 수 있다. 3-tier 폴더를 만들었다.

  • Static에는 html, favicon 같은 정적파일만 올린다.

  • Dynamic에는 python 파일을 올린다.

  • DB용 sql 파일도 올려준다. 여기까지하면 S3에 모든 파일을 다 올린 것이다. 이제 이걸로 BASTION을 사용해서 직접 올리는 것이 아니고, S3에서 받아다가 쓰는 것이다.

  • IAM으로 들어가서 역할을 하나 만들어야 한다. > 역할 > 역할 생성

  • 사용 사례 AWS 서비스, EC2를 선택한다.

  • 권한 정책 : S3 > FullAccess > 이름 입력 : s3FullAccessRole

  • 생성 완료

  • EC2로 간다. 그리고 해당 역할을 부여해야 한다.
  • NGINX 인스턴스부터 설정한다 > 작업 > 보안 > IAM 역할 수정

  • IAM 역할 업데이트를 한다. 인스턴스는 S3dp 접근할 수 있는 권한을 받았다.

  • 실제로 접근되는지를 확인해본다. NGINX ip 확인(10.17.1.156)인 것 확인한다. 올바르게 들어갔다.

  • awscli 설치해야 한다. (우분투는 제대로 안될수도 있다.)
sudo apt update
apt install awscli

# 설치 안되는 경우
sudo apt update && sudo apt install unzip -y

# NGINX 에서 실행
cd ~ 
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"


sudo apt update && sudo apt install unzip -y

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

unzip awscliv2.zip

sudo ./aws/install

# 설치 확인
aws --version
  • Storage에 있는 것을 복사해오는 방법,
  • 중요! : AccessRole이 3개에 모두 적용되어야 한다.
# Static
aws s3 cp s3://<<storage>>/static ~/static --recursive --region ap-northeast-2

# Dynamic
aws s3 cp s3://<<storage>>/dynamic ~/dynamic --recursive --region ap-northeast-2

# DB
aws s3 cp s3://<<storage>>/db ~/db --recursive --region ap-northeast-2

업로드중..

0개의 댓글