翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Docker コンテナとして AWS IoT Greengrass V2 実行されている にコンテナ化されたアプリケーションをデプロイする
Salih Bakir、Giuseppe Di Bella、Gustav Svalander、Amazon Web Services
概要
AWS IoT Greengrass Version 2は、Docker コンテナとしてデプロイされた場合、Docker アプリケーションコンテナの実行をネイティブにサポートしていません。このパターンは、Docker-in-Docker (DinD) 機能 AWS IoT Greengrass V2 を有効にする の最新バージョンに基づいてカスタムコンテナイメージを作成する方法を示しています。DinD を使用すると、 AWS IoT Greengrass V2 環境内でコンテナ化されたアプリケーションを実行できます。
このパターンは、スタンドアロンソリューションとしてデプロイすることも、Amazon ECS Anywhere などのコンテナオーケストレーションプラットフォームと統合することもできます。どちらのデプロイモデルでも、スケーラブルなコンテナベースのデプロイを有効にしながら、 AWS IoT SiteWise エッジ処理機能を含む完全な AWS IoT Greengrass V2 機能を維持します。
前提条件と制限事項
前提条件
アクティブ AWS アカウント。
一般的な AWS IoT Greengrass Version 2 前提条件については、 AWS IoT Greengrass Version 2 ドキュメントの「前提条件」を参照してください。
Linux、macOS、または Windows にインストールおよび設定された Docker エンジン。
Docker Compose (Docker Compose コマンドラインインターフェイス (CLI) を使用して Docker イメージを実行する場合)。
Linux オペレーティングシステム。
仮想化をサポートするホストサーバーを持つハイパーバイザー。
システム要件:
2 GB の RAM (最小)
使用可能なディスク容量 5 GB (最小)
AWS IoT SiteWise Edge の場合、16 GB の RAM と 50 GB の使用可能なディスク容量を備えた x86_64 クアッドコア CPU。 AWS IoT SiteWise データ処理の詳細については、 AWS IoT SiteWise ドキュメントの「データ処理パックの要件」を参照してください。
製品バージョン
AWS IoT Greengrass Version 2 バージョン 2.5.3 以降
Docker-in-Docker バージョン 1.0.0 以降
Docker Compose バージョン 1.22 以降
Docker エンジンバージョン 20.10.12 以降
制限事項
一部の AWS のサービス は では使用できません AWS リージョン。利用可能なリージョンについては、「AWS サービス (リージョン別)
」を参照してください。特定のエンドポイントについては、「サービスエンドポイントとクォータ」を参照して、サービスのリンクを選択してください。
アーキテクチャ
ターゲットテクノロジースタック
データソース – 処理用のデータを生成する IoT デバイス、センサー、または産業機器
AWS IoT Greengrass V2 – エッジインフラストラクチャにデプロイされた D-in-D 機能を備えた Docker コンテナとしての実行
コンテナ化されたアプリケーション – ネストされた Docker コンテナとして AWS IoT Greengrass V2 環境内で実行されるカスタムアプリケーション
(オプション) Amazon ECS Anywhere – コンテナのデプロイを管理する AWS IoT Greengrass V2 コンテナオーケストレーション
その他 AWS のサービス – AWS IoT Core AWS IoT SiteWiseデータ処理と管理 AWS のサービス のための など
ターゲットアーキテクチャ
次の図は、コンテナ管理ツールである Amazon ECS Anywhere を使用するターゲットデプロイアーキテクチャの例を示しています。

