やりたいこと
Windows環境からGit Bash使ってAWS CDK触ってみたい!
背景
世の中にはWSLを使ったAWS CDKインストール手順はあふれていますが
なかなか Git Bashを使った方法はなさそうでした。
Linuxベースのコマンドを使うという意味ではWSLもGit Bashも一緒ですが
Git Bashのほうが直感的に「今C:\Users\xxx フォルダ配下を触ってる~」感があって好きなんですよね。
WSLだと仮想的にUbuntu等を立ち上げてる感覚なので、「今はどっちのOS?」「ファイルどこ?」になりやすいというか。
案外、Git Bash経由のAWS CDKインストール記事ってないかなと思ったので作成してみました。
1. Git Bash インストール
Windows版 Git Bashはここからダウンロードできます。 https://gitforwindows.org/
以降のコマンドはGit Bashのプロンプト上で実施します。
2. AWS CLI インストール
Windows版 AWS CLIはここからダウンロードできます。 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html
aws configureコマンドで対象のAWSアカウントと紐づけておきましょう。
$ aws configure
AWS Access Key ID [None]: ********
AWS Secret Access Key [None]: ********
Default region name [None]: ap-northeast-1
Default output format [None]:
3. Node.jsインストール
今回 AWS CDKの言語は標準でも採用されているTypeScriptを使用します。
TypeScriptを使用するということは、、Node.jsのインストールが必要ですね。
(このあたりうまく言語化できていないので、後ほど腹落ちしてから記載追加するかもしれません。)
Windows版 Node.jsはここからダウンロードできます。 https://nodejs.org/en/download
node --versionコマンドでバージョンが表示されればおk。
$ node --version
v20.12.2
4. AWS CDK インストール
次はAWS CDKインストールです。
npmコマンドとはNode.jsのパッケージコマンドで、ライブラリインストール等を行うコマンドとなります。
$ npm install -g aws-cdk
added 1 package in 2s
npm notice
npm notice New minor version of npm available! 10.5.0 -> 10.7.0
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v10.7.0>
npm notice Run `npm install -g npm@10.7.0` to update!
npm notice
cdk --versionコマンドでバージョンが表示されればおk。
$ cdk --version
2.140.0 (build 46168aa)
5. AWS CDK でS3バケットを作成してみる
あとはよくあるCDKセットアップ~デプロイの流れで行けそうです。
参考
AWS Black Belt Online Seminar / AWS Cloud Development Kit (CDK)
P33 のコマンドをそのまま実行します。
$ mkdir cdk-sample
$ cd cdk-sample
$ npx aws-cdk init app --language=typescript
・・・・・・
Executing npm install...
✅ All done!
$ npx aws-cdk bootstrap
・・・・・・
✅ Environment aws://339712720800/ap-northeast-1 bootstrapped (no changes).
あとはC:\Users\xxx\cdk-sample\lib配下にあるcdk-sample-stack.jsにS3バケット情報などを追記して、、
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
// import * as sqs from 'aws-cdk-lib/aws-sqs';
import * as s3 from 'aws-cdk-lib/aws-s3';
export class CdkSampleStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// The code that defines your stack goes here
const bucket = new s3.Bucket(this, 'CreateBucket', {
bucketName: "akiau6bucket",
versioned: true
});
// example resource
// const queue = new sqs.Queue(this, 'CdkSampleQueue', {
// visibilityTimeout: cdk.Duration.seconds(300)
// });
}
}
cdk diffコマンドで環境との差分を確認して、、
$ cdk diff CdkSampleStack
・・・・・
Resources
[+] AWS::S3::Bucket CreateBucket CreateBucketEFE7EF15
デプロイします。
$ cdk deploy CdkSampleStack
・・・・
✅ CdkSampleStack
✨ Deployment time: 37.75s
まとめ
最後まで実際にやってみて、おそらくGit Bash使わなくても、PowershellやコマンドプロンプトでもAWS CDK使えるのでは?と思いました。
ただ、AWS公式もUnixコマンドメインで載せていたりもするので、Git Bashを使う価値はあるかなと考えます。
Terraformばっかりやってきましたが、AWS CDK屋としても一歩を踏み出しました。