<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cdkd on よ〜んの雑記</title><link>https://mu7889yoon.github.io/tags/cdkd/</link><description>Recent content in Cdkd on よ〜んの雑記</description><generator>Hugo</generator><language>ja-jp</language><lastBuildDate>Sat, 03 Oct 2026 01:42:32 +0900</lastBuildDate><atom:link href="https://mu7889yoon.github.io/tags/cdkd/index.xml" rel="self" type="application/rss+xml"/><item><title>L3 Constructをcdkdでデプロイしてみる</title><link>https://mu7889yoon.github.io/posts/trying-cdkd/</link><pubDate>Sat, 03 Oct 2026 01:42:32 +0900</pubDate><guid>https://mu7889yoon.github.io/posts/trying-cdkd/</guid><description>&lt;p&gt;よ〜んです。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mu7889yoon.github.io/posts/getting-start-with-spring-boot/"&gt;前回の記事&lt;/a&gt;では、Spring BootでシンプルなTodoアプリを作りました。&lt;/p&gt;
&lt;p&gt;今回は、そのアプリを動かすインフラをAWS CDKで書いて、&lt;a href="https://github.com/go-to-k/cdkd"&gt;cdkd&lt;/a&gt;からデプロイしてみます。&lt;/p&gt;
&lt;p&gt;気になっていたのは、L3 Constructすらもそのまま使えるのか、というところです。&lt;/p&gt;
&lt;h2 id="cdkd"&gt;cdkd&lt;a class="headline-hash" href="#cdkd" aria-label="「cdkd」見出しへのリンク"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;cdkdはCDK Directの略で、AWS CDKのアプリケーションを、CloudFormationのスタック経由ではなくAWS SDKやCloud Control APIを使ってデプロイするツールです。&lt;/p&gt;
&lt;p&gt;CDKのコードからCloudFormationテンプレートを生成し、それをもとにcdkdがリソースを作成・更新します。インフラを書くのはCDK、デプロイを担当するのはcdkd、という分担ですね。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/go-to-k/cdkd/blob/v0.294.0/README.md"&gt;cdkd - README&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="前回のアプリをawsへ"&gt;前回のアプリをAWSへ&lt;a class="headline-hash" href="#%e5%89%8d%e5%9b%9e%e3%81%ae%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92aws%e3%81%b8" aria-label="「前回のアプリをAWSへ」見出しへのリンク"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://mu7889yoon.github.io/posts/getting-start-with-spring-boot/"&gt;ちょっと前の記事&lt;/a&gt;で作ったTodoアプリを、ALB付きのECS Fargateで動かし、Aurora PostgreSQL Serverless v2に接続する構成をCDKで書きました。&lt;/p&gt;
&lt;p&gt;コードは&lt;a href="https://github.com/mu7889yoon/examples/tree/main/getting-started-with-spring-boot-and-cdkd"&gt;examplesリポジトリ&lt;/a&gt;に置いてあります。&lt;/p&gt;
&lt;h2 id="applicationloadbalancedfargateservicel3-constructについて"&gt;ApplicationLoadBalancedFargateService(L3 Construct)について&lt;a class="headline-hash" href="#applicationloadbalancedfargateservicel3-construct%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6" aria-label="「ApplicationLoadBalancedFargateService(L3 Construct)について」見出しへのリンク"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;L3 Constructは、複数のリソースをよく使う構成としてまとめたものです。今回なら、ECSサービスやALBなどを一つのConstructから定義できます。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/mu7889yoon/examples/blob/main/getting-started-with-spring-boot-and-cdkd/infra/lib/todo-stack.ts"&gt;実際のコード&lt;/a&gt;から、設定の一部を抜粋するとこんな感じです。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;service&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;ecsPatterns&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ApplicationLoadBalancedFargateService&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;ApiService&amp;#39;&lt;/span&gt;, {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;cluster&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;publicLoadBalancer&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;listenerPort&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;80&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;assignPublicIp&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;cpu&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;256&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;memoryLimitMiB&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;512&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// その他の設定は省略
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ここは普段のCDKの書き方です。今回使ったFargateのL3 Constructは、cdkd専用の定義へ書き直すことなく利用できました！！！&lt;/p&gt;
&lt;p&gt;できるだろうな〜と思いつつ検証しましたが、すごいの一言です。。。&lt;/p&gt;
&lt;h2 id="デプロイしてみる"&gt;デプロイしてみる&lt;a class="headline-hash" href="#%e3%83%87%e3%83%97%e3%83%ad%e3%82%a4%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b" aria-label="「デプロイしてみる」見出しへのリンク"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;デプロイ時には&lt;code&gt;--full-wait&lt;/code&gt;を付けました。cdkdはデフォルトではECSサービスの安定状態まで待ちませんが、このオプションを付けるとそこまで待つようになります。&lt;/p&gt;
&lt;p&gt;参考：&lt;a href="https://github.com/go-to-k/cdkd/blob/v0.294.0/docs/wait-modes.md"&gt;Wait Modes&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;デプロイ後にアクセスすると、前回作ったTodo画面が確認できました。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ(？)&lt;a class="headline-hash" href="#%e3%81%be%e3%81%a8%e3%82%81" aria-label="「まとめ(？)」見出しへのリンク"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;今回試したかったのは、L3 Constructも普通に使えるのかというところです。&lt;/p&gt;
&lt;p&gt;速度比較はしていませんが、L3を使いながら、デプロイの仕組みを変えて素早くデプロイできた体験は素晴らしかったです。&lt;/p&gt;
&lt;p&gt;ではでは〜&lt;/p&gt;</description></item></channel></rss>