Amazon S3 실습

Chori·2024년 11월 9일
0
post-thumbnail

처음 시작하는 Infrastructure as Code: AWS & 테라폼을 수강하며 정리한 내용입니다.


S3 버킷 생성

  • S3 버킷을 생성할 때는 aws_s3_bucket 리소스를 사용
  • S3 버킷의 이름은 전세계적으로 유일해야 하며 이름이 중복되면 리소스가 생성되지 않음
  • S3 생성 전에 프로바이더를 위한 provider.tf 파일을 다음과 같이 작성
provider "aws" {
  region = "ap-northeast-2"
}
  • provider.tf 파일 생성 후 terraform init 수행

  • terraform init이 완료되면 S3 리소스를 위한 S3.tf 파일 작성
resource "aws_s3_bucket" "main" {
  bucket = "chori-terraform-101"
  
  tags = {
    Name = "chori-terraform-101"
  }
}
  • terraform plan 실행

  • terraform apply 실행

  • AWS 콘솔에서 S3 버킷이 만들어진 것을 확인할 수 있음


S3 버킷에 파일 업로드

  • S3 버킷에 업로드할 예제 파일 생성
This is learning cource for terraform and aws 101.
  • 다음 명령어로 파일을 S3 버킷에 업로드
aws s3 cp index.txt s3://chori-terraform-101/

  • AWS S3에서 파일이 업로드된 것을 확인할 수 있음

  • S3에 파일을 업로드할 때 경로를 임의로 지정하여 폴더를 만들 수도 있음, 폴더 안에 파일이 저장됨
aws s3 cp index.txt s3://chori-terraform-101/path/

S3 버킷에서 파일 다운로드

  • 로컬에서 index.txt 파일을 삭제
rm index.txt
  • S3 버킷에서 파일을 받으려면 명령어를 다음과 같이 작성
aws s3 cp s3://chori-terraform-101/path/index.txt .

  • 권한이 없는 사용자가 파일을 받으려고 하면 거부됨

S3의 추가 기능

  • html 같은 파일은 정적 웹 사이트 호스팅을 할 수 있음
  • AWS의 다른 서비스인 CloudFront와 엮어서 S3를 정적 웹 사이트 호스팅 용도로 쓰는 경우가 많음
  • Versioning을 활성화하면 파일이 저장될 때마다 버저닝되어 파일 유실을 방지할 수 있음
profile
전부인 것처럼, 전부가 아닌 것처럼

0개의 댓글