ほぼ週刊AWSマイスターシリーズ第6回 – CloudFormation編に参加しました

AWS

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。くろの(福田)です。

少し前になりますがAWSのオンラインセミナーシリーズである「ほぼ週刊AWSマイスターシリーズ」が開催されました。第6回目は片山さんによるCloudFormationでした。

■開催概要

  • 日時:2011年11月1日(火)17時~18時
  • 場所:オンラインセミナー
  • 講師:AWS片山さん


AWSマイスターシリーズはほぼ毎週AWSの中の人がAWSの各サービスに関して詳細に解説をしてくれるとても^6ありがたいオンラインセミナーです。

クラスメソッドでは多くの社員がセミナーに参加しています。

 

■CloudFormation概要

  • EC2やELBなどを使ったAWSサービスのシステム構築を、設定ファイル(テンプレート)を元に行えるサービス
  • テンプレートを自由に作成できるため、自分好みのシステム構成が可能
  • テンプレートは、AWSのサービスを操るための新しい言語
  • CloudFormationの利用自体は無料
  • テンプレートに従って構成されたAWSサービスに対しての課金

■利用シーンと利点

  • 一度テンプレートを作成すれば、同じ構成を再現できる
  • ベストプラクティスが盛り込まれたテンプレートが使用可能
  • 起動時にパラメータを渡せる

■スタック

  • AWSリソースの集合の事
  • スタック単位でリソースの管理が可能。スタック破棄を実行すると、スタックに紐づくリソースを破棄することが可能
  • 使用するリソース及びリソースの構築順は、テンプレートの依存関係で決定

■テンプレート

JSON形式で記述する。

  • AWSTemplateFormationVersion
  • Description
  • Parameters
  • Mappings
  • Resources
  • Outputs

■Parameters

  • スタック構築時に値の入力が可能
  • データ型(String、Number、CommaDelimitedList)、デフォルト値、最小最大値等設定可能
  • Refと書くとParametersが変数のようになって、外部(AWS Management Console等)から指定できる

■Function

  • Ref(パラメータを参照する)
  • Fn::Base64(文字列をBase64エンコードする)
  • Fn::FindInMap(Mapから値を取り出す)
  • Fn::GetAtt(リソースから属性を取り出す)
  • Fn::GetAZs(指定リージョンのアベイラビリティゾーンを返す)
  • Fn::Join(文字列の連結)

■Mappings

  • キーとバリューのテーブル
  • 例えば、入力値やリージョンによって値が変わるようなものを決めるような使い方

■Resources

  • EC2やELB、RDSなど、起動するサービスを設定
  • リソース毎に決められたパラメータを設定する

■Outputs

  • スタック構築後に取得・表示したい情報の定義
  • 例えばアクセスURLやDBの通信先情報、作ったIAMユーザー名など後で外部で使用するもの
  • マネージメントコンソールから確認できるもので、スタックに関する情報を出力すると便利

 

CloudFormationは海外ではすでにかなり使われているとの事。遺伝子解析分野などで使われているようです。

おしまい

@Cronoloves