2020年6月24日水曜日

AWS CDKを使いたくなった話

めちゃめちゃ久々に書いてみようとしたらなんか色々死んでた orz

お仕事が平気で徹夜カマしたり同じことばっかやって書くネタなくなったり気力続かなかったりグラブったりといろいろ理由付けてサボってたらいつの間にかインフラ構築とかもやるようになったので備忘録φ(._. )メモメモ

■ まず AWS CDKってなんやねん


AWS CDK とは 「AWS Cloud Development Kit」の略で、
ざっくり言えば 【CloudFormationビルドツール】的なもの。
これまで(と言ってもCDKが出たのは結構前だが)は一生懸命 YAMLやJsonでつらつら長々と書いていたCloudFormationを
さっくりコードから生成してしまおう、というもの。
使える言語もこの記事を書いている時点では 
「The AWS CDK supports TypeScript, JavaScript, Python, Java, and C#/.Net.」
と人気どころは押さえてあるんじゃないですかね知らんけど。

自分はずっとJavaScript(NodeJS)ばっか触ってたのでJavaScript…ではなくTypeScriptメインでいじってます。タイプセーフって安心する。
ので NodeJS-TypeScript環境でつらつら書いていく。


■ セットアップ


あらかじめNodeをインストールしておき、かつ
npm i -g aws-cdk
して cdk コマンドを使えるようにしておく。
あとは
mkdir sample 
cd sample
cdk init --language typescript
とプロジェクト用のディレクトリを切ってinit コマンドを実行すれば 必要な一式を自動生成してくれる。
なお「cdkをグローバルインストールしたくない」と予め
npm init -y 
npm i -S aws-cdk
npx cdk init --language typescript
とやろうとすると、
`cdk init` cannot be run in a non-empty directory!
と怒られるので諦めた(一敗)。

あとは個人的なカスタムとして、 package.jsonの scriptsに
    "deploy": "npm run build & npx cdk deploy"
を追加。一応READMEにコマンドが色々載ってるが、
  • buildとdeployでコマンドが違う
  • build忘れてdeployする(というかして一日ほど無駄にした)
  • cdkのバージョンはglobalではなくプロダクトのものに合わせておきたい
等の理由からdeployスクリプトを用意しておきたかった。

|・ω・).。o0( なんか長くなってきたから一旦ここで切る )

0 件のコメント:

コメントを投稿

AWS CDKで立てたEC2インスタンスのTimeZoneとかいじりたかった話

EC2を立てることはできたけど、立てたインスタンスは UTCのままだし設定ファイルとかいちいちscpしてくるのはダルい。 当初UserDataでなんとかしようとしたものの、「書く量がヤバいしメンテしにくい」と悩んでいたところ見かけたのが  AWS::CloudFormation:...