1단계: AWS CloudFormation 템플릿 다운로드 - AWS Service Catalog

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

1단계: AWS CloudFormation 템플릿 다운로드

AWS CloudFormation 템플릿을 사용하여 포트폴리오와 제품을 구성하고 프로비저닝할 수 있습니다. 이러한 템플릿은 JSON 또는 YAML 형식으로 지정할 수 있는 텍스트 파일로, 프로비저닝할 리소스를 설명합니다. 자세한 내용을 알아보려면 AWS CloudFormation 사용 설명서템플릿 형식을 참조하세요. AWS CloudFormation 편집기 또는 선택한 텍스트 편집기를 사용하여 템플릿을 생성한 후 저장할 수 있습니다. 이 튜토리얼에서는 시작할 수 있는 간단한 템플릿을 제공합니다. 이 템플릿은 SSH 액세스에 대해 구성된 Linux 인스턴스 하나를 시작합니다.

참고

AWS CloudFormation 템플릿을 사용하려면 특별한 권한이 필요합니다. 시작하기 전에 올바른 권한을 가지고 있는지 확인하십시오. 자세한 내용은 시작하기 라이브러리의 사전 조건을 참조하세요.

템플릿 다운로드

이 자습서에 제공된 샘플 템플릿 development-environment.templatehttps://awsdocs.s3.amazonaws.com/servicecatalog/development-environment.template에서 사용할 수 있습니다.

템플릿 개요

샘플 템플릿의 텍스트는 다음과 같습니다.

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "AWS Service Catalog sample template. Creates an Amazon EC2 instance running the Amazon Linux AMI. The AMI is chosen based on the region in which the stack is run. This example creates an EC2 security group for the instance to give you SSH access. **WARNING** This template creates an Amazon EC2 instance. You will be billed for the AWS resources used if you create a stack from this template.", "Parameters" : { "KeyName": { "Description" : "Name of an existing EC2 key pair for SSH access to the EC2 instance.", "Type": "AWS::EC2::KeyPair::KeyName" }, "InstanceType" : { "Description" : "EC2 instance type.", "Type" : "String", "Default" : "t2.micro", "AllowedValues" : [ "t2.micro", "t2.small", "t2.medium", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge" ] }, "SSHLocation" : { "Description" : "The IP address range that can SSH to the EC2 instance.", "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." } }, "Metadata" : { "AWS::CloudFormation::Interface" : { "ParameterGroups" : [{ "Label" : {"default": "Instance configuration"}, "Parameters" : ["InstanceType"] },{ "Label" : {"default": "Security configuration"}, "Parameters" : ["KeyName", "SSHLocation"] }], "ParameterLabels" : { "InstanceType": {"default": "Server size:"}, "KeyName": {"default": "Key pair:"}, "SSHLocation": {"default": "CIDR range:"} } } }, "Mappings" : { "AWSRegionArch2AMI" : { "us-east-1" : { "HVM64" : "ami-08842d60" }, "us-west-2" : { "HVM64" : "ami-8786c6b7" }, "us-west-1" : { "HVM64" : "ami-cfa8a18a" }, "eu-west-1" : { "HVM64" : "ami-748e2903" }, "ap-southeast-1" : { "HVM64" : "ami-d6e1c584" }, "ap-northeast-1" : { "HVM64" : "ami-35072834" }, "ap-southeast-2" : { "HVM64" : "ami-fd4724c7" }, "sa-east-1" : { "HVM64" : "ami-956cc688" }, "cn-north-1" : { "HVM64" : "ami-ac57c595" }, "eu-central-1" : { "HVM64" : "ami-b43503a9" } } }, "Resources" : { "EC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : { "Ref" : "InstanceType" }, "SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ], "KeyName" : { "Ref" : "KeyName" }, "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, "HVM64" ] } } }, "InstanceSecurityGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : "Enable SSH access via port 22", "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : { "Ref" : "SSHLocation"} } ] } } }, "Outputs" : { "PublicDNSName" : { "Description" : "Public DNS name of the new EC2 instance", "Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicDnsName" ] } }, "PublicIPAddress" : { "Description" : "Public IP address of the new EC2 instance", "Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicIp" ] } } } }
템플릿 리소스

이 템플릿은 제품이 시작될 때 생성할 리소스를 선언합니다. 이 템플릿은 다음 섹션으로 구성됩니다.

  • AWSTemplateFormatVersion(선택 사항) — 이 템플릿을 만드는 데 사용된 AWS템플릿 형식의 버전입니다. 최신 템플릿 포맷 버전은 2010-09-09이며 현재 유일한 유효 값입니다.

  • 설명 (선택 사항) - 템플릿에 대한 설명.

  • 파라미터(선택 사항) - 사용자가 제품을 시작하기 위해 지정해야 하는 파라미터입니다. 이 템플릿에는 각 파라미터에 대한 설명과 입력한 값이 충족해야 하는 제약 조건이 들어 있습니다. 제약 조건에 대한 자세한 내용은 AWS Service Catalog 제약 조건 사용 단원을 참조하십시오.

    KeyName 파라미터를 통해 최종 사용자가 AWS Service Catalog를 사용하여 제품을 시작할 때 제공해야 하는 Amazon Elastic Compute Cloud(Amazon EC2) 키 페어 이름을 지정할 수 있습니다. 다음 단계에서 키 페어를 만듭니다.

  • 메타데이터(선택 사항) - 템플릿에 대한 추가 정보를 제공하는 객체입니다. AWS::CloudFormation: :Interface 키는 최종 사용자 콘솔 뷰에 매개 변수가 표시되는 방식을 정의합니다. ParameterGroups 속성은 파라미터를 그룹화하는 방법과 그러한 그룹의 제목을 정의합니다. ParameterLabels 속성은 파라미터의 표시 이름을 정의합니다. 사용자가 이 템플릿을 기반으로 하는 제품을 시작하기 위해 파라미터를 지정하면 최종 사용자 콘솔 보기의 Instance configuration 제목 아래에 Server size:라는 파라미터가 표시되며, Security configuration 제목 아래에 Key pair:CIDR range:라는 파라미터가 표시됩니다.

  • 매핑(선택 사항) - 조건부 파라미터 값을 지정하는 데 사용할 수 있는 키와 관련 값의 매핑으로, 조회 테이블과 비슷합니다. 리소스 및 출력 섹션에서 Fn:: FindInMap 내장 함수를 사용하여 키를 해당 값과 일치시킬 수 있습니다. 위 템플릿에는 서로 상응하는 AWS 리전 및 Amazon Machine Image(AMI)의 목록이 포함됩니다. AWS Service Catalog는 이 매핑을 사용하여 사용자가 AWS Management Console에서 선택하는 AWS 리전을 기반으로 사용할 AMI를 결정합니다.

  • 리소스 (필수) - 리소스 및 해당 속성을 스택합니다. 템플릿의 리소스출력 섹션에서 리소스를 참조할 수 있습니다. 위 템플릿에서는 Amazon Linux를 실행하는 EC2 인스턴스와 해당 인스턴스에 대한 SSH 액세스를 허용하는 보안 그룹을 지정합니다. EC2 인스턴스 리소스의 속성 섹션은 사용자가 SSH 액세스를 위한 키 이름과 인스턴스 유형을 구성하기 위해 입력하는 정보를 사용합니다.

    AWS CloudFormation은 현재 AWS 리전을 사용하여 이전에 정의한 매핑에서 AMI ID를 선택하고 여기에 보안 그룹을 할당합니다. 보안 그룹은 사용자가 지정하는 CIDR IP 주소 범위에서 포트 22를 통한 인바운드 액세스를 허용하도록 구성됩니다.

  • 출력(선택 사항) - 제품 시작이 완료되면 사용자에게 알리는 텍스트입니다. 제공되는 템플릿은 시작한 인스턴스의 퍼블릭 DNS 이름을 가져오고 이를 사용자에게 표시합니다. 사용자가 SSH를 사용하여 인스턴스에 연결하려면 DNS 이름이 필요합니다.

    템플릿 구조 페이지에 대한 자세한 내용은 AWS CloudFormation 사용 설명서템플릿 참조 섹션을 참조하세요.