웹사이트 검색

Cloudformation을 사용하여 EC2 인스턴스를 생성하는 방법


이 페이지에서

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

계속 진행하기 전에 귀하가 AWS의 EC2 서비스와 기본 구성요소를 알고 있다고 가정합니다. 내 기사를 방문하여 AWS 콘솔을 사용하여 EC2 인스턴스를 생성하고 EC2 인스턴스의 기본 사항을 이해하는 것이 좋습니다. 기사로 이동하려면 여기를 클릭하세요. 이 문서에서는 Cloudformation을 사용하여 최신 Linux AMI로 EC2 인스턴스를 생성하므로 클라우드 형성의 기본 사항을 알아야 합니다. Cloudformation에 대해 잘 모르고 이를 사용하여 인스턴스를 생성하고 싶은 경우에도 걱정하지 말고 기사를 진행하십시오.

이 문서에서는 Cloudformation for EC2에서 사용할 수 있는 모든 옵션을 다루지는 않습니다. Cloudformation for EC2 서비스에서 사용할 수 있는 모든 옵션을 알고 싶다면 여기에서 AWS 공식 문서를 방문하세요.

전제 조건

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

우리는 무엇을 할 것입니까?

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

AWS에 로그인

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

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

템플릿 만들기

다음 콘텐츠가 포함된 템플릿 create-ec2-instance.template을 로컬 시스템에 생성합니다.

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

AWSTemplateFormatVersion: '2010-09-09'
Metadata:
  License: Apache-2.0
Description: 'Create an AWS EC2 instance running the AWS Linux AMI.'
Parameters:
  KeyName:
    Description: Name of an existing EC2 KeyPair
    Type: AWS::EC2::KeyPair::KeyName
    ConstraintDescription: must be the name of an existing EC2 KeyPair.
  InstanceType:
    Description: AWS EC2 instance type
    Type: String
    Default: t3.small
    AllowedValues: [t2.nano, t2.micro, t2.small, t2.medium, t2.large, t2.xlarge, t2.2xlarge,
      t3.nano, t3.micro, t3.small, t3.medium, t3.large, t3.xlarge, t3.2xlarge,
      m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge,
      m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge,
      c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge,
      g3.8xlarge,
      r5.large, r5.xlarge, r5.2xlarge, r5.4xlarge, r3.12xlarge,
      i3.xlarge, i3.2xlarge, i3.4xlarge, i3.8xlarge,
      d2.xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge]
    ConstraintDescription: must be a valid EC2 instance type.
  SSHLocation:
    Description: The IP address range allowed to SSH to the EC2 instances
    Type: String
    MinLength: 9
    MaxLength: 18
    Default: 0.0.0.0/0
    AllowedPattern: (\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/(\d{1,2})
    ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x.
  LatestAmiId:
    Type:  'AWS::SSM::Parameter::Value'
    Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2'
Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: !Ref 'InstanceType'
      SecurityGroups: [!Ref 'InstanceSecurityGroup']
      KeyName: !Ref 'KeyName'
      ImageId: !Ref 'LatestAmiId'
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Enable SSH access on port 22
      SecurityGroupIngress:
      - IpProtocol: tcp
        FromPort: 22
        ToPort: 22
        CidrIp: !Ref 'SSHLocation'
Outputs:
  InstanceId:
    Description: Id of the newly created AWS EC2 instance
    Value: !Ref 'EC2Instance'
  AZ:
    Description: AZ of the newly created AWS EC2 instance
    Value: !GetAtt [EC2Instance, AvailabilityZone]
  PublicDNS:
    Description: Public DNS Name of the newly created AWS EC2 instance
    Value: !GetAtt [EC2Instance, PublicDnsName]
  PublicIP:
    Description: Public IP address of the newly created AWS EC2 instance
    Value: !GetAtt [EC2Instance, PublicIp]

Cloudformation 스택 생성

Cloudformation 대시보드로 이동하려면 화면 왼쪽 상단의 서비스를 클릭하고 Cloudformation을 검색합니다.

다음은 Cloudformation의 기본 대시보드입니다. 선택한 리전의 내 계정에 이미 하나의 스택이 생성되어 있습니다.

새 스택을 만들려면 스택 만들기 --> 새 리소스 사용(표준)을 클릭합니다.

여기에서 "템플릿 파일 업로드"를 선택하고 이전 단계에서 로컬 컴퓨터에 생성한 템플릿을 선택합니다. 계속하려면 "다음" 버튼을 클릭하십시오.

스택에 이름을 지정하고 인스턴스 유형과 계정의 기존 키를 선택합니다. 서버에 SH를 허용할 특정 IP를 지정할 수 있습니다. 그렇지 않으면 0.0.0.0/0을 유지하여 포트 22에서 들어오는 트래픽을 허용할 수 있습니다. 계속하려면 "다음" 버튼을 클릭하세요.

페이지 끝에서 스크롤하여 "스택 생성" 버튼을 클릭합니다.

생성에는 몇 분 정도 소요되며 생성이 완료되면 상태가 "CREATE_COMPLETE"로 표시됩니다.

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

EC2 대시보드의 왼쪽 패널에서 "인스턴스"를 클릭합니다.

여기에서 새 인스턴스가 생성된 것을 볼 수 있습니다. 세부 사항을 확인하고 확인할 수 있습니다.

Cloudformation 스택 삭제

인스턴스가 더 이상 필요하지 않으면 Cloudformation 스택을 삭제하여 인스턴스를 삭제할 수 있습니다. Cloudformation 스택을 삭제하면 생성된 리소스가 삭제됩니다. 스택을 삭제하려면 "삭제" 버튼을 클릭하십시오.

표시되는 팝업에서 삭제 작업을 확인합니다.

삭제에 성공하면 상태가 "DELETE_COMPLETE"로 표시됩니다.

삭제가 성공했는지 확인하려면 EC2 대시보드로 이동하여 인스턴스 상태를 확인하십시오. 다음 스크린샷에서 인스턴스 상태가 종료됨을 확인할 수 있으며 동일한 상태를 볼 수 있습니다.

결론

이 기사에서는 Cloudformation 스택을 사용하여 EC2 인스턴스를 만드는 것이 얼마나 쉬운지 살펴보았습니다. 동일한 템플릿을 사용하여 여러 스택을 생성할 수 있습니다. 또한 Cloudformation 스택을 사용하여 생성된 리소스도 스택 자체를 삭제하여 삭제할 수 있음을 확인했습니다.