Slide 1

Slide 1 text

CloudFormationとCDKで Cloudflareリソースを 作成してみた @Cloudflare Meetup Sapporo Vol. 2 yushi kato

Slide 2

Slide 2 text

近況: 腰が痛いです 名前 : 加藤 裕士 居住地 : 札幌市中央区 好きなサービス : CFn・CDK 趣味 : インテリア・音楽 収集 DevTools JAWS-UG 配信部 AWS Multi-Region Comparison Hello, Everyone!

Slide 3

Slide 3 text

③ ターミナル(SetTypeConfiguration) 操作 MENU ⓪ 前提知識 ①CloudFlare 側でToken 発行 ④ 使ってみる ② ロール作成& 有効化&Token をSecrets Manager に格納

Slide 4

Slide 4 text

CloudFormation レジストリ???

Slide 5

Slide 5 text

マネコンからだと..

Slide 6

Slide 6 text

提供リージョン→ 2023 年11 月20 日時点で存在する CloudFormation レジストリの パブリックサードパーティ拡張機能について リソースタイプ↓

Slide 7

Slide 7 text

Round 1 ①CloudFlare 側でToken 発行

Slide 8

Slide 8 text

①CloudFlare 側でToken 発行

Slide 9

Slide 9 text

①CloudFlare 側でToken 発行

Slide 10

Slide 10 text

Failed.... NANDE YA! API トークン作成時に 以下に入力する値は CFn のIP( 当たり前のミス) ここにローカルのIP を入れたお疲れ山の私 CFN でも CDK でも

Slide 11

Slide 11 text

①CloudFlare 側でToken 発行

Slide 12

Slide 12 text

Round 2 ② ロール作成& 有効化 &Token をSecrets Manager に格納 Fn::ForEachj 組み込み関数を使ったテンプレ例の説明もついでに

Slide 13

Slide 13 text

② ロール作成& 有効化&Token をSecrets Manager に格納 CloudFormation テンプレートの場合 Fn::ForEach を利用して4 リソースタイプ分の ロールとレジストリのタイプアクティベーション、 シークレット(Token はパラメータで入力) をまとめて作成した例

Slide 14

Slide 14 text

各Token の入力するパラメーター +4 つの値があるリスト型のパラーメータを用意→ ② ロール作成& 有効化&Token をSecrets Manager に格納

Slide 15

Slide 15 text

←TypeList パラメータの4 つのテキスト( 黄色) に対応する テキスト( 赤色) をMappings セクションに用意 ② ロール作成& 有効化&Token をSecrets Manager に格納

Slide 16

Slide 16 text

←SecretsManager にToken 作成 ←4 つのCFn レジストリタイプを有効化 ② ロール作成& 有効化&Token をSecrets Manager に格納

Slide 17

Slide 17 text

←TypeActivation で指定するロールを作成 ※Fn;:ForEach 下にある為4 つ作成される ② ロール作成& 有効化&Token をSecrets Manager に格納

Slide 18

Slide 18 text

CDK の場合 ※ 機密情報であるToken は上記に含んでいません。 ② ロール作成& 有効化&Token をSecrets Manager に格納

Slide 19

Slide 19 text

Round 3 ③ ターミナル (SetTypeConfiguration) 操作

Slide 20

Slide 20 text

③ ターミナル(SetTypeConfiguration) 操作

Slide 21

Slide 21 text

③ ターミナル(SetTypeConfiguration) 操作

Slide 22

Slide 22 text

Round 4 Player 1 Player 2 Player 3 ④ 使ってみる

Slide 23

Slide 23 text

④ 使ってみる 値の後に カンマ いらない 値の後に カンマ いらない 論理ID が Type と 同階層に ある! 論理ID が Type と 同階層に ある! GITHUB 上のDoc にある example がyabai!! type のコロンが 一つ足りない type のコロンが 一つ足りない インデント どうなって んねん.. インデント どうなって んねん.. GetAt に IdAll が ない! GetAt に IdAll が ない! Properties がない Properties がない https://github.com/aws-ia/cloudformation-cloudflare-resource-providers

Slide 24

Slide 24 text

④ 使ってみる まずCloudflare の コンソール上から← をget Get!!! Get!!!

Slide 25

Slide 25 text

④ 使ってみる(DNS::Record の例) Succeeded!! Sugeee! ※YAML の例

Slide 26

Slide 26 text

④ 使ってみる(LoadBalancer::Moniter の例) OK!!

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

WAIT! @cdk-waf-cloudflare??

Slide 29

Slide 29 text

と飛びついて覗いてみましたが、 このコンストラクト自体が Cloudflare リソースの 作成を含むものではなさそう

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

ちょっとだけお金がかかってる ProcessResourceHandlers

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

そもそもTerraform でCloudflare リソースは作れる ( 下は発表当日にTerraform でR2 にBuckets を作ってみた) [ 参考]https://dev.classmethod.jp/articles/intro-cloudflare-r2-terraform/ こっちはA レコード

Slide 34

Slide 34 text

③Connpass のCloudflare Meetup にUP された資料は全部目を通した 【この資料の元ネタにしたブログ作成時点の私】 Cloudflare のサービスを殆ど知らない状態 (CFn レジストリで3rdParty 連携を試したかっただけの人) wrangler -h で出てくるコマンドを片っ端から叩いて結果を見てみるに挑戦 Youtube で“Cloudflare” と入力して表示された日本語動画を全部見る サービスを理解し始めてCloudFlare に対するモチベがめちゃ高い( ☜Now!!) やっと時間が出来たし調べてみよう

Slide 35

Slide 35 text

次回はcdk-tf でAWS とCloudflare を一緒に管理出来ないかや、 cf-terraforming 使ってみた話など身のある話をしたいと思います。 最後に..

Slide 36

Slide 36 text

Thank You For listening! See You Next Time! この後の発表楽しみにしています。