🍀
CDKでGreengrassのスタックを構築してみた
概要
- AWS CDK でGreengrassのデプロイができるようにしてみる
- CustomResourceを使う
- 参考にしたのはaws-iot-greengrass-v2-using-aws-cdkのレポジトリのコード
- https://github.com/aws-samples/aws-iot-greengrass-v2-using-aws-cdk
サンプルコード
サンプルコードの試し方
以下、ターミナルで作業を行う。
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