ほぼ週刊AWSマイスターシリーズ第6回 – CloudFormation編に参加しました
こんにちは。くろの(福田)です。
少し前になりますがAWSのオンラインセミナーシリーズである「ほぼ週刊AWSマイスターシリーズ」が開催されました。第6回目は片山さんによるCloudFormationでした。
■開催概要
- 日時:2011年11月1日(火)17時~18時
- 場所:オンラインセミナー
- 講師:AWS片山さん
[slideshare id=9973375&doc=aws-meister-cloudformation-111101042102-phpapp01]
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は海外ではすでにかなり使われているとの事。遺伝子解析分野などで使われているようです。
おしまい