1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

初心者による初心者の為のIaC(CloudFormation)Pt.1 概要編 〜コードで書いてみな、飛ぶぞ〜

Last updated at Posted at 2022-03-17

はじめに

皆さんインフラ、コードで書いていますか?私は全く書いたことありません!!
『コードで書いてみな、飛ぶぞ』が口癖のIaC推進派インフラエンジニアの方に師事しております。
IaC???聞いたことあるケド…ってくらいの読者を想定しております。なんせ私も最近までワードしか知らなかったもので。
ただの勉強したことのアウトプットですが、興味ある方に少しでも参考になればと思います。

目次

Pt.1では

  • IaCのメリットデメリット
  • Terraform or CloudFormation ?
    の2項を扱っていきます!

IaCのメリットデメリット

メリット

  • インフラ構築の設定ミス、漏れが減る
    コンソールでポチポチする場合、設定をすっ飛ばしてしまったり、誤設定をしてしまう可能性がある。コード化するとミスが減りますね。

  • Gitで管理することができる
    Gitで管理できる、つまり構築や変更の差分をバージョン管理が可能になる。また、複数人でレビューができるようになるので、知見が共有できるようになります。

  • テンプレを用意しておけば似た構成ならコピペですぐ作れる
    コンソールだといちいち最初からポチポチしなければならないが、コードならコピペと多少の改変ですぐ同じインフラが構築できます。
    新規サービスを立ち上げる時も、個人で色々設定していじくりまわして遊ぶ時も非常に便利ですね。

デメリット

  • 変更もコードでしなければならない
    コードで構築した後にコンソールで変更するとコードと整合性がとれなくなってしまう。

  • 学習コストがかかる
    そらそうよ

(他にもメリットデメリットはあるのですが、本稿は初心者to初心者なので割愛しております。)

Terraform or CloudFormation ?

IaCといえばTerraformというイメージがあると思いますが、AWS公式のサービスでCloudFormation(CFn)というのもあります。
私としてはGCPはしばらく触らなそうなので、AWS公式サービスのCFnでもいいのでは?と思ったり。というわけで両者の特徴を見ていきましょう。

Terraform

  • 記述方式はHCL(HashiCorp Configuration Language)
    JSON互換ですが、バージョンによって書き方が変わってしまうのでちょっとハードル高いです。

  • AWSもGCPも対応している
    (初心者的には)これが一番メリットなのではないでしょうか?

  • CFnよりもネットの情報が多い
    QiitaではTerraformタグの記事は1840、CloudFormation記事は1150ヒットする。
    あれ、思ったより差があるな…?

CloudFormation

  • 記述方式はJSON或いはYAML
    はい、めっちゃ楽ですね。AWS内ではJSONで書かれていることが多いです。適当にポチポチしている私でも見かけるレベル。
    YAMLの方が読み書きしやすいので、今後例文はYAMLにて書いていきます。

  • AWSでしか使えない
    Terraformと違いAWSのみでしか利用できません。GCPを使っている方はこの時点でアウトですね。ですが差し当たりAWSしか使わない人も多いのではないのでしょうか?

  • 最新のフォーマットバージョンが”2010-09-09

つまり…12年弱書き方が変わってない…ってコト!?

ワ…!!ってどこからか聞こえてきそうですね、今も昔も変わらないフォーマットがここにあります。(もちろん設定値等は続々増えています。)
先のことはわかりませんが、一度習得すればずっと同じ書き方が通用しそうですね。
GCP+TFに浮気していたとしてもCFnは貴方を待ち続けている。かもしれない。

締め

どうでしょうか、IaCは知ってるけど、どういうメリットデメリットがあるのか、Terraformの他にどんな選択肢があるのか少しは知れましたでしょうか。
目下私はAWSを触っていく所存なのでCFnを選択致しました。(だってYAMLで書けるし…)
次回は CFnの記述方法を投稿したいと思います。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?