🍀
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