こんにちは!Tamaです!
『AWS CLIとCloudFormationでVPCを作ってEC2を立ち上げてみた』と題しまして、前回、前々回とそれぞれAWS CLIとCloudFormationを用いてVPC内にEC2インスタンスを立ち上げました。
今回はそれを踏まえてCLIとCloudFormationそれぞれの特徴と利点を考えていきます。
AWS CLI
特徴
• コマンドを用いコンソールでの構築以上に細かな設定を行うことができる
• コンソールでできてCLIでできないことはほぼない!
• Linuxなどを扱っていてコマンド入力に慣れている人向け
メリット
• 「Tab」キーによる候補表示、「help」コマンドを用いることでサービスに対してどんなことができるのかその場で確認ができる
• 詳細なパラメータの設定が可能
• 情報を一覧で取得することができる
• 入力したコマンドを元にでき自動化が容易
• 慣れると早い
• そのまま追加でデプロイすることも可能
• 画面の切り替えがない
デメリット
• CLIを使える環境を用意する必要がある
• スクリプト実行の場合ウェイトが必要など、工夫が必要な場合がある
• 情報を見るためには逐一コマンドで呼び出す必要がある
• コマンドラインに慣れていないと時間がかかる
CloudFormation
特徴
• テンプレートに基づいてGUIで構築することができる
• 個々のサービスを行き来する必要がない!
• あまりサーバ構築の経験がない人でも簡単に複雑な環境を作ることが可能
• CloudFormerを用いて一度構築した環境をテンプレートとして保存でき、テンプレートを元に何度でも構築することができる
メリット
• 運用テストを行うため同じ環境が必要な場合など同一環境が必要な時、真価を発揮
• テンプレートの中である程度の自由度を持たせることができ、構築時にパラメータを受け渡しインスタンスタイプやAMIの選択、ルートボリュームの指定などを行うことが可能、汎用性を持たせることができる
• デプロイ状況のチェックもでき、前のデプロイを待ってから自動で次をデプロイするため注視し続ける必要がない
• サンプルテンプレートも用意されており、LAMP構成などよく使われるものもある
• サンプルを参考にすることで一から作成するよりも手軽にテンプレートを用意できる
• テンプレートにエラーがある場合コンソール画面で指摘してくれる
• ソフトウェアのインストールもデプロイと同時に行える
• スタック単位で削除することができる。紐付けされたものが全て対象になり削除し忘れがない
• 自動で削除を行わないよう設定をすることも可能
デメリット
• テンプレートを作成する場合、サービスの指定方法や必要なパラメータなどCloudFormationの知識が必要
まとめ
3回に渡ってAWS CLIとCloudFormationの比較を行いました。
通常の構築を行う場合や、既存環境にサービスを追加デプロイする場合はCLI
テスト環境など同一環境の構築、LAMP構成などテンプレートがある場合にはCloudFormation
など用途に合わせて使い分けるのが良いのではないでしょうか。
構築に適した選択をできるかがSEの腕の見せどころですね!
最後まで読んでいただき、ありがとうございました!
またお会いしましょう!