一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • AWS CloudFormationを初見でさわった話

Cloudformationとは、AWSリソース(EC2、S3、VPC、RDSなど)をコードで定義・管理するためのサービスだ。

つまり、インフラをコードとして管理できるツールで、以下のような特徴がある

🌟 主な特徴

・YAMLまたはJSON形式のテンプレートで記述

・一貫性のあるデプロイが可能

・AWS CLI や AWS Console、SDKなどから実行できる

・「スタック」という単位でリソースをグループ化

・他のAWSサービス(IAM, Lambda, SNSなど)と簡単に統合

これまで自分はリソースを構築してはいたもののあくまで「手動(コンソール画面上でぽちぽちとやっていく)」だった。

その為、別環境用に同じリソースを作成するとなった場合やはりぽちぽち作業が必要となる。

それにより作業漏れや忘れなどがあり

「あれ、、前はちゃんと動いたのに。。」と既存のリソースとの各種設定のにらめっこが始まってしまう。。

それを回避するためにCloudformationはいわば必須の知識だったといえる。

 

🐸 IaCジェネレータで既存リソースをYAML出力しよう

じゃあどうやってそのコードYAMLを書けばいいの?どんな記述フォーマット?プロパティがあるの?

ご安心を。AWSには近年これに関する良いサービスが追加されていた。

その名もIaC(Infrastructure as Code)ジェネレータ

これを使えば自アカウントに紐づくリソースから、既存リソースを構築するためのコードを出力してくれる。

つまり、手動作成 ⇒ ジェネレータ出力すれば一からYAMLを作成せずともリソースをコード化できるのだ。

 

🐛スタックで一連の関連リソースを一元管理しよう

例えば以下の様に、一連のシステムで使うリソースをYAMLファイルに定義したとする。

・S3バケット

・EventBridge

・Lambda

・RDS

このYAMLファイルをCloudformationでインポートすると上記リソースが自動生成されるわけだが、

手動でぽちぽち構築した場合と異なり、

それらはスタックという単位で紐付くことになる。

このスタックを消せば追加したリソースは全て消える(設定により消えなくすることも可能)為、消し漏れによる無駄な課金が発生することもない。

また、システムの関連性も可視化できるので、

「システムAではこれらのリソースを使っているんだなぁ。。」と第三者も見て取れる。

 

🦋さいごに

Cloudformationは今まで名前は聞いたことは合っても実際に使ったことは無く。。

(というより自分はインフラ側は苦手で意識的に遠ざかっていたこともあり。。)

今回良い機会で触れることができた。

これからはYAMLベースでリソースを構築してしまうのもアリだなと思った。

The following two tabs change content below.

五十嵐 優介

最新記事 by 五十嵐 優介 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア