メニューを閉じる

テクノデジタルグループ

メニューを開く

2024.09.26

AWS

DevcontainerでCDKの開発環境を作ってみた

皆様こんにちは、テクノデジタルでインフラエンジニアをしています。

Mです。

最近まじめにゴルフの練習を始めましたが、ぜい肉が邪魔でうまくクラブを振れません 🫃🏻

さてさて、今回のお題は

前回の記事で「AWS Summit JapanにいってAWSCDKいいじゃん!と思った」という話をしたのですが、じゃあ実際どう使いはじめたの?という話になります。

技術スタック

環境構築にあたって使用したライブラリの一覧です。

  • volta
    • nodeランタイムバージョンマネージャ。Package.jsonにランタイムとパッケージマネージャのバージョンを記載しておけば自動でインストールしてワークフォルダ内でのパスをリンクしてくれる優れもの。(DevContainerが使えなかった場合にローカルで実行できるように救済措置用)
  • biome
    • TypeScriptに標準対応したLint&Formatter。ノーコンフィグ
  • Lefthook
    • npmでもバイナリでもインストールできるGitHooksマネージャ。
  • AWSCDK v2
  • Devcontainers/typescript-node:1-20-bullseye
    • マイクロソフトが提供しているTypeScriptプレインストールのコンテナイメージ(BaseはDevian)
  • Runcher Desktop

まずテンプレートを配布したい

インフラチーム全体でCDK+TypeScriptの構成を普及させるため、プロジェクトのテンプレートを作成しました。

Devcontainerについては難しいことはなく次の画像の通り、VSCodeでCtl+Shift+P ショートカットを押してdev containers: add dev container configuration files… を実行します。

WorkSpaceのルートに.devcontainer/devcontainer.json というフォルダとファイルが追加され、開発コンテナのベースイメージなどが記載された設定ファイルが作られました。(下記)

このファイルのfeaturesブロックにいろいろと拡張機能を入れてあげれば(上の画像ではすでに入ってますが)、イメージ作成時点で必要なライブラリを自動でダウンロードしてくれるので、使用者は依存関係についてあまり考える必要がなくなるかもしれないです……

正直なところ、LefthookもBiomeもNodeがあればnpm install すればばいいし、nodeランタイムもvoltaのインストールをアナウンスするかinstall.shを作ってそれで初期化すればdevcontainerはいらないかもしれないですが、まあ、そこはおいおい運用してみて改善(Devcontainerを使う理由を見つける)できればいいなという具合です。(早口)

改善点

まだ使用していないので何とも言えないですが、LocalStack環境を整備する部分はまだうまくいっていないので、どうにかしたいです。あとは、Readmeがまだまだ薄っぺらいので、必要最低限に充実させていきたいと思っています。

最後に

どのような開発環境がいいのかは開発者毎に異なると思います。しかし、チーム開発をする上ではベースラインを決めておく事が望ましい場合が多く、環境をそろえる為にセットアップマニュアルを頑張って整備しているチームも未だに多いのではないでしょうか。

今回の記事がそんな苦労への一助になれば幸いです。

テクノデジタルでは、その一歩先へ踏み出して、ワンタッチ開発環境の普及をめざして、いろいろやっていきたいと思います。


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事