[aws] CloudFormation으로 인스턴스 만들기
11133 단어 CloudFormationAWS
개요
aws
CloudFormatinon
를 사용하여 테스트를 위해 하나의 인스턴스를 만듭니다.CloudFormation이란?
AWS 시스템 구성은
JSON
또는 YAML
로 작성된 템플릿을 사용하여 관리, 수정, 편집 등을 자동으로 수행할 수 있는 기능입니다.템플릿으로 만든 환경을
スタック
라고 합니다.파일을 작성해 두는 것으로 환경을 사용하게 하는 점이 매우 편리합니다.
템플릿 정보
이번에 작성하는 환경의 템플릿은 다음과 같습니다.
테스트용 인스턴스를 하나 시작하는 구성입니다.
내장 함수인
Ref
로 구성을 연결하고 있는 이미지가 됩니다.또한 아래 예에서는 ssh의 SG를
0.0.0.0/0
로 하고 있으므로, 각자의 환경에 맞추어 수정해 주세요.# デフォルト記述
AWSTemplateFormatVersion: '2010-09-09'
# Key pair の指定。
# AWSコンソールでパラメータを指定
Parameters:
KeyPair:
Description: KeyPair Name
Type: AWS::EC2::KeyPair::KeyName
# EC2のイメージID
Mappings:
StackConfig:
EC2:
ImageId: 'ami-923d12f5'
Resources:
# VPCの作成
PracticeVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
Tags:
- Key: Name
Value: PracticeVPC
# InternetGateWayの作成
PracticeIGW:
Type: AWS::EC2::InternetGateway
Properties:
Tags:
- Key: Name
Value: PracticeIGW
# IGWをVPCにアタッチ
AttachIGW:
Type: AWS::EC2::VPCGatewayAttachment
Properties:
InternetGatewayId: !Ref PracticeIGW
VpcId: !Ref PracticeVPC
# RouteTableの作成
PracticePublicRoute:
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref PracticeVPC
Tags:
- Key: Name
Value: PracticePublicRoute
# Routeingの設定
Route:
Type: AWS::EC2::Route
DependsOn: AttachIGW
Properties:
RouteTableId: !Ref PracticePublicRoute
DestinationCidrBlock: 0.0.0.0/0
GatewayId: !Ref PracticeIGW
# PublicSubnetの作成
PublicSubnet:
Type: AWS::EC2::Subnet
Properties:
AvailabilityZone: ap-northeast-1a
CidrBlock: 10.0.1.0/24
VpcId: !Ref PracticeVPC
Tags:
- Key: Name
Value: PracticePublicSubnet
# SubnetにRouteテーブルを紐づける
PublicSubnetRouteTabelAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref PublicSubnet
RouteTableId: !Ref PracticePublicRoute
# セキュリティグループの作成
# port22と80を解放
PracticeSG:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: !Ref PracticeVPC
GroupDescription: PracticeSG
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 22
ToPort: 22
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: 80
ToPort: 80
CidrIp: 0.0.0.0/0
Tags:
- Key: Name
Value: PracticeSG
# EC2インスタンスの作成
PracticeEC2:
Type: AWS::EC2::Instance
Properties:
AvailabilityZone: ap-northeast-1a
InstanceType: t2.micro
ImageId: !FindInMap [ StackConfig, EC2, ImageId ]
KeyName: !Ref KeyPair
SubnetId: !Ref PublicSubnet
SecurityGroupIds:
- !GetAtt PracticeSG.GroupId
Tags:
- Key: Name
Value: PracticeEnv
# ElasticIPの作成
PracticeIP:
Type: AWS::EC2::EIP
Properties:
InstanceId: !Ref PracticeEC2
환경 만들기
AWS 콘솔에서 다음과 같이 생성합니다.
サービス → CloudFormation → スタックの作成 → スタックの詳細 → オプションの設定 → スタックの作成
작성한 yaml 파일을 업로드합니다.
스택의 이름과 매개변수를 지정합니다.
임의의 이름과 ssh를 수행하는 각자의 개인 키를 지정하십시오.
태그나 IAM 롤, 알람등을 설정할 수 있습니다만 이번은 특별히 설정을 실시하지 않습니다.
스택 만들기를 누르고
CREATE_COMPLETE
되면 완료됩니다.환경 삭제
CloudFormation에서 만든 환경은 대상 스택을 삭제하여 해당 스택에서 만든 환경을 일괄적으로 삭제할 수 있습니다.
Reference
이 문제에 관하여([aws] CloudFormation으로 인스턴스 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hrtkjm/items/0a3b9840b1e9d3b67ffc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)