0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CloudFormation使ってみた

Posted at

初めに

現在設計を行っているプレイリストシステムを実際に構築を始めようと思い立ちました!と同時にせっかくなのでCloudFormationを使ってみようという気が起きました。
IaC(Infra as Code:インフラのコード化)は重要ということはちょいちょい耳に挟んでいたのでいつか試してみねばと思っていたので言い機会です。この記事ではCloudFormationとはから、実際に簡単なリソースを作るところまでやってみたいと思います。

CloudFormationとは

CloudFormationはプログラミング言語やテキストファイルを使用してAWSリソースを自動で構築するサービスです。所望のAWS環境をテンプレート化しておくことで、同じ環境を作成する時間を削減することができます。CloudFormation特徴としては以下があげられます。

・AWSリソースを自動で作成できる
・テンプレートを作成すると、同じ構成を何度も構築できる
・利用料金は無料(利用するのに必要なリソース分の料金がかかる)

【初心者必見】はじめてのAWS CloudFormation

Pythonなどのプログラム言語でも書けるんですね。。勝手にYAML,JSONけいしきだけだとおもっていました。とはいえ、実際のPJで使用することを考えるとオーソドックスなYAMLがよさそうなのでこの記事内でもこの2つを使用します。

テンプレートの書き方

VPCを作る例だと下記のようになります。

AWSTemplateFormatVersion: "2010-09-09"        ・・・①

Description:        ・・・②
  test vpc cloudformation

Resources:        ・・・③
  TestVPC:   ・・・(A)
    Type: AWS::EC2::VPC   ・・・(B)
    Properties:   ・・・(C)
      CidrBlock: 10.0.0.0/16
      Tags:
        - Key: Name
          Value: test-vpc-01

参考:https://blog.serverworks.co.jp/2021/12/08/174707

テンプレートは①~③の構成から成り立ちます。

①・・・テンプレートファイルのバージョン(今のところ"2010-09-09" のみサポート)

②・・・スタックの説明欄に入る言葉を記載

③・・・リソースの定義
 (A)・・・リソースの名前(この例だとVPCの名前)
 (B)・・・リソースのタイプ ※すべてのリソースタイプはこちらを参照
 (C)・・・リソースの設定値(タイプが異なると、設定値の記述方法が異なります)

VPCを作ってみた

上記の設定で実際にVPCを作ってみましょう。

CloudFormationのスタート画面から「スタックの作成」を選択します。(スタックはテンプレートから作成されるリソースの集合のことです。)

スクリーンショット 2022-10-06 172248.png

テンプレートを選択します。今回は「テンプレートの書き方」の章で例に挙げたテンプレートの内容を「cloudformation-template-01.txt」というファイル名で自分のPCに保存し、「テンプレートファイルのアップロード」からアップロードしました。(yamlファイルですが、ファイルの拡張子はtxtでも問題ありませんでした。)

スクリーンショット 2022-10-06 152032.png

スタックの名前を入力します。
VPCのCIDRはスタックごとに入力したいといった場合は、テンプレートの書き方次第でこの画面で入力できるようです。が、今回はパラメータは全部決め打ちなので特に入力は行えないです。

スクリーンショット 2022-10-06 152106.png

スタックのいろいろなオプションを選択していきます。
ここでのタグはスタック自体のタグを指定します。
また、アクセス許可というのは、CloudFormationがリソースを作成する際に使用するロールを指定します。ロールを指定しない場合は、コンソールを操作しているIAMユーザーの情報を利用するらしいです。(この例ではAdministratorFullAccess権限のIAMユーザーで操作)

スクリーンショット 2022-10-06 152311.png

続いて、スタックの失敗時のオプションはデフォルトのままにしましました。ここで「次へ」を選択すると確認画面が表示され、「スタックの作成」を選択します。

スクリーンショット 2022-10-06 152327.png

作成をすると、スタックの詳細画面に遷移します。ステータスが「CREATE_IN_PROGRESS」(作成中)なのでしばらく待ち、ブラウザの更新ボタンを押します。

スクリーンショット 2022-10-06 152358.png

スタータスが、「CREATE_COMPLETE」になりました!

スクリーンショット 2022-10-06 152419.png

VPCの画面を見に行くと、テンプレートに書いた値でVPCが作られていることを確認できました!!

スクリーンショット 2022-10-06 152521.png

まとめ

VPC1つ作成するだけだと、思いのほか簡単にできました。ただ、これがもっと複雑な構成や、後からリソースを変更するとなるとやっかいそうです。。何はともあれ、IaCの第一歩を踏み出せました。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?