SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

これだけは押さえておきたい! AWSサービス最新アップデート

IaCが大幅に高速・効率化して便利になった! AWS CloudFormationの最新アップデート

第21回 IaCジェネレーター、デプロイ時間の短縮

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本連載では、AWSに関して、なかなか時間がとれず最新のアップデートを追えていない方や、これからAWSを利用したいと考えている方に向けて、AWSから発表される数多あるサービスアップデートのうち、NTTデータのITスペシャリスト達がこれだけは押さえておくべきと厳選した内容を定期的に紹介します。本記事では、AWS CloudFormationに関して、AWS利用者の多くに要望されていた機能を紹介します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 AWSリソースをコードとして記載することで作成・管理を行うAWS CloudFormation(以下、CloudFormation)は多くの方が利用する機能ではないでしょうか。本記事では多くのCloudFormationユーザーにとって大変うれしい機能アップデートを紹介したいと思います。

既存AWSリソースをもとにしたCloudFormationの作成が可能に!「IaCジェネレーター」

 AWSで開発をする際には、いきなりCloudFormationのようなIaC(Infrastructure as a Code)ツールを使ってAWSリソースを作るということは実はあまりないのではないでしょうか? まずはマネジメントコンソール上で手作業でトライ&エラーをしながら、システムを組み上げてみて、その後にIaC化する場合が多いのではと思います。

 アップデート以前だと、作成済みのAWSリソースをもとにしてCloudFormationのテンプレートを作成することができず、一からCloudFormationテンプレートを作る必要がありました(昨今はConsole-to-Code等のCloudFormationテンプレートの作成を補助してくれる機能もリリースされていますが、まだまだ対応しているサービスが少ない状況です)。

 今回のアップデートであるIaCジェネレーターにより、作成済みのAWSリソースをもとにCloudFormationテンプレートを作成できるようになりました。

 例えば、以下画像のように既存のApplication Load Balancerをもとに同様のAWSリソースを作るためのCloudFormationテンプレートを作成できます。

既存のAWSリソースをもとにCloudFormationテンプレートを作成できる
既存のAWSリソースをもとにCloudFormationテンプレートを作成できる

 既存のリソースを指定した際は、関連するリソースも自動で抽出してくれます。

関連リソースも自動で抽出可能
関連リソースも自動で抽出可能

 非常に便利な機能ではあるのですが、いくつか制限があります。

 まずはIaCジェネレーターで作成されたテンプレートはそのままで使うことはできないことがほとんどです。例えば関連リソースでSubnetを選択した場合は、CloudFormationテンプレートとしては下記のようにもとにしたVPCのIDが入力されたものができ上がるので、適宜変更する必要があります。

EC2Subnet00subnetxxxxxxxx:
    UpdateReplacePolicy: "Retain"
    Type: "AWS::EC2::Subnet"
    DeletionPolicy: "Retain"
    Properties:
      VpcId: "vpc-xxxxxxxx"
      MapPublicIpOnLaunch: false
      EnableDns64: false
      AvailabilityZoneId: "apne1-az4"
      PrivateDnsNameOptionsOnLaunch:
        EnableResourceNameDnsARecord: false
        HostnameType: "ip-name"
        EnableResourceNameDnsAAAARecord: false
      CidrBlock: "10.4.128.0/20"
      Ipv6Native: false
      Tags:
      - Value: "xxxxxx-subnet-private1-ap-northeast-1a"
        Key: "Name"

 またIaCジェネレーターを利用する前には、既存リソースのスキャンを行う必要があるのですが、本記事執筆時点ではスキャンは1日に最大でも3回しか実施できません

 ※スキャン数の上限はスキャン対象のAWSリソース数によります。

 そのため、マネジメントコンソールでちょっと作り、すぐにそれをIaC化するというのは1日に何度でもできるわけではないので、ご注意ください。

 ちなみにIaCジェネレーターに対応していないAWSリソースもあります。IaCジェネレーターでは内部的にCloud Control APIというAWSリソースを共通的な方法で操作可能なAPIを利用しているため、Cloud Control APIをサポートしているAWSリソースのみがIaCジェネレーターによるCloudFormationテンプレートを作成できます。

 いくつかの制限があるものの、これによりIaC化のハードルがぐっと下がったのは間違いなく、多くの方が待ち望んでいたアップデートであったかと思います。

次のページ
CloudFormationのデプロイ時間が最大40%短縮

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
これだけは押さえておきたい! AWSサービス最新アップデート連載記事一覧

もっと読む

この記事の著者

奥村 康晃(株式会社NTTデータ)(オクムラ ヤスアキ)

 NTTデータ入社以来、クラウドサービスのAPIを連携させることで効率的な管理を可能とするクラウド管理プラットフォームの開発に従事。現在では、クラウド導入の技術コンサルや組織での技術戦略立案にも携わる。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19365 2024/04/17 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング