COLUMN
AWS CloudFormationでリソースの構築を自動化
AWS CloudFormation は、テキストファイルを使用してファイルを作成することにより、AWSリソースの構築や再構築の自動化を実現することができる、AWSが提供する共通言語です。自動化により構築や運用の手間や負担を大きく軽減させられるだけではなく、リソースの可視化により再現性を持たせることができるなどのメリットが享受できます。
今回は、AWS CloudFormationの概要やAWSが推奨するベストプラクティスなどについて紹介します。
目次:
AWS CloudFormationとは?
AWS CloudFormationは、どのようなものなのでしょうか。
AWS CloudFormationの概要
AWS CloudFormationはAmazon Elastic Compute Cloud (EC2)やAmazon Relational Database Service (Amazon RDS)などのAWSリソースプロビジョニングのためのサービスです。通常、リソースを作成する際にはAWSマネジメントコンソールやAWS CLIなどを使用して、一つひとつ設定やプログラム作成を行いますが、AWS CloudFormationを使ってテンプレートを作成すれば同じ構成を何度も利用することができます。具体的には、JSON/YAML形式のテキストで記述されたテンプレートを、AWS CloudFormation のフレームワークでスタック(単一もしくは複数のテンプレートにより作成される、管理可能なリソースの集合体・コレクション)を作成・更新します。そして、スタックを一つのかたまり(管理対象)として利用し、設計・設定することによりAWSリソースをプロビジョニングします。
少しややこしいのですが、「テンプレート」は、どのAWSリソースをどのような設定で記述するかを記述したもので、「スタック」はテンプレートからプロビジョニングされるAWSリソースの集合体、スタック単位での管理ができるものです。スタックを作成したり更新したりすることにより、複数のリソースをまとめて管理・更新することができます。
AWS CloudFormationのメリット
AWS CloudFormationを利用することで、以下のメリットが享受できます。
モデル化(同じインフラ構成をすぐに再現できる)
AWSマネジメントコンソールで作成する際には同じ操作を何度も行う必要がありますが、AWS CloudFormationでモデル化することにより操作の手間を軽減できます。
自動デプロイ(プロビジョニングされる)
テンプレートからAWSリソースを自動構築できますので、作業が効率化できます。
インフラ構成をバージョン管理できる
インフラ構築手順をコード化(ファイル化)することにより、ソフトウェア管理と同様の手順で、インフラ構成のバージョン管理を行うことができます。
AWS CloudFormationの仕組み
AWS CloudFormationには通常利用時とスタック更新時の動作の流れがあります。
通常利用時のワークフロー
テンプレート・スタックの作成、自動プロビジョニングなどを行います。テンプレートの作成を行った際にはAmazon Simple Storage Service(Amazon S3)などに保存されます。
スタック更新時のワークフロー
更新を実行すると、現在のテンプレートとの違いを確認し必要なリソースのみが更新されます。更新を行わないリソースは、通常通り利用が可能です。更新を実行するリソースは、リソースの種類によって実行できるものとできないものとがあります。スタックの更新に関しても、S3などに保存されます。(ローカルコンピューターに保存されたテンプレートは自動的にAWSアカウントのS3バケットにアップロードされます)
更新時の挙動
インスタンスタイプを変更するとインスタンスは再起動します。
スタックの削除
スタックを削除すると、スタック内のAWSはすべて削除されます。
AWS CloudFormationの料金
AWS CloudFormationは、AWSアカウントをお持ちの方ならば無料で利用することができます。
AWS CloudFormationの使い方とベストプラクティス
AWS CloudFormationの使い方とベストプラクティスについて解説します。
AWS CloudFormationのテンプレートの書き方
AWS CloudFormationは、JSON形式もしくはYAML形式を使って記述します。どちらを使用するかは好みや慣れにもよりますが、YAMLの方が可読性に優れていると言われていますので、YMALを使用した方が便利でしょう。
AWS CloudFormationのベストプラクティス
AWS CloudFormationを安全かつ効率的に使用するベストプラクティスをいくつか紹介します。
スタックによるライフサイクルと所有権を持つリソースグループの管理
規模の大きなシステムではAWSのリソース管理が煩雑になりがちですが、共通ライフサイクルと所有権を持つリソースをグループ化することにより、スタックを単位とした管理が可能となります。所有権を持つ所有者は、対象のスタックを利用するスケジューリングなどにより、グループ化されたリソースを変更できるようになります。
共有リソースのエクスポート
スタックからリソースをエクスポート(出力)することにより、自動化したリソースを他のスタックに活用、もしくは別のスタックにあるリソースを使用してスタックを構築することができます。
IAM権限を利用したアクセス制御
IAMのアクセス権限に対応させた、AWS CloudFormationのアクセス制御(対象リソースに対してユーザーができる起動・更新・終了などのアクション)を行うこともできます。
テンプレートを再利用してスタックを複製できる(本番環境とテスト環境の場合など)
テンプレートを活用することにより、本番用の環境とテスト用の環境など複数のスタックを複製することができます。
スタックポリシーの利用
スタックポリシーを適切に設定・指定することにより、リソースを意図しない更新から防ぎ保護することができます。
AWS CloudFormationですべてのAWSリソースを管理する
スタックを更新する際には、AWS CloudFormationコンソール、API、またはAWS CLIを使用して更新するようにしてください。これら以外の方法によって更新した場合は、スタック間のテンプレートとスタックリースの現在の状態の間で不一致が起こり、エラーが発生する場合があります。
AWS CloudFormationにおける運用
AWS CloudFormationの運用方法についていくつかのパターンを解説します。
1テンプレート、1アーキテクチャ
1つのアーキテクチャ(システム構成)に対して、1つのテンプレートのみを利用するタイプです。簡易的な運用方法であるため、部分的にAWSを導入している企業などで活用されます。
個別テンプレートを1スタックで運用
Webサーバー、RDS、ストレージなどそれぞれに個別のテンプレートを設定し、ひとつのスタックで運用する方法です。スタックがひとつということで、手軽に管理・運用できるというメリットがあります。
個別テンプレートを個別スタックで運用
個別のテンプレートを個別スタックで運用するタイプです。より細やかな運用を行うことができますが、初期設定にかなり時間と手間をとられてしまうというデメリットがあります。
スタック間の連携
クロススタックの使用により、異なるスタックのテンプレートを活用してスタックを作成することができます。
まとめ
AWS CloudFormationを活用することで、AWSの構成を自動化することができます。AWSアカウントを持つ方であれば無料で利用できる機能なので、AWS CloudFormationを活用することで作業の軽減とリソース構築の再現性確保が期待できます。
AWS上のシステム構築や運用にはさまざまなバリエーションが考えられます。AWS CloudFormationのベストプラクティスを参考にするとAWS上のシステムの活用方法や運用・管理方法についての新たな気づきが得られるかもしれません。自社に合った方法でAWS CloudFormationを設計してみてはいかがでしょうか。
24時間365日対応可能なクラウド監視・運用代行で、あなたをシステム運用から解放します!
クラウド運用に興味がある人に読んで欲しいコラム:
RECOMMEND
その他のコラム
無料ダウンロード
自社のクラウド導入に必要な知識、ポイントを
この1冊に総まとめ!
あなたはクラウド化の
何の情報を知りたいですか?
- そもそも自社は本当にクラウド化すべき?オンプレとクラウドの違いは?
- 【AWS・Azure・Google Cloud】
どれが自社に最もマッチするの? - 情シス担当者の負荷を減らしてコストを軽減するクラウド化のポイントは?
- 自社のクラウド導入を実現するまでの具体的な流れ・検討する順番は?
初めての自社クラウド導入、
わからないことが多く困ってしまいますよね。
NTT東日本では
そんなあなたにクラウド導入に必要な情報を
1冊の冊子にまとめました!
クラウド化のポイントを知らずに導入を進めると、以下のような事になってしまうことも・・・
- システムインフラの維持にかかるトータルコストがあまり変わらない。。
- 情シス担当者の負担が減らない。。
- セキュリティ性・速度など、クラウド期待する効果を十分に享受できない。。
理想的なクラウド環境を実現するためにも、
最低限の4つのポイントを
抑えておきたいところです。
-
そもそも”クラウド化”とは?
その本質的なメリット・デメリット - 自社にとって
最適なクラウド環境構築のポイント - コストを抑えるための
具体的なコツ - 既存環境からスムーズにクラウド化を
実現するためのロードマップ
など、この1冊だけで自社のクラウド化のポイントが簡単に理解できます。
またNTT東日本でクラウド化を実現し
問題を解決した事例や、
導入サポートサービスも掲載しているので、
ぜひダウンロードして読んでみてください。
面倒でお困りのあなたへ
クラウドのご相談できます!
無料オンライン相談窓口
NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!
NTT東日本が選ばれる5つの理由
- クラウド導入を
0からワンストップでサポート可能! - 全体最適におけるコスト効率・業務効率の改善を
中立的にご提案 - クラウド環境に問題がないか、
第3者目線でチェック
してもらいたい - 安心の24時間・365日の対応・保守
- NTT東日本が保有する豊富なサービスの組み合わせで
”課題解決”と”コスト軽減”を両立
特に以下に当てはまる方はお気軽に
ご相談ください。
- さまざまな種類やクラウド提供事業者があってどれが自社に適切かわからない
- オンプレミスのままがよいのか、クラウド移行すべきなのか、迷っている
- オンプレミスとクラウド移行した際のコスト比較を行いたい
- AWSとAzure、どちらのクラウドが自社に適切かわからない
- クラウド環境に問題がないか、第3者目線でチェックしてもらいたい
- クラウド利用中、ネットワークの速度が遅くて業務に支障がでている
クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。