

小林聡美
名前:小林 聡美(こばやし さとみ) ニックネーム:さと・さとみん 年齢:25歳 性別:女性 職業:季節・暮らし系ブログを運営するブロガー/たまにライター業も受注 居住地:東京都杉並区・阿佐ヶ谷の1Kアパート(築15年・駅徒歩7分) 出身地:長野県松本市(自然と山に囲まれた町で育つ) 身長:158cm 血液型:A型 誕生日:1999年5月12日 趣味: ・カフェで執筆&読書(特にエッセイと季節の暮らし本) ・季節の写真を撮ること(桜・紅葉・初雪など) ・和菓子&お茶めぐり ・街歩きと神社巡り ・レトロ雑貨収集 ・Netflixで癒し系ドラマ鑑賞 性格:落ち着いていると言われるが、心の中は好奇心旺盛。丁寧でコツコツ型、感性豊か。慎重派だけどやると決めたことはとことん追求するタイプ。ちょっと天然で方向音痴。ひとり時間が好きだが、人の話を聞くのも得意。 1日のタイムスケジュール(平日): 時間 行動 6:30 起床。白湯を飲んでストレッチ、ベランダから天気をチェック 7:00 朝ごはん兼SNSチェック(Instagram・Xに季節の写真を投稿することも) 8:00 自宅のデスクでブログ作成・リサーチ開始 10:30 近所のカフェに移動して作業(記事執筆・写真整理) 12:30 昼食。カフェかコンビニおにぎり+味噌汁 13:00 午後の執筆タイム。主に記事の構成づくりや装飾、アイキャッチ作成など 16:00 夕方の散歩・写真撮影(神社や商店街。季節の風景探し) 17:30 帰宅して軽めの家事(洗濯・夕飯準備) 18:30 晩ごはん&YouTube or Netflixでリラックス 20:00 投稿記事の最終チェック・予約投稿設定 21:30 読書や日記タイム(今日の出来事や感じたことをメモ) 23:00 就寝前のストレッチ&アロマ。23:30に就寝
cdkとsamの違いを徹底解説:初心者にもわかりやすく、使い分けのヒント
クラウドでアプリを動かすとき、インフラをどう定義するかがとても大事です。CDKとSAMは、どちらもAWSのリソースを作るための道具ですが、作るときの考え方や使い方が違います。CDKはプログラミング言語を使ってインフラをコードで表現する考え方で、TypeScriptやPython、Java、C#など、慣れている言語でリソースを組み立てます。そのため、複雑なロジックや再利用可能な部品を作るのが得意です。
一方、SAM(Serverless Application Model)は、サーバーレスアプリをシンプルに表現するテンプレート言語です。主に Lambda、API Gateway、DynamoDB など、サーバーレスな構成を短い記述で定義するのに向いています。
この二つは同じAWSの世界にいますが、目的や適した場面が異なります。CDKは「コードでインフラを設計・再利用・拡張していく」ことに向いており、SAMは「サーバーレス構成を素早く実現する」ことに適しています。
どちらを選ぶかは、作るアプリの性質、チームのスキル、保守性の観点で決まります。たとえば、複雑なワークフローや長いライフサイクルを持つインフラを管理する場合はCDKが強みを発揮することが多いです。反対に、Lambda中心の小規模なサーバーレスアプリを短時間で市場に出したい場合はSAMが適していることが多いでしょう。
この違いを理解することで、デプロイの生産性だけでなく、後からの拡張性やチームの協業にも大きく影響します。
CDKとSAMの基本的な考え方の違い
まず大きな違いは「どう定義するか」という点です。CDKはインフラをコードとして扱い、プログラミングの力を使ってリソースを組み立てます。部品(Construct)を組み合わせ、条件分岐やループ、関数といった通常のソフトウェアの考え方をそのまま使えます。これにより、複雑なマルチサービスの依存関係を一つのコードとして管理でき、テスト・リファクタリングも他のアプリと同じ方法で行えます。
一方、SAMはサーバーレスを前提にしたテンプレート中心の設計です。LambdaやAPI Gateway、DynamoDBといったサーバーレスリソースを、比較的シンプルな記述で定義します。SAMはデプロイ手順、ローカルでの動作チェック、依存関係の解決など、サーバーレスアプリを回すためのエコシステムが一貫して用意されている点が特徴です。
この両者の考え方の違いを押さえると、実際の開発現場で「どの道具を選ぶべきか」が見えやすくなります。強みの異なる2つのアプローチを理解しておくと、将来のプロジェクトにもスムーズに適用できます。
実践的な使い分けと注意点
実際のプロジェクトでCDKとSAMを使い分けるときには、まず「アプリの性質」を考えましょう。サーバーレス中心で、リソースが比較的少なく、Lambdaの組み合わせが中心ならSAMが手早く動作させるのに向いています。逆に、複数のAWSサービスを組み合わせ、独自のロジックや高度な再利用性を求める場合はCDKが有利です。
また、チームのスキルセットも判断材料になります。プログラミングに慣れているチームはCDKを選ぶと、インフラをコードとして管理でき、CI/CDやテストの自動化も自然に組み込みやすいです。反対に、サーバーレスの運用が主で、テンプレート志向の方が合う場合はSAMを選ぶと学習コストが低く抑えられます。
導入時には、最初は小さなサンプルを作って両方を試すのがおすすめです。実際の運用で感じる「ビルド時間の差」「ローカルテストのしやすさ」「既存のCI/CDパイプラインへの組み込みやすさ」を体感することで、最適な選択肢が見えてきます。最後に、長期的な保守性を見据えて、再利用性を高める設計や、ドキュメント化を習慣化することが重要です。
ある日の学校帰り、友達のミナトと話していた。CDKとSAMの違いをどう説明するのが一番伝わるかを考えながら、ノートの端に図を描いた。CDKは『コードでインフラを作る』という考え方で、私たちが普段使うプログラミングの力をそのまま使える。これに対してSAMは『サーバーレスをすばやく定義する』テンプレートの道具だ。私はCDKで複雑な依存関係を作ってみたい気持ちと、SAMで手早く動くサーバーレスを組み立てたい気持ちの両方がある。だからこそ、プロジェクトごとに最適な道具を選ぶことが大事だと話し合った。結論としては、難しいロジックや再利用性を重視するならCDK、サーバーレスを迅速に立ち上げたいならSAM。友達とこの結論を確認し合い、次の課題で実際に試す計画を立てた。





















