今回はインターネット接続が不可能なケースで、AWSネットワーク内に閉じた状態でGreenGrassを自動プロビジョニングするために必要な構成を紹介します。
前提
- GreenGrassに必要なJavaSDK・GreenGrassCore Installerは外部から取得しS3に配置する必要があります
- エッジ端末の空き容量は2GB程度必要
今回やりたいこと。
インターネットなしの環境でも自動プロビジョニングを行う事。
今回の参考は以下。
上記のページにはインターネット接続がない場合に「手動でプロビジョニングを行う必要がある」と書いてあるが、今後のスケーラビリティを考慮して極力手動オペレーションを削減したかったため、GreenGrassの自動プロビジョニングを利用することを目指す。

手動インストールではThingの作成・証明書の配置・yamlの設定ファイル記載と、ミスしそうなポイントが多いためこれを回避するためにGreenGrassの自動プロビジョニングを利用する。
ネットワーク構成
後のプロビジョニングで利用するLamdaは記載していません。
今回のケースでは、サードパーティのSaaSネットワークにGreenGrassをインストールするEdgeデバイスがあり、そのVPCにはVPCエンドポイントを作成できません。そこで、自分が利用するVPC(My VPC)にVPCエンドポイントを作成し、各種マネージドサービスに到達させる。
作成すべきVPCエンドポイント
IAMは東京リージョンでホストされていないためus-east1にVPC Endpointを作成してそこに到達させる必要がある。
東京リージョン : ap-northeast1
- iot.api
- iot.data
- iot.credential
- greengrass
- sts
- s3(Interface型)
バージニアリージョン : us-east1
- iam
作成上の考慮点
以下の制約からRoute53にVPCエンドポイントへのレコードを追記し、セキュリティグループで許可する必要がある。
PrivateDNS非対応
IoTCoreのVPCエンドポイントはPrivateDNS利用不可のため、iot.とつくVPCエンドポイントへルーティングするDNSレコードをRoute53に作成する必要がある。
VPCPeering経由でVPC Endpointに到達不可
VPC Endpoint は 作成された VPC 内からしか自動で利用されない。
そのため VPC Peering先の VPC(third party SaaS) から VPC Endpoint を利用する場合は、Private DNS が効かず、自動ルーティングも行われません。このため、Route53 の Private Hosted Zone に VPC Endpoint(iot.*, sts, iam など)向けの DNS レコードを手動で作成し、Peering 側からも解決できるようにする必要がある。
インストール時の流れ
以下の流れで自動プロビジョニングを行います。
事前準備:S3に必要なファイルを格納
- JavaSDK
- GreenGrassCoreInstaller
