LoginSignup
1
2

More than 5 years have passed since last update.

CloudFormationの基本のキ

Posted at

AWSのサービス"CloudFormation"をについての勉強メモ

AWS CloudFormationとは

  • AWSが提供するInfrastructure as Codeを実現するためのサービス
  • AWSリソースの設定やプロビジョニングを担ってくれる

Infrastructure as Codeとは

  • 一言で言うと、ITインフラの構築や維持作業をコード化すること

メリット

  • 自動化
    • インフラ構築をコード化し、それを実行することで素早く・正確にインフラを構築する
  • 冪等性
    • 人の手を介さないため、一度コードを作ってしまえば、ミスなく同じ環境を同じように構築可能
    • 「冪等性」と言う言葉は数学界で用いられる言葉で、1回の操作でもn回の操作でも結果が変わらないこと
  • 変更管理
    • 再利用性の高いコードとして管理することで、インフラ設定をバージョン管理でき、変更後の差分が分かりやすくなる

デメリット

  • 学習コスト
    • ツールを利用するのに、まずそのツールを理解しなければならない
  • 部分変更に時間がかかる
    • サーバーの設定を少しいじるだけでも、コードを修正して適用になるため、手作業よりも時間がかかる

CloudFormation実行の主な流れ

  1. テンプレートを作成する
    • テンプレートの拡張子はyamlとjsonがある
    • 特別な理由がない場合は可読性が高いので、yamlを用いるのが良いと言われている
  2. スタックを作成する
    • スタックはCloudFormationで構築するインフラのひとかたまり
    • =テンプレートごとの単位

基本のテンプレート

スクリーンショット 2019-03-30 22.06.18.png

  • 9つのセクションを記述できる
  • ここではよく使うセクションについて詳しく書きます

AWSTemplateFormatVersion(形式バージョン)

  • バージョン指定することでテンプレートの機能を識別する
  • 現在、2010-09-09のみなので、自動的に指定する
  • スクリーンショット 2019-03-30 18.54.58.png

Description

  • CloudFormationの説明
  • AWSコンソールではスタック一覧の説明タブに表示される
  • スクリーンショット 2019-03-30 18.57.02.png
  • スクリーンショット 2019-03-30 22.37.27.png

Parameters

  • テンプレート実行時に任意の値を設定したい場合に記述する
  • スクリーンショット 2019-03-30 19.03.51.png
  • スクリーンショット 2019-03-30 22.39.04.png

Resources

  • 構築するAWSリソースを記述する
  • スクリーンショット 2019-03-30 22.35.12.png
  • スクリーンショット 2019-03-30 22.43.45.png

Outputs

  • リソースを出力する値を記述する
  • 例えば、インスタンスのPublicIPなど出力したりする
  • スクリーンショット 2019-03-30 22.11.19.png
  • スクリーンショット 2019-03-30 22.46.45.png
1
2
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
2