K's Atelier

個人的な学習記録

Outputs and ImportValue

AWSの講師としてデモを実施する上で,Demoの自動構築をしておきたい。
VPCをコース単位として,章(Module)の中のDemo単位にStackを構成するのが良いのではないか,ということで実験。

通常のCloudFormationでのStackの分割よりもだいぶ細かいが,研修をする上ではこのくらいの運用が良いはず。

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  VpcCidrBlock:
    Description: Input a VPC IPv4 CidrBlock. ex) 192.168.2.0/24
    Type: String
    Default: "10.0.0.0/16"
Resources:
  CPEVPC:
    Type: 'AWS::EC2::VPC'
    Properties:
      CidrBlock: !Ref VpcCidrBlock
      EnableDnsHostnames: true
      EnableDnsSupport: true
      InstanceTenancy: default
      Tags: 
        - Key: Course
          Value: "CPE"
Outputs:
  CPEVPCID:
    Description: "VPCID of demo."
    Value: !Ref CPEVPC
    Export:
      Name: "CPE-VPCID"
AWSTemplateFormatVersion: 2010-09-09
Parameters:
  PublicSubnet1AZ:
    Description: Input a AZ where Public Subnet will be created.
    Type: AWS::EC2::AvailabilityZone::Name
  PublicSubnet1CidrBlock:
    Description: Input a Public Subnet IPv4 CidrBlock.  ex) 192.168.2.0/25
    Type: String
    Default: "10.0.1.0/24"
Resources:
  PublicSubnet1:
    Type: AWS::EC2::Subnet
    Properties:
      AvailabilityZone: !Ref PublicSubnet1AZ
      CidrBlock: !Ref PublicSubnet1CidrBlock
      MapPublicIpOnLaunch: true
      Tags:
        - Key: Name
          Value: "mod1-demo1-pub1"
        - Key: Module
          Value: 1
        - Key: Demo
          Value: 1
      VpcId: !ImportValue "CPE-VPCID"