Weitere ähnliche Inhalte
Ähnlich wie Cloud formation デザイナーで捗ろう (20)
Cloud formation デザイナーで捗ろう
- 29. テキストエディタの便利機能 – ショートカット
キー 操作
Ctrl+Space リソースで使用可能なプロパティを表示
Ctrl+F 検索
Ctrl+ テキストのフォーマット
Ctrl+Shift+ 空白を削除
Windows https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer-json-editor.html
Mac http://dev.classmethod.jp/cloud/aws/cfn-designer-macos-auto-complete-not-working/
ショートカット
- 59. まとめ
• CloudFormationは便利だが、つらい
• デザイナーは捗る
グラフィカルな画面
ショートカット
バリデーション
• お好きなエディタでどうぞ
テキストエディタであればOK
• デザイナーを始めたい
ウォークスルーで覚えましょう
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/CHAP_Using.html
Hinweis der Redaktion
- CloudFormationデザイナーで捗ろうというテーマで、わたくし あべが発表させて頂きます。
- 簡単に自己紹介させて頂きます。
クラスメソッドAWSコンサルティング部に所属しております。阿部と申します。
普段は東京で主にAWSのインフラ構築を担当しています。
SNSでは、いかのアイコンを使っていまして、Twitterではあべいかというアカウントでつぶやいています。
好きなAWSサービスはCloudFormationデザイナーです。
今回は、CloudFormationとデザイナーの良さをお伝えできればと思います。
- 本日のアジェンダです。
まず、CloudFormationの基本を振り返ります。
CloudFormationが、どんなサービスでどんなメリットがあるのか確認します。
次にCloufFormationデザイナーでどれだけ捗るのかを、
サンプルテンプレートと、1からのテンプレート作成でご紹介します。
デザイナー捗るんですが、デメリットもありますのでご紹介し、
最後にまとめとさせていただきます
- では、CloudFormationの基本を振り返ってみます。
- CloudFormationがそもそもどんなサービスなのか復習します。
CloudFormationは、テンプレートに基づいて、AWSの環境を自動構築してくれるサービスです。
AWS上のリソース、例えば、EC2やVPC、ELBなどを構築します。
ユーザーは構成情報が書かれたテンプレートを準備しておきます。
テンプレートはJSON形式のテキストファイルです。
内容としては、EC2のインスタンスタイプやVPCのCIDRなどなど構成情報を記載します。
テンプレートが出来たら、Create Stackという操作を行う事で、環境構築が行われます。
- CloudFormationのメリットを確認します。
まず、環境の複製があります。一度テンプレート化してしまえば、同等のAWS環境がすぐに手に入ります。
Create Stackの操作ですぐに環境が出来上がりますので、デモや一時的な検証環境に適しています。
環境が不要になったら、Delete Stackという操作を行う事で、AWSリソースをまとめて削除する事が出来ます。
スライドに記載していませんが、
AWSのEC2やVPCなどのインフラストラクチャーをコードで管理できるため、ソフトウェアのようにバージョン管理が出来るメリットなどがあります。
- CloudFormationの活用例をご紹介します。
まず、標準テンプレートの作成です。
マネージメントコンソールからの構築では、エンジニアによって、命名やセキュリティ方針が異なってしまいます。
命名やセキュリティグループのルールについても、テンプレート化できるので、組織で統一した環境をつくることが可能です
自分たちでテンプレートをつくり、利用するパターンになります。
次に、ISVベンダーが提供するテンプレートです。
AWS上で製品を展開するISVベンダーは、よくCloudFormationテンプレートを公開しています。
ユーザーからすると、Create Stackをするだけで製品を試せるメリットがあります。
エンジニアは、自分でテンプレートを作成することもあり、
また、ほかの人が書いたテンプレートを読んだり、編集することもあるという事になります。
- 利用料金について、CloudFormation自体の料金は無料です。
テンプレートから構築したリソースについて、課金が発生します。
EC2とELBを作成したのであれば、EC2とELBについての課金となります。
- サンプルテンプレートの閲覧と編集を通して、CloudFormationデザイナーが捗る事をご紹介します。
- AWSでは、サービスごとにCloudFormationテンプレートを公開しています。
その中から、一番簡単そうなEC2のテンプレートをピックアップしました。
セキュリティグループ内にEC2インスタンスを作成するテンプレートです。
表示を選択して、テンプレートの内容を確認してみます。
- ブラウザ上にテンプレートが表示されますので、適当なテキストエディタにコピー&ペーストしてみます。
すると、テンプレートが206行あることがわかります。
- そう206行あります。
- 石段で表現するとこんな感じです。
- 206行が多いか少ないか、受け取り方には個人差があると思います。
私は、簡単そうなテンプレートを選んだのに206行もあるのかーと感じてしまいます。
ただ、実際にテンプレートを書いていると、数百行~数千行になってしまいがちです。
サンプルが悪いわけではありません。
といつつ、他の人が書いた数百行のテンプレートを読むのは、つらさを感じてしまいます。
- そんなモヤモヤを解消するのが、CloudFormationデザイナーです。
昨年の10月にリリースされたAWS公式のGUIエディターです。
- これから、CloudFormationデザイナーで
サンプルテンプレートを参照、編集し、
バリデーションをかけたうえで、
保存、Create Stackする一連の流れをご紹介します。
- サンプルテンプレートの画面に戻ります。
デザイナーで表示というリンクがありますので、選択してみましょう。
- CloudFormationデザイナーが起動します。
画面の上がキャンバスで、下がテキストエディタになっています。
- ドーーーーーンと、
キャンバスの表示拡大してみます。
すると、EC2が1台、セキュリティグループが1つのテンプレートであることがわかります。
- この機能、すばらしいですよね
206行のテンプレートを読まずとも、概要を把握することができました。
- 何行でも同じです
- テキストエディタに注目します。
エディタは項目ごとにタブで分かれています。
タブを切り替えていくと、206行のうち、ほとんどがMappingsという項目であることがわかります。
サンプルテンプレートは、旧世代のインスタンスタイプとマルチリージョンに対応する形で作られていて、行数が増えていました。
テンプレートのボリュームが大きくなったときに、タブ表示の利便性を感じることが出来ると思います。
- サンプルテンプレートのEC2インスタンスのプロパティを確認します。
まず、キャンバスでEC2を選択します。
すると、テキストエディタに設定内容が表示されます。
テンプレートのボリュームが増えると、何がどこに書いてあるかわからなくなりがちですが、
デザイナーであれば、エディタとキャンバスが連動しますので、見たい設定をすぐに確認できます。
- リソースのプロパティの編集にうつります。
EC2の削除保護の有効化をする例について、考えます。
まず、CloudFormationのリファレンスを開き、EC2::Instanceの章を開きます。
すると、プロパティ名と書式が記載されていますので、
テンプレートを編集します。
CloudFormationテンプレートを作成、編集するにあたり、リファレンスは必要になってきます。
- 大事なので、協調します。
CloudFormationテンプレートの読み書きには、リファレンスが必要です!!
- デザイナーでは、リファレンスへのリンクを提供しています。
対象のリソースを右クリックし、はてなマークを選択すると、そのリソースのリファレンスが開かれます。
必要なリファレンスをすぐに確認できるという事です。
- 大事なので、協調します。
CloudFormationテンプレートの読み書きには、リファレンスが必要です!!
- 便利機能として、ショートカットも提供されます。
利用可能なプロパティの表示、検索、フォーマット、空白の削除が使えます。
特に、プロパティの表示は使う事が多いです。
削除保護の有効化では、DisableApiTerminationプロパティを使います。
これを入力するには、スペルミスが怖いしですから、ショートカットを積極的に使っていきます。
ショートカットは、WinodowsとMacで異なるので気をつけてください。
スライドの表はWindowsのキーバインドです。
- 編集が完了したら、デザイナーのツールバーに注目します。
構文チェックのアイコンがありますので、こまめにチェックします。
- 誤りがあった場合は、
テキストエディタで修正する。もしくは、Undo,Redoを使って、修正します。
- 修正がおわったら、PCのローカルまたは、S3バケットにテンプレートを保存します。
基本的にはローカルにダウンロードして、バージョン管理システムで管理する形が良いかと思います。
- スタックをつくる場合は、Create Stackを選択し、作成画面にうつります。
- Create Stackの画面に遷移します。
Create Stackの画面では、パラメータやオプションを入力します。
- CloudFormationがAWS環境を自動構築してくれます。
私たちのタスクは完了しました。
- やってやったぜ!って事です。
- デザイナーのはかどりポイントを整理します。
テンプレートの可視化ということで、Canvusでグラフィカルにテンプレートの状況を確認することができます。
テンプレートの中身を確認する場合、まずはCunvusで表示してみるような使い方が出来ます。
便利機能として、大きく3つありました。
1つめがリファレンスへのリンクです。必要なリファレンスをすぐに参照できます。
2つ目がショートカットです。
主に、リソースで利用可能なプロパティを表示する機能を使って、スペルミスを防止します。
最後にバリデートです。テンプレートの書式チェックを行うことができます。
他人が書いたテンプレートでも、デザイナーにかかれば、参照も編集も簡単に出来て、捗ります。
- 1からテンプレートを作る際に、デザイナーで捗ることをご紹介します。
- デザイナーを使って、1からテンプレートをつくるケースを考えてみます。
テンプレートには、VPC、サブネット、セキュリティグループ、EC2を記載します。
テンプレートづくりには、3つのタスクが必要になります。
1つ目が、Canvusで絵を描くことです。Cunvusにサービスアイコンを配置していきます。
2つ目が、論理名の変更です。デザイナーが自動でつける名前をわかりやすいものに変更します。
3つ目が、プロパティの入力です。VPCのプロパティであれば、CIDRなどがありますし、EC2のプロパティであれば、インスタンスタイプなどがあります。
1つずつ解説していきます。
- まずは、Canvasで絵を描くタスクです。
キャンバスの左メニューには、AWSサービスのアイコンが並んでいます。
左メニューからVPCアイコンをドラッグし、キャンバスにドロップします。
- 以上の操作で、テンプレートにVPCが追加されました。
プロパティについては、空の状態です。
また、リソースには、自動で名前が付けられます。
この例ですと、”EC2VPC59UPC”です。
自動でつけられた名前では、テンプレートが読みづらくなってしまうため、変更します。
- エディタの鉛筆マークを選択することで、論理名を変更することができます。
基本的に、ドラッグ&ドロップと論理名の変更はセットと考えます。
論理名は、テンプレート内で一意である必要があります。
わかりやすいかつ、かぶらない名前に変更します。
- サブネットを追加します。VPCと同様にアイコンをドラッグし、ドロップします。
このとき、VPCの上にドロップします。
- VPCの上にドロップする事で、サブネットのプロパティにVPCへのリンクが記載されます。
プロパティのVpcIDで、Ref関数を使ってリンクされています。
このように、Canvasの操作でリソースの関連付けを行うことができます。
- EC2とセキュリティグループを、配置します。
EC2はサブネットの上に配置し、セキュリティグループは、VPCの上に配置します。
EC2とセキュリティグループの関連付けは、線で表現します。
EC2の丸を選択すると線が表示されるので、セキュリティグループに伸ばします。
- Canvusの操作で、リソースを関連付けることができました。
当然、Canvasを見れば、リソースの関連付けを確認することが出来ます。
- 最後の作業がプロパティの入力です。
リファレンスを参照しつつ、ショートカットを駆使して記載します。
VPCであれば、CIDR、EC2であれば、AMI IDやインスタンスタイプなどを記載します。
必要であれば、ParamterやMapping、Outputについても、記載します。
例えば、Parameterを使えば、Create Stack時にパラメータを渡すことが出来ます。
- テンプレートが出来たら、
- CloudFormationがAWS環境を自動構築してくれます。
私たちのタスクは完了しました。
- やってやったぜって事です。
- 1からテンプレートを作成する流れ、
Canvasで絵をかき、論理名を変更し、プロパティを入力する事をご説明しました。
Canvasで絵を描くことで、
2点の操作、リソースの作成と関連付けを行いました。
これらの操作を直感的に行えるのは、デザイナーの捗りポイントです。
- CloudFormationが捗ることをご紹介してきましたが、デメリットもあります。
- 大きいデメリットは、メタデータが入ることだと考えています。
キャンバスでの表示に必要な、サイズや、位置情報がテンプレートに入ってきます。
結果、テンプレートのサイズが大きくなってしまいます。
デザイナーを使っていれば、気になることはほとんどないですが、
デザイナーで作成したテンプレートを、ほかのエディターで開くと邪魔に感じてしまいます。
デメリットか、メリットか判断が難しいものとして、自動整形があります。
改行やインデントが自動ではいります。
誰が書いても同じようなテンプレートが出来上がるメリットがありますがが、気が利かないなと思うことはあります。
- デザイナー以外の選択肢もあります。
Template Editor for Eclipse は、AWS公式のツールです。公式ツールだけあぅて、機能が豊富です。
普段、Eclipseをお使いのかたは、第1選択肢に入ってくると思います。
また、CloudFormationテンプレートはテキストですので、
普段使いのエディタを使う手もあります。
JSON用のプラグインを入れたり、サードパーティーツールを使う形になるかと思います。
- やってやったぜって事です。
- さいごにまとめにはいります。
- まとめです。
CloudFormationは、環境の複製ができたり、標準構成をつくるなど、便利な機能です。
ただ、行数が増えることで閲覧や編集が難しくなりがちです。
CloudFormationデザイナーは、グラフィカルな画面に加えて
ショートカットやバリデーションなどの便利機能があり、捗ります。
デザイナーをお勧めしましたが、CloudFormationテンプレートはあくまでテキストです。
お好きなテキストエディタを使って、捗って頂ければと思います。
デザイナーをはじめたいというかたは、AWSが出しているウォークスルーを試してみてください。
CloudFormationの基本とデザイナーの使い方を習得することができます。
以上で発表を終わらせて頂きます。