0
0

Git BashからAWS CDKしてみる

Last updated at Posted at 2024-05-04

やりたいこと

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バケット情報などを追記して、、

cdk-sample-stack.js
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

マネジメントコンソールからも確認できました。
image.png

まとめ

最後まで実際にやってみて、おそらくGit Bash使わなくても、PowershellやコマンドプロンプトでもAWS CDK使えるのでは?と思いました。
ただ、AWS公式もUnixコマンドメインで載せていたりもするので、Git Bashを使う価値はあるかなと考えます。

Terraformばっかりやってきましたが、AWS CDK屋としても一歩を踏み出しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0