
設定する事項が多く、意外と大変なAWSの環境構築。手作業には人為的ミスがつきもので、ミスを防ぐには時間がかかってしまうものです。こうしたAWSの環境構築の悩みを解決するのが、環境を簡単に複製できるAWS CloudFormationです。AWS CloudFormationをうまく活用すれば、効率的に環境を構築できます。今回の記事では、AWS CloudFormationのサービスの概要や導入するメリットとともに、費用や活用事例についてご紹介します。
目次
AWS CloudFormationとは
AWS CloudFormationは、AWSの環境構築の自動化や複製の簡略化ができるサービスです。AWSの環境構築に必要なリソースの設定やプロビジョニングを「テンプレート」として作成しておき、そのテンプレートを適用させることで、すぐに利用できる状態までセットアップできます。このテンプレートによって作成されるリソース群を「スタック」と呼びます。AWSのリソースはスタック単位で管理され、スタックが削除されると、スタックに紐づくリソースが削除されます。
AWS CloudFormationのテンプレート作成方法
AWS CloudFormationでテンプレートを作成する方法としては、JSON形式かYAML形式のテキストファイルを手動で作成する方法と、「AWS CloudFormation Designer」という公式のツールを使って作成する方法の2種類があります。
JSON形式またはYAML形式で、テキストファイルを作成
AWS公式サイトで用意されているサンプルテンプレートをもとに、テキストファイルを作成する方法です。AWS CloudFormationはリージョンごとに条件が異なるため、AWS公式サイトのサンプルテンプレートもリージョンごとに用意されています。
AWS CloudFormation DesignerもしくはAWS Infrastructure Composerで作成
テキストファイルでは、正しく構成できているか直感的にわかりにくい、という難点があります。そこで役立つのが、AWS CloudFormationのデザインツール「AWS CloudFormation Designer」です。AWS CloudFormation Designerを使えば、ドラッグ&ドロップでテンプレートを作成できるため、構成全体をイメージしながら編集できます。
また、AWS CloudFormation Designerの改良版として「AWS Infrastructure Composer」というツールもリリースされています。AWS Infrastructure Composerでは、さまざまなリソースを「カード」として、ドラッグ・ドロップすることで設定を行えるようになっており、利便性がさらに向上しています。
AWS CloudFormationの料金
AWS CloudFormation自体は、無料で利用できます。ただし、基本的にAWS CloudFormationを単独で利用することはありません。AWS CloudFormationのテンプレートで環境を構築する際には、リソースであるAmazon EC2やELBなどの料金が発生します。リソースの料金は、手動で作成した場合と同様です。
AWS CloudFormationを利用するメリット
AWS CloudFormationを利用するメリットとしては、主に以下の4点が挙げられます。
環境構築にかかる時間を短縮できる
手動で環境を構築する場合は、開発者がそれぞれのリソースを個別に管理して設定することになるため、時間や手間がかかります。AWS CloudFormationで一度テンプレートを作成しておくと、同じ設定の環境を構築する場合にテンプレートを用いてすぐに環境を構築できるため、構築にかかる時間を大幅に短縮可能です。
設定ミスが少なくなる
手動での環境構築の場合、設定ミスというリスクが伴います。環境構築で設定ミスをしてしまうと、余計なコストがかかったり、セキュリティ上の問題が発生したりと、他の問題を引き起こす恐れがあります。同じ環境の設定であれば、AWS CloudFormationのテンプレートを使うことで、設定ミスを防ぐことができます。
リソースを可視化できる
テンプレートには、Amazon EC2やS3バケットなど利用しているリソースの全体像を記述するため、テンプレートの作成はリソースの可視化にもつながります。全体像を把握できるため、無駄なリソースを使うことも少なくなるでしょう。
バージョン管理ができる
テンプレートとなるテキストファイルはJSON形式やYAML形式で記述されることから、Gitなどのバージョン管理システムを利用できます。バージョン管理システムを用いると作業履歴がわかるため、問題が起こった場合にも原因を究明しやすくなります。
AWS CloudFormationのユースケース
続いて、AWS CloudFormationのユースケースを2つご紹介します。
同じ設定の環境構築
検証のためにテスト環境と本番環境を用意する場合、テスト環境と本番環境が同じ設定でなければ、正しい検証はできません。しかし、手作業で環境を構築すると、設定のミスで差異が生まれる恐れがあります。テスト環境で検証時に起きなかった問題が、本番環境で発生することも考えられます。同一の設定で複数の環境を構築する際には、AWS CloudFormationが役立ちます。また、複数のリソースをまとめて環境構築したい場合は管理が煩雑となるため、特にテンプレートが役に立ちます。
パラメータに応じたリソースの異なる環境の構築
AWS CloudFormationでは、パラメータを指定することで、1つのテンプレートを使って環境ごとにリソースの設定を変えることもできます。これは、上記のように全く同じ環境ではなく、開発環境と本番環境でリソースの設定を変えたいケースで活用できます。例えば、本番環境のみマルチAZ構成にしたい、という場合などです。事前に環境情報を表すタグをテンプレートに追加し、環境ごとの設定を記載しておけば、スタック作成時に環境に応じたリソース設定に基づいて環境を構築することができます。
災害やシステム障害からの復旧対応
災害やシステム障害からの復旧においても、AWS CloudFormationが使えます。災害やシステム障害によって本番環境が利用できなくなった場合に、その環境を構築する際に利用したテンプレートを使えば、同じ環境を迅速に構築可能です。サービスダウンの時間が少なくなり、ビジネスの継続性を確保できるでしょう。
AWS CloudFormationの活用事例
最後に、AWS CloudFormationの活用事例をご紹介します。
FCバルセロナ
FCバルセロナは、スペインのバルセロナを本拠地とする、世界的に人気のあるサッカーチームです。ITプロバイダーのGnuineと提携し、6,000以上のページと12,000枚以上の写真があるWebサイトの運営や、CMSである「Ubiquo Sports」を提供しています。
Ubiquo SportsはAWS上で稼働しており、Amazon Route 53やAmazon CloudFront、Amazon S3やAmazon EC2など複数のAWSサービスが活用されています。この環境構築の自動化とプロビジョニングをしているのが、AWS CloudFormationです。AWS CloudFormationを活用することで、すべてのインフラに対して1クリックでデプロイが可能になり、プラットフォームの細部を管理する手間とリソースを削減できました。
キヤノン株式会社(Canon)
キヤノン株式会社(Canon)はカメラなどの映像機器や、プリンター・複写機などの事務機器などを製造する日本の精密機器メーカーです。当時キヤノンでは「お客様に新たな価値を提供する」ことを目的に、クラウドと組み合わせたビジネスへのシフトを推進していました。開発においても、スピード感あるアジャイル開発の体制が必要となり、開発環境としてAWSが採用されたのです。
それまでは、オンプレミス環境でテスト環境と本番環境を作成し、修正パッチを適用させながら5~6年使い続けていました。そのためアップデートには手間がかかり、人為的なミスが起こるリスクがありました。実情として、別部門にテスト環境を構築する際にも、手動で環境を構築していたため、本番環境との差異があり、問題が生じるケースもあったといいます。
AWS CloudFormationを使うようになってからは、作成したインスタンスにパッチを当てる運用をやめ、容易に同じ設定の環境を構築できるようになりました。これにより管理コストの大幅削減を実現。また、アジャイル開発において、新しい環境をどんどん入れ替えていくことが可能になり、サービス開発のリーンサイクルを数多く回せるようになりました。
まとめ
AWSの環境を手動で構築していると、時間がかかるうえに人為的なミスも起きるリスクがあります。AWS CloudFormationを使えば、ミスなく同一の環境を構築でき、環境構築にまつわるさまざまなストレスから解放されるでしょう。環境構築の際の設定ミスや手間に悩んでいる方は、AWS CloudFormationを活用してみてはいかがでしょうか。AWS関連の導入や移行でお悩みの方は、TOKAIコミュニケーションズまでお気軽にご相談 ください。
関連サービス
おすすめ記事
-
2020.06.23
Amazon Connectで在宅勤務でも対応できる問合せ窓口を立ち上げてみた
-
2020.08.17
Datadogで実現するモニタリングとオペレーションのオートメーション化
-
2020.04.27
Amazon FSx for Windows ファイルサーバーへの移行と活用方法
-
2020.06.11
Amazon WorkSpacesとは?その特長をまとめてみた
-
2020.06.23
AWSのDevOpsサービスと当社マネージドサービスを活用したDevOpsの実装①~概念編~