웹사이트 검색

Cloudformation을 사용하여 S3 버킷을 생성하는 방법


이 페이지에서

  1. 전제 조건
  2. 무엇을 할 것인가?\n
  3. AWS에 로그인
  4. 템플릿 만들기\n
  5. Cloudformation 스택 생성
  6. Cloudformation 스택 삭제
  7. 결론

AWS에서 S3 버킷을 생성하는 방법에는 여러 가지가 있습니다. 클라우드 포메이션은 IaC(Infrastructure as Code) 방식 중 하나로 버킷을 생성하고 코드를 가지고 다른 사람과 공유할 수 있습니다. 계속 진행하기 전에 S3 버킷과 Cloudformation AWS 서비스에 대해 알고 있다고 가정합니다. S3에 대해 잘 모른다면 먼저 AWS 콘솔을 사용하여 S3 버킷을 생성하는 단계를 수행하는 것이 좋습니다. 여기를 클릭하여 AWS 콘솔에서 S3 버킷을 생성하는 문서를 살펴보세요.

이 기사에서는 S3 버킷을 생성하기 위해 Cloudformation에서 사용할 수 있는 몇 가지 옵션을 살펴봅니다. S3 버킷을 생성하기 위해 Cloudformation에서 사용할 수 있는 모든 옵션을 알아보려면 여기에서 AWS 공식 페이지를 방문하십시오.

전제 조건

  1. AWS 계정(계정이 없는 경우 생성).
  2. Cloudformation 템플릿에 대한 기본적인 이해.\n
  3. S3 버킷에 대한 기본적인 이해\n

우리는 무엇을 할 것인가?

  1. AWS에 로그인합니다.\n
  2. 템플릿을 만듭니다.\n
  3. Cloudformation 스택을 만듭니다.
  4. Cloudformation 스택을 삭제합니다.\n

AWS에 로그인

AWS 로그인 페이지로 이동하려면 여기를 클릭하십시오. 사용자 자격 증명을 입력하여 AWS 계정에 로그인합니다.

AWS 계정에 성공적으로 로그인하면 다음과 같은 AWS 관리 콘솔이 표시됩니다.

템플릿 만들기

스택 생성을 진행하기 전에 다음 내용으로 로컬 시스템에 파일을 생성합니다.

내 Github 저장소에서 템플릿을 다운로드할 수도 있습니다. 템플릿 링크는 아래에 나와 있습니다.

AWSTemplateFormatVersion: '2010-09-09'
Metadata: 
  License: Apache-2.0
Description: 'AWS CloudFormation Template to create an S3_Website_Bucket_With_Retain_On_Delete'
Parameters:
  BucketNameParameter:
    Type: String
    Description: Bucket Name
Resources:
  S3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Ref BucketNameParameter
      AccessControl: PublicRead
      WebsiteConfiguration:
        IndexDocument: index.html
        ErrorDocument: error.html
    DeletionPolicy: Retain
Outputs:
  WebsiteURL:
    Value: !GetAtt [S3Bucket, WebsiteURL]
    Description: URL for website hosted on S3
  S3BucketSecureURL:
    Value: !Join ['', ['https://', !GetAtt [S3Bucket, DomainName]]]
    Description: Name of AWS S3 bucket to hold website content

Cloudformation 스택 생성

로컬 컴퓨터에 템플릿이 있으면 AWS 기본 대시보드로 이동하여 화면 왼쪽 상단의 서비스를 클릭하고 "Cloudformation"을 검색합니다. 얻은 Cloudformation 결과를 클릭합니다.

Cloudformation의 기본 대시보드가 표시됩니다. 선택한 리전 아래 내 계정에 이미 하나의 스택이 있습니다.

스택을 생성하려면 스택 생성 --> 새 리소스 사용(표준)을 클릭합니다.

"템플릿 파일 업로드" 옵션을 선택하고 로컬 컴퓨터에서 템플릿을 선택합니다. 계속하려면 "다음" 버튼을 클릭하십시오.

스택에 이름을 지정하고 생성할 S3 버킷에도 이름을 지정합니다. 지정하는 이름이 전역적으로 고유하고 다른 버킷이 AWS에서 전 세계적으로 동일한 이름을 갖지 않는지 확인하세요. 계속하려면 "다음" 버튼을 클릭하십시오.

태그는 선택사항이며 지정하거나 지정하지 않을 수 있습니다. 계속 진행하려면 "다음" 버튼을 클릭하세요.

페이지 끝에서 아래로 스크롤하고 "스택 만들기" 버튼을 클릭하여 Cloudformation 스택을 사용하여 S3 버킷을 만듭니다.

버킷에 지정한 이름이 고유하고 AWS에서 전 세계적으로 동일한 이름을 가진 다른 버킷이 없으면 버킷이 생성되고 성공적으로 생성되면 상태가 "CREATE_COMPLETE"로 표시됩니다.

버킷이 생성되었는지 확인하려면 화면 왼쪽 상단의 서비스를 클릭하고 S3를 검색하여 S3 대시보드로 이동합니다.

S3 대시보드에서 S3 버킷이 생성되었음을 확인할 수 있습니다.

Cloudformation 스택 삭제

Cloudformation 스택을 삭제하면 생성된 리소스가 삭제된다는 것을 알고 있습니다. 이번에는 조금 다릅니다.

이제 돌아가서 템플릿에 있는 코드를 확인하면 "DeletionPolicy: Retain"이 있음을 알 수 있습니다. 이 옵션으로 인해 스택을 삭제해도 버킷은 삭제되지 않습니다.

그래도 스택을 삭제하려면 "삭제" 버튼을 클릭하세요.

받게 될 팝업 화면에서 삭제 작업을 확인합니다.

스택이 삭제되면 상태가 "STACK_DELETE"로 표시됩니다.

"DeletionPolicy: Retain" 옵션으로 인해 앞에서 언급했듯이 스택은 삭제되지만 S3 버킷은 계속 유지됩니다.

S3 대시보드로 돌아가서 S3 버킷이 계정에서 여전히 사용 가능한지 확인할 수 있습니다.

결론

이 기사에서는 Cloudformation 스택을 사용하여 S3 버킷을 생성하는 것이 얼마나 쉬운지 살펴보았습니다. 동일한 스택을 사용하여 여러 S3 버킷을 생성할 수 있습니다. 버전 제어 시스템에 코드를 저장하고 다른 사람과 공유할 수도 있습니다. "DeletionPolicy: Retain" 옵션이 어떻게 버킷을 유지하고 스택이 삭제되더라도 버킷을 삭제하지 않는지 확인했습니다.