🍀

CDKでGreengrassのスタックを構築してみた

2024/02/03に公開

概要

サンプルコード

https://github.com/FuminoriSugawara/cdk-greengrass-sample

サンプルコードの試し方

以下、ターミナルで作業を行う。
cdkディレクトリに移動する。

awsのprofileは環境ごとに置き換える。これはAWS CLIの設定ファイル(~/.aws/config~/.aws/credentials)で定義されている。

CDK deploy

AWS CDKの初期設定を行うために、cdk bootstrapを行う。

cdk bootstrap --profile={your-profile}

AWS CDKを使用してスタックをデプロイするために、cdk deployを行う。
このとき、outputs-fileオプションを使用してCfnOutputの結果をJSONファイルに出力する。

cdk deploy --profile={your-profile} --outputs-file ./cdk-output.json

deployが完了すると、cdkディレクトリ配下にcdk-output.jsonが生成される。

設定ファイルの生成

以下のコマンドを実行する。
この処理では、Greengrass Coreデバイスをインストールするために必要な権限を一時的に持つ認証情報を取得し、新たにJSONファイルを生成する。

AWS_PROFILE={your-profile} npx ts-node script/generateConfigFile.ts cdk-output.json

上記の処理が完了すると、greengrass-config.jsonが作成される。

Ubuntuマシンに設定ファイルとインストールスクリプト転送

.ssh/configにSSH接続先情報をyour-serverとして設定する。

生成されたgreengrass-config.jsonと、Greengrass CoreをインストールするシェルスクリプトinstallGreengrassCore.shをscpでUbuntuマシンに転送する。

scp script/installGreengrassCore.sh greengrass-config.json {your-server}:~

Ubuntuマシンでの作業

ubuntuマシンにssh接続し、以下のコマンドを実行し、Greengrass Coreをインストールする。

. ./installGreengrassCore.sh greengrass-config.json

AWSコンソールのGreengrassセクションに移動し、デバイス一覧でMyThingが登録されていることを確認する。

Discussion