AWS S3 생성

박도준·2021년 5월 17일
0

[IaC] Terraform

목록 보기
6/9
post-thumbnail

AWS의 대표적인 저장소 서비스인 S3에 대해 알아보고 테라폼을 통해 생성해본다.



AWS S3란?

AWS S3(Amazone Simple Storage Service)인터넷용 스토리지 서비스이다. 이 서비스는 개발자가 웹 규모 컴퓨팅 작업을 보다 쉽게 수행할 수 있도록 설계되었다.

Amazon S3는 엄청난 양의 데이터를 저장할 수 있고, 빠른 검색이 가능하다. 그리고 S3는 높은 확장성과 신뢰성을 갖춰 이를 이용해 빠르고 경제적인 데이터 스토리지 인프라를 구축할 수 있다.



Amazon S3 기본 개념

버킷

버킷S3에 저장된 객체에 대한 기본 컨테이너이다.
모든 객체는 어떤 버킷에 포함된다.

버킷이 사용되는 용도는 아래와 같다.

  • S3 네임스페이스를 최상위 수준으로 구성한다.
  • 스토리지 및 데이터 전송 요금을 담당하는 계정을 식별한다.
  • 액세스 제어에 사용된다.
  • 사용량 보고를 위한 집계 단위로 사용된다.

객체

객체S3에 저장되는 기본 개체이다. 객체는 객체 데이터와 메타데이터로 구성된다.

메타데이터는 객체를 설명하는 이름-값 페어의 집합이다. 여기에는 마지막 수정 날짜와 같은 몇 가지 기본 메타데이터 및 Content-Type 같은 표준 HTTP 메타데이터가 포함된다.

객체는 키 및 버전 ID를 통해 버킷 내에서 고유하게 식별된다.


버킷 내 객체의 고유한 식별자이다. 버킷 내 모든 객체는 정확히 하나의 키를 갖는다. 버킷, 키 및 버전 ID의 조합은 각 객체를 고유하게 식별한다.

예를 들어 https://bucket_cont.s3.amazonaws.com/2021-05-17/AmazonS3.jpg 의 URL에서 bucket_cont는 버킷 이름이고, 2021-05-17/AmazonS3.jpg는 키이다.

Regions

사용자는 S3 버킷을 어느 지역에 생성할 지 AWS 리전에서 선택할 수 있다. 특정 리전에 저장된 객체는 사용자가 명시적으로 객체를 다른 리전으로 전송하지 않으면 해당 리전을 벗어나지 않는다.



테라폼으로 S3 생성

S3 버킷을 생성해본다.

  • s3.tf
resource "aws_s3_bucket" "s3" {
 bucket = "20210517-terraform"
}

S3 bucket을 생성할 때는 aws_s3_bucket 리소스를 사용한다. bucket argument는 버킷의 이름을 적는다. 이때 s3 버킷은 전세계적으로 유일한 이름이여야 한다. 만약 bucket arguemnt를 사용하지 않으면 테라폼이 랜덤으로 고유한 이름을 지정해준다.

terraform plan

terraform apply


생성한 S3 버킷에 파일을 업로드해본다.
cp 명령어를 통해 앞서 생성한 S3 버킷 경로에 파일을 업로드한다.

aws s3 cp [파일 이름] s3://[버킷 이름]/[경로]


만약 s3 버킷에서 다운로드 받고 싶다면 경로를 반대로 적어준다.

aws s3 cp s3://[버킷 이름]/[경로] .



profile
Better late than never

0개의 댓글