この図表は、次のワークフローを示しています:
1: コンテナイメージストレージ – Amazon ECR は、エッジ処理に必要な AWS IoT Greengrass コンテナイメージとカスタムアプリケーションコンテナを保存します。
2 および 3: コンテナのデプロイ – Amazon ECS Anywhere は AWS IoT Greengrass 、コンテナイメージを Amazon ECR からエッジロケーションにデプロイし、コンテナのライフサイクルとデプロイプロセスを管理します。
4: コンポーネントのデプロイ — デプロイされた AWS IoT Greengrass コアは、設定に基づいて関連するコンポーネントを自動的にデプロイします。コンポーネントには、コンテナ化された環境内の AWS IoT SiteWise Edge やその他の必要なエッジ処理コンポーネントが含まれます。
5: データインジェスト – 完全に設定されると、 はエッジロケーションのさまざまな IoT データソースからのテレメトリデータとセンサーデータの取り込み AWS IoT Greengrass を開始します。
6: データ処理とクラウド統合 – コンテナ化された AWS IoT Greengrass コアは、デプロイされたコンポーネント (産業用データの AWS IoT SiteWise Edge を含む) を使用してデータをローカルで処理します。次に、処理されたデータを AWS クラウド サービスに送信して、さらなる分析と保存を行います。
ツール
AWS のサービス
Amazon ECS Anywhere は、Amazon ECS タスクとサービスを独自のインフラストラクチャにデプロイ、使用、管理する際に役立ちます。
Amazon Elastic Compute Cloud (Amazon EC2) は、 AWS クラウドでスケーラブルなコンピューティング容量を提供します。仮想サーバーを必要な数だけ起動して、迅速にスケールアップまたはスケールダウンができます。
Amazon Elastic Container Registry (Amazon ECR) は、セキュリティ、スケーラビリティ、信頼性を備えたマネージドコンテナイメージレジストリサービスです。
AWS IoT Greengrass は、デバイス上で IoT アプリケーションを構築、デプロイ、管理するのに役立つオープンソースの IoT エッジランタイムおよびクラウドサービスです。
AWS IoT SiteWise は、産業用機器からデータを大規模に収集、モデル化、分析、視覚化するのに役立ちます。
その他のツール
Docker
は、オペレーティングシステムレベルの仮想化を使用してソフトウェアをコンテナで配信するサービスとしての Platform as a Service (PaaS) 製品のセットです。 Docker Compose
は、マルチコンテナアプリケーションを定義および実行するためのツールです。 Docker Engine
は、アプリケーションを構築およびコンテナ化するためのオープンソースのコンテナ化テクノロジーです。
コードリポジトリ
このパターンのコードは、GitHub AWS IoT Greengrass v2 Docker-in-Docker
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
クローンを作成してリポジトリに移動します。 | リポジトリのクローンを作成するには、次のコマンドを使用します。
| DevOps エンジニア、AWS DevOps |
Docker イメージを作成します。 | デフォルト (最新) バージョンで Docker イメージを構築するには、次のコマンドを実行します。
または、特定のバージョンで Docker イメージを構築するには、次のコマンドを実行します。
ビルドを確認するには、次のコマンドを実行します。
| AWS DevOps、DevOps エンジニア |
(オプション) Amazon ECR にプッシュします。 |
| アプリ開発者、AWS DevOps、DevOps エンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
認証方法を選択します。 | 以下のオプションのいずれかを選択してください。
| AWS 管理者 |
認証方法を設定します。 | 選択した認証方法では、次の設定ガイダンスを使用します。
| AWS 管理者 |
| タスク | 説明 | 必要なスキル |
|---|---|---|
| 次のように、
| DevOps エンジニア |
コンテナを起動して検証します。 | フォアグラウンドで を開始するには、次のコマンドを実行します。
または、バックグラウンドで開始するには、次のコマンドを実行します。
ステータスを確認するには、次のコマンドを実行します。
ログをモニタリングするには、次のコマンドを実行します。
| DevOps エンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
Docker CLI でコンテナを実行します。 |
| DevOps エンジニア |
コンテナを確認します。 |
| DevOps エンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
アプリケーションをデプロイします。 |
| アプリ開発者 |
Docker-in-Docker にアクセスしてテストします。 |
| DevOps エンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
Amazon ECS クラスターをセットアップします。 |
| AWS 管理者 |
Amazon ECS タスクをデプロイします。 |
| AWS 管理者 |
| タスク | 説明 | 必要なスキル |
|---|---|---|
コンテナを停止します。 |
| DevOps エンジニア |
トラブルシューティング
| 問題 | ソリューション |
|---|---|
コンテナはアクセス許可エラーで開始できません。 |
警告
|
プロビジョニングは認証情報エラーで失敗します。 | 認証情報が正しく設定されていることを確認するには、次の手順を実行します。
IAM アクセス許可に |
コンテナ内の Docker デーモンに接続できません。 |
|
コンテナのディスク容量が不足しています。 |
最小ディスク容量を確保する: 基本オペレーションの場合は 5 GB、 AWS IoT SiteWise Edge の場合は 50 GB |
ビルドの問題。 |
|
ネットワーク接続の問題。 |
ファイアウォールがアウトバウンド HTTPS (443) および MQTT (8883) トラフィックを許可していることを確認します。 |
Greengrass コンポーネントはデプロイに失敗します。 |
|
コンテナは起動直後に終了します。 |
の場合、必要なすべての環境変数が正しく設定されていることを確認します |
関連リソース
AWS リソース
その他のリソース
追加情報
AWS IoT SiteWise Edge データ処理の場合、Docker は AWS IoT Greengrass 環境内で利用できる必要があります。
ネストされたコンテナを実行するには、管理者レベルの認証情報を使用して AWS IoT Greengrass コンテナを実行する必要があります。