LoginSignup
109
76

More than 3 years have passed since last update.

【AWS】terraformとCloudformationを比較してみた【IaC】

Last updated at Posted at 2019-07-09

はじめに

クラウドのインフラの運用コストとか管理コストとかの削減のために
インフラのコード化(Infrastructure as Code)の重要性がどんどん上がってきています。

AWSでそれを実現するツールとして有名なのが
terraform、cloudformationあたりだと思います。

IaC導入したい、けどどっちを使ったらいいの?っていうのが疑問としてずっとありました。
ただ調べてもなかなか理解できなかったので
実際にどっちも使ってみて、その比較をしてみました。あくまで感想です。

今回ツールそのものの使い方については記載していません。

感想

terraform cloudformation
OSSである。情報が多い
バージョンが上がるごとにどんどん使いやすくなっている。機能も増えている
コミュニティmoduleの存在
AWSのサービスである。サポートをしっかり受けられる
基本的にCLIで実行terraformコマンド terraform plan terraform applyだけ覚えておけばなんとかなる 基本的にGUIで実行。aws cloudformationコマンドもあるが、オプションが多いので学習コストが高い。
IAMの認証で実行する。
それぞれのローカル環境で実行することが基本のためセキュリティを意識する必要がある。
AWSで閉じられるのでセキュリティで考えることが少ない
少しずつ始められる 最初の設計が大事
stackの連携、管理する範囲をしっかり決めておく必要がある
一度stack化すると削除⇒作成という流れを踏まなければいけないため
独自のスクリプト言語(.tf)を用いる json、yaml形式を用いる
複数プラットフォームに対応
AWSに縛られない
AWS専用サービス
他のAWSサービスと連携がスムーズ
インポートが簡単。terraform importコマンドを利用。 import機能がある。
CI/CD始めやすい。JenkinsやCircleCI等外部ツールとも連携しやすい Code4兄弟と連携させてCI/CD化できる。

まとめ

AWSサービスのみの利用、1から作成するのであればCloudFormation
他のクラウドも使ってる、外部ツールの利用が多い、既存環境をコード化したいのであればTerraform

個人的にはTerraformを押します。自由度が高いため。

ちなみに個人環境ではterraform + cloudformationのハイブリット構成をとっています。
IAMの管理とかセキュリティに関わる部分はcloudformationにして
VPC、EC2等インフラに関わる部分はterraformにしています。

間違いあったらすみません。
いろんなご意見募集します!

追記(2019/11/18)

CloudFormationにインポート機能が追加されました。

参考:
https://dev.classmethod.jp/cloud/aws/cloudformation-import-existing-resources/

かなりイケてます。AWS強い。

109
76
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
109
76