LoginSignup
1
1

More than 3 years have passed since last update.

【AWS】CloudFormationで Type: AWS::EC2::VPC や AWS::EC2::Subnet ってどういうこと?

Last updated at Posted at 2021-04-18

初めまして、AWSクラウドエンジニアのルビコンと申します。

突然ですが、CloudFormationを使われているでしょうか?
リソースをコードで作れるのでインフラ構築・管理で毎日使っているサービスです。
初めて学習される際につまずかないよう、Tipsを提供させて頂きます。

Typeとは?

TypeにはAWSリソースの種類を書きます。公式ドキュメント (AWS resource and property types reference - AWS CloudFormation) には service-provider::service-name::data-type-name を書くと定義されています。

例えば下記YAMLではRubiconLinkという名前のユーザーを作成できます。

Resources:
  UserRubiconLink:
    Type: AWS::IAM::User
    Properties:
      UserName: RubiconLink
      LoginProfile:
        Password: ILoveQiita!
        PasswordResetRequired: true
      Groups:
        - !Ref GroupAdministrators

Type: AWS::IAM::UserAWS::IAM::Group は抵抗ないでしょう。IAMでUserやGroupを作るということですね。確かにIAMの管理画面でもUserやGroupのメニューがあります。

AWS::EC2::VPCAWS::EC2::Subnet に違和感

下記YAMLではVPCを作成できます。

Resources:
  VPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.0.0/19
      EnableDnsHostnames: true
      EnableDnsSupport: true
      InstanceTenancy: default
      Tags:
        - Key: Name
          Value: awsmaster-prod-vpc

AWSを少しでもかじったことがあると、Type: AWS::EC2::VPCAWS::EC2::Subnet は抵抗ありますね。というのもAWSの管理画面からすると、VPCというサービスの中にVPCやSubnetのメニューがあるので AWS::VPC::VPCAWS::VPC::Subnet の方が自然に思えるからです。

実はAWSの裏側としてはCFnの方が正解で、VPCやSubnetなど「VPC」の画面にまとめられているリソースは全て「EC2」のリソースなのです。なので Type: AWS::EC2::VPCAWS::EC2::Subnet となります。

歴史的経緯

AWSでEC2がリリースされた2006年当初、VPCは存在しませんでした。その後、EC2をネットワーキングするための機能として2009年にVPCがリリースされた経緯があるのでしょう。

実はその名残がAWSの画面でも残っており、Security Groupというリソースは全く同じものを「EC2」の画面でも「VPC」の画面でも見ることができます。さらにRDSでは「VPC Security Group」という表記があります。普段「EC2」の画面でSecurity Groupを触っていると違和感がありますが、EC2とVPCの関係を知っていると謎が解けます。

EC2-Classic

蛇足ですが、VPCが存在しない時代のEC2は「EC2-Classic」と呼ばれていました。下記のサイトも参考まで。

おまけ

週4稼働の現役クラウドエンジニアと並行して、毎日AWSの個別相談やグループ指導もお受けしています。もしご興味あればTwitter @RubiconLink のDMまでお問い合わせください。フォローも大歓迎です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1