この記事は、Japan AWS Top Engineers のアイレット株式会社 アジャイル事業部 データ分析基盤セクション 佐藤竜也さん監修です。
こんにちは。カスタマー支援事業部の古川です。
AWS CloudFormationの特徴や料金、使い方について解説します。
AWS CloudFormation とは
AWS CloudFormation(以下、CloudFormation)は、AWSが提供するInfrastructure as Code (IaC) サービスです。これは、インフラストラクチャをコードとして管理し、定義したテンプレートに基づいてAWSリソースを自動で構築・管理する仕組みです。
事前に定義したテンプレートに基づいて自動でリソースを作成してくれる上、変更や管理も安全で簡単にできるサービスが備わっています。
テンプレートに定義できること
テンプレートはコードで記述します。YAMLまたはJSON形式を選択できます。
- リソースの種類と設定
- どのAWSリソースを使うか(EC2インスタンス、データベースなど)
- どのような設定にするか(インスタンスタイプ、セキュリティグループなど)
- 依存関係
- リソースAは、リソースBが作成された後に作成されるべき。という順番のこと。
- 自身で設定することができますが、原則CloudFormationが自動で最適な順番通りに構築してくれます。
- 一部、明示的に依存関係を宣言する必要があるリソースもあります。詳細はDependOn属性が必須の場合をご覧ください。
CloudFormationを使用するメリット
1.素早くグローバル展開
手動でAWSマネジメントコンソールを操作してリソースを作成するのは、非常に手間と時間がかかります。作成するリソースの数や種類によっては、作成中の待機時間だけで10分以上かかることも…。
CloudFormationを使用すると、一貫性と繰り返し性を保ちながら、複数のAWSアカウントと複数のリージョンにわたって共通のリソースセットを自動的かつ安全にプロビジョニングできます。自動構築のため、人為的な設定ミスが起こることもありません。
参考:CloudFormationユーザーガイド CloudFormationとは?
2.安全で簡単な変更
CloudFormationには、リソースを変更する前に変更が実行中のリソースに与える影響を確認できる機能があります。これを変更セットと言います。変更セットで確認してから更新を行うことで、実行中のリソースが急に停止してしまったり、消えてしまったりするリスクを未然に特定し、安全に更新ができます。
万が一エラーが発生した場合でも、自動的に既知の最後の動作状態に戻る仕組みを備えています。この機能により、システムのダウンタイムを最小限に抑え、安全な復旧を実現します。
変更は選択したリージョンとアカウントのスタックに自動的に素早く適用されます。1つ1つ操作する必要はありません。
参考:CloudFormationユーザーガイド Stack Setによるスタックの管理
3.バージョン管理
テンプレートをコードとして管理するため、Gitなどの標準のソースコード管理プロセスを使用してバージョン変更履歴を追跡できます。この機能によって、どのような変更が、いつ、誰に行われたかを正確に把握できます。
また、「開発環境」「ステージング環境」「本番環境」など環境を分けて保存することで、各環境を何度でも再現できるため、開発効率を上げることができます。
参考:CloudFormationユーザーガイド CloudFormationとは?
利用料金
CloudFormationの基本料金は無料です。
作成した AWS リソースに対しては、手動で作成した場合と同様の料金が発生します。 従量課金制で、使用した分だけ料金が発生します。
ただし、AWSとAlexaに関するリソース以外のサードパーティーサービスをテンプレートに含める場合には、料金が発生します。こちらが料金表です。
| 無料利用枠 | 1,000 件のハンドラーオペレーション/月/アカウント |
| ハンドラーオペレーション | ハンドラーオペレーションごとに 0.0009 USD |
| ハンドラーオペレーション期間 | 1 秒あたり 0.00008 USD ※最初の 30 秒はオペレーションごとに追加費用なしで提供されます。1 つのオペレーションの使用時間が 30 秒より長い場合、30 秒のしきい値を超えた部分に対し毎秒 0.00008 USD が課金されます。 |
ハンドラーオペレーションとは、リソースに対する 作成 、更新、削除、読み取り、一覧表示のアクションを指します。つまり表の無料利用枠とは、1ヶ月に、1つのアカウントで、1000回まで無料で操作できるということです。それ以降は1回の操作ごとに、0.0009USDかかります。
ハンドラーオペレーション期間とは、1回の処理にかかる時間のことです。1000回の無料利用枠に関わらず、30秒を超えた部分については1秒ごとに0.00008USDかかります。
詳しくは AWS CloudFormation 料金 をご覧ください。
導入事例
CloudFormationを活用し、リソースを全世界に素早く展開する活用事例をご紹介します。
参考:AWS 導入事例
課題:AWSでシステム構築を行なっていたある企業は、日本で構築した環境を、各地域の法的要件を満たしながら、欧州、タイ、インドの AWS リージョンに展開する必要がありました。
地域によって少しずつ設定を変えながら、全てのリソースを手動で構築するには設定ミスのリスクに加え、多くの手間と時間がかかることが課題でした。
結果: CloudFormationを活用し、各地域の法的要件に合わせた微調整を行うことで安全にコードを管理できました。各リージョンに同一のサーバー環境設定を展開できるため、通常、リージョンごとに 2 ~ 3 か月かかるデプロイが、わずか 2 週間で完了しました。さらにAWSが提供する継続的な値下げやSavings Plansを通じて、よりコストの最適化を目指しています。
最後に
最後まで読んでいただきありがとうございました。CloudFormationは、インフラストラクチャをコードとして保存し、スムーズに複製や変更を可能にする強力なサービスです。CloudFormationを活用することで手動作業から解放され、より自身の業務に集中できるようになります。
ぜひ他の25卒のブログリレーもご覧ください!