Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloudflare初心者がIaCから基本構成を学んでみた

 Cloudflare初心者がIaCから基本構成を学んでみた

「Cloudflare Meetup Nagoya Kick Off!」の資料です。

Yuki_Kurono

March 28, 2023
Tweet

More Decks by Yuki_Kurono

Other Decks in Technology

Transcript

  1. Cloudflare初心者がIaCから基本構成を
    学んでみた
    黒野 雄稀 | 2023/3/28
    1
    Cloudflare Meetup Nagoya Kick Off!

    View Slide

  2. 自己紹介
    黒野 雄稀 Yuki Kurono
    kurono_98
    kurono
    アイレット株式会社 所属 
    普段はインフラ設計・構築や運用構築に従事
    2022 APN ALL AWS Certifications Engineers
    名古屋に住んでいるらしい
    Cloudflareは初心者
    2

    View Slide

  3. 3
    Cloudflareは詳しくないけど、
    IaCならいける!
    今のぼくの状態

    View Slide

  4. 4
    CloudflareってIacできるの!?

    View Slide

  5. 5
    CloudflareってIacできるの!?
    →できます。
    https://developers.cloudflare.com/terraform/

    View Slide

  6. 6
    だいたいのイメージ
    コード記述 デプロイ

    View Slide

  7. 7
    作成する構成
    S3(コンテンツ)

    View Slide

  8. 8
    書き方 part1
    terraform {
    cloudflare = {
    source = "cloudflare/cloudflare"
    version = "3.11.0"
    }
    }
    provider "cloudflare" {
    email = "[email protected]"
    api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
    }
    resource "cloudflare_zone" "hogehoge" {
    zone = "hogehoge.com"
    }
    最小限これくらいのコードでWebサイトの追加ができる。
    DNSの設定とかは別です。

    View Slide

  9. 9
    書き方 part2
    .name_serversを指定で登録するDNS名が配列取得できる。
    resource "cloudflare_zone" "example" {
    zone = "hogehoge.com"
    }
    resource "aws_route53domains_registered_domain" "example" {
    domain_name = "hogehoge.com"
    name_server {
    name = cloudflare_zone.example.name_servers[0]
    }
    name_server {
    name = cloudflare_zone.example.name_servers[1]
    }
    }

    View Slide

  10. 10
    書き方 part2
    curlでちゃんとレスポンスが返ってくるか確認
    $curl http://hogehoge.com



    タイトル


    Cloudflare最高!


    ヨシ!

    View Slide

  11. 11
    なにが嬉しいのか
    ● バックエンドのAWSなどのリソースと併せて管理できる
    ● 複数作成する場合には再利用性があって良い
    ○ なかなか、無い気がするけど
    ● IaCで得られる恩恵はそのまま受け取れるはず

    View Slide

  12. 12
    使ってみた感想
    ● 個人的にTerraformで管理することが多いのでありがた

    ● コンソールで入門するよりも理解はしやすい印象
    ○ コンソールだとある程度ラップされてるので
    ● 使ってる人がすごく多いわけではないので、ドキュメ
    ント系が若干少なめ
    ○ リソースへの対応自体はかなりできてそう
    resource "cloudflare_zone" "hogehoge" {
    # account_id = "xxxxxxxxxxxxxxxx" # 不要
    zone = "hogehoge.com"
    }
    ドキュメントには必要って書いてあったのに要らないらしい →

    View Slide

  13. 13

    View Slide