

サポート終了通知: 2026 年 10 月 7 日、 AWS はサポートを終了します AWS IoT Greengrass Version 1。2026 年 10 月 7 日以降、 AWS IoT Greengrass V1 リソースにアクセスできなくなります。詳細については、[「 からの移行 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# モジュール 1: Greengrass の環境設定
<a name="module1"></a>

このモジュールでは、out-of-the-box Raspberry Pi、Amazon EC2 インスタンス、またはその他のデバイスを AWS IoT Greengrass コアデバイス AWS IoT Greengrass として で使用する準備を整える方法について説明します。

**ヒント**  
または、コアデバイスをセットアップするスクリプトを使用する場合は、「[クイックスタート: Greengrass デバイスのセットアップ](quick-start.md)」を参照してください。

このモジュールの所要時間は 30 分未満です。

開始する前に、このチュートリアルの[要件](gg-gs.md#gg-requirements)をお読みください。次に、次のいずれかのトピックのセットアップ手順に従います。コアデバイスタイプに適用されるトピックのみを選択します。

**Topics**
+ [Raspberry Pi のセットアップ](setup-filter.rpi.md)
+ [Amazon EC2 インスタンスの設定](setup-filter.ec2.md)
+ [他のデバイスの設定](setup-filter.other.md)

**注記**  
構築済みの Docker コンテナで AWS IoT Greengrass 実行されている を使用する方法については、「」を参照してください[Docker コンテナ AWS IoT Greengrass での実行](run-gg-in-docker-container.md)。

# Raspberry Pi のセットアップ
<a name="setup-filter.rpi"></a>

このトピックの手順に従って、 を AWS IoT Greengrass コアとして使用する Raspberry Pi を設定します。

**ヒント**  
<a name="ggc-install-options"></a>AWS IoT Greengrass には、 AWS IoT Greengrass Core ソフトウェアをインストールするための他のオプションも用意されています。例えば、[Greengrass デバイスのセットアップ](quick-start.md)を使用して環境を設定し、最新バージョンの AWS IoT Greengrass Core ソフトウェアをインストールできます。または、サポートされている Debian プラットフォームでは、[APT パッケージマネージャー](install-ggc.md#ggc-package-manager)を使用して AWS IoT Greengrass Core ソフトウェアをインストールまたはアップグレードできます。詳細については、「[AWS IoT Greengrass Core ソフトウェアをインストールする](install-ggc.md)」を参照してください。

Raspberry Pi を初めて設定する場合は、以下のすべての手順に従う必要があります。それ以外の場合は、[ステップ 9](#add-ggc-user-ggc-group) に進むことができます。ただし、ステップ 2 で推奨されているように、Raspberry Pi をオペレーティングシステムで再イメージ化することをお勧めします。

 

1. [SD Memory Card Formatter](https://www.sdcard.org/downloads/formatter/) などの SD カードフォーマットツールをダウンロードしてインストールします。SD カードをコンピュータに挿入します。プログラムを起動し、SD カードを挿入したドライブを選択します。SD カードのクイックフォーマットを実行できます。

1. [Raspbian Buster](https://downloads.raspberrypi.org/raspbian/images/raspbian-2020-02-14/) オペレーティングシステムを `zip` ファイルとしてダウンロードします。

1. SD カード書き込みツール ([Etcher](https://etcher.io/) など) を使用して、ツールの手順に従い、ダウンロードした `zip` ファイルを SD カードにフラッシュします。オペレーティングシステムイメージが大きいため、このステップに時間がかかることがあります。SD カードをコンピュータから取り出し、microSD カードを Raspberry Pi に挿入します。

1. 最初の起動では、Raspberry Pi をモニター (HDMI 使用)、キーボード、マウスに接続することをお勧めします。次に、Pi をマイクロ USB 電源と接続すると、Raspbian オペレーティングシステムが起動します。

1. 次に進む前に、Pi のキーボードレイアウトを設定できます。これを行うには、右上にある Raspberry アイコンを選択し、[**Preferences (設定)**]、[**Mouse and Keyboard Settings (マウスとキーボードの設定)**] の順に選択します。次に、[**Keyboard (キーボード)**] タブ、[**Keyboard Layout (キーボードレイアウト)**] の順に選択して適切なキーボードタイプを選択します。

1. 次に、[Raspberry Pi を Wi-Fi ネットワークを介してインターネットに接続](https://www.raspberrypi.org/documentation/configuration/wireless/desktop.md)するか、イーサネットケーブルを介して接続します。
**注記**  
次に進む前に、Raspberry Pi をコンピュータの接続先と*同じ*ネットワークに接続し、コンピュータと Raspberry Pi の両方がインターネットにアクセスできることを確認します。職場の環境やファイアウォールの内側で作業している場合は、必要に応じて Pi とコンピュータをゲストネットワークに接続して両方のデバイスを同じネットワーク上に配置します。ただし、このアプローチではコンピュータがイントラネットなどのローカルネットワークリソースから切断される可能性があります。解決方法の 1 つとして、Pi をゲスト Wi-Fi ネットワークに接続し、コンピュータをゲスト Wi-Fi ネットワークに*加えて*イーサネットケーブル経由でローカルネットワークに接続できます。この設定では、コンピュータがゲスト Wi-Fi ネットワーク経由で Raspberry Pi に接続し、イーサネットケーブル経由でローカルネットワークリソースに接続できます。

1. リモートで接続するには、[SSH](https://en.wikipedia.org/wiki/Secure_Shell) を Pi にセットアップする必要があります。Raspberry Pi で[ターミナルウィンドウ](https://www.raspberrypi.org/documentation/usage/terminal/)を開き、以下のコマンドを実行します。

   ```
   sudo raspi-config
   ```

   次のように表示されます。  
![\[Raspberry Pi ソフトウェア設定ツール (raspi-config) のスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/gg-get-started-001.png)

   下にスクロールし、[**Interfacing Options**] を選択して [**P2 SSH**] を選択します。プロンプトが表示されたら、[**Yes**] を選択します。(Tab キーに続けて Enter キーを使用します)。SSH が有効である必要があります。[**OK**] を選択します。Tab キーを使用して [**完了**] を選択し、Enter キーを押します。Raspberry Pi が自動的に再起動しない場合は、次のコマンドを実行します。

   ```
   sudo reboot
   ```

1. Raspberry Pi のターミナルウィンドウで、以下のコマンドを実行します。

   ```
   hostname -I
   ```

   これは、Raspberry Pi の IP アドレスを返します。
**注記**  
以下の場合、ECDSA キーフィンガープリントのメッセージ (`Are you sure you want to continue connecting (yes/no)?`) が表示されたら、「`yes`」と入力します。Raspberry Pi のデフォルトパスワードは **raspberry** です。

   macOS を使用している場合は、ターミナルウィンドウを開き、次のように入力します。

   ```
   ssh pi@IP-address
   ```

   *IP-address* は `hostname -I` コマンドで取得した Raspberry Pi の IP アドレスです。

   Windows を使用している場合は、[PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) をインストールして設定する必要があります。[**Connection (接続)**] を展開して [**Data (データ)**] を選択し、[**Prompt (プロンプト)**] が選択されていることを確認します。  
![\[プロンプトが選択された PuTTY ウィンドウ。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/gg-get-started-001.4.png)

   次に、[**Session (セッション)**] を選択して、Raspberry Pi の IP アドレスを入力し、デフォルトの設定を使用して [**Open (開く)**] を選択します。  
![\[IP アドレスが [Host Name (or IP address)] フィールドに表示された PuTTY ウィンドウ。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/gg-get-started-001.5.png)

   PuTTY セキュリティ警告が表示された場合は、[**Yes (はい)**] を選択します。

   Raspberry Pi のデフォルトのログインとパスワードはそれぞれ **pi** および **raspberry** です。  
![\[初期 PuTTY ターミナルウィンドウ。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/gg-get-started-001.6.png)
**注記**  
コンピュータが VPN を使用してリモートネットワークに接続されている場合は、このコンピュータから SSH を使用して Raspberry Pi に接続しにくい場合があります。

1. <a name="add-ggc-user-ggc-group"></a>これで、Raspberry Pi をセットアップする準備ができました AWS IoT Greengrass。最初に、ローカル Raspberry Pi ターミナルウィンドウ、または SSH ターミナルウィンドウから以下のコマンドを実行します。
**ヒント**  
<a name="ggc-install-options"></a>AWS IoT Greengrass には、 AWS IoT Greengrass Core ソフトウェアをインストールするための他のオプションも用意されています。例えば、[Greengrass デバイスのセットアップ](quick-start.md)を使用して環境を設定し、最新バージョンの AWS IoT Greengrass Core ソフトウェアをインストールできます。または、サポートされている Debian プラットフォームでは、[APT パッケージマネージャー](install-ggc.md#ggc-package-manager)を使用して AWS IoT Greengrass Core ソフトウェアをインストールまたはアップグレードできます。詳細については、「[AWS IoT Greengrass Core ソフトウェアをインストールする](install-ggc.md)」を参照してください。

   ```
   sudo adduser --system ggc_user
   sudo addgroup --system ggc_group
   ```

1. Pi デバイスでのセキュリティを向上させるには、起動時にオペレーティングシステムのハードリンクとソフトリンク (symlink) の保護を有効にします。

   1. `98-rpi.conf` ファイルに移動します。

      ```
      cd /etc/sysctl.d
      ls
      ```
**注記**  
`98-rpi.conf` ファイルが表示されない場合は、`README.sysctl` ファイルにある手順に従います。

   1. テキストエディタ (Leafpad、GNU nano、vi など) を使用して、次の 2 行をファイルの末尾に追加します。`sudo` コマンドを使用してルートとして編集することが必要な場合があります (例: `sudo nano 98-rpi.conf`)。

      ```
      fs.protected_hardlinks = 1
      fs.protected_symlinks = 1
      ```

   1. Pi を再起動します。

      ```
      sudo reboot
      ```

      約 1 分後、SSH を使用して Pi に接続し、次のコマンドを実行して変更を確認します。

      ```
      sudo sysctl -a 2> /dev/null | grep fs.protected
      ```

      `fs.protected_hardlinks = 1` および `fs.protected_symlinks = 1` と表示されるはずです。

1. <a name="stretch-step"></a> コマンドラインブートファイルを編集し、メモリ cgroups を有効にしてマウントします。これにより、 AWS IoT Greengrass は Lambda 関数のメモリ制限を設定できます。デフォルトの AWS IoT Greengrass [コンテナ化](lambda-group-config.md#lambda-containerization-considerations)モードで を実行するには、 グループも必要です。

   1.  `boot` ディレクトリに移動します。

      ```
      cd /boot/
      ```

   1.  テキストエディタを使用して、`cmdline.txt` を開きます。新しい行としてではなく、既存の行の末尾に以下を追加します。`sudo` コマンドを使用してルートとして編集することが必要な場合があります (例: `sudo nano cmdline.txt`)。

      ```
      cgroup_enable=memory cgroup_memory=1
      ```

   1. Pi を再起動します。

      ```
      sudo reboot
      ```

   これで、Raspberry Pi は AWS IoT Greengrassの準備ができた状態になります。

1. <a name="install-java-8-runtime"></a>オプション。Java 8 ランタイムをインストールします。これは[ストリームマネージャー](stream-manager.md)に必要です。このチュートリアルではストリームマネージャーを使用しませんが、チュートリアルで使用する **[デフォルトのグループ作成]** ワークフローでは、デフォルトでストリームマネージャーが有効になります。グループをデプロイする前に、以下のコマンドを使用してコアデバイスに Java 8 ランタイムをインストールするか、またはストリームマネージャーを無効にする必要があります。ストリームマネージャーを無効にする手順については、モジュール 3 を参照してください。

   ```
   sudo apt install openjdk-8-jdk
   ```

1. 必要なすべての依存関係がそろっていることを確認するには、GitHub の[AWS IoT Greengrass サンプル](https://github.com/aws-samples/aws-greengrass-samples)リポジトリから Greengrass 依存関係チェッカーをダウンロードして実行します。これらのコマンドにより、依存関係チェッカースクリプトは `Downloads` ディレクトリで解凍され、実行されます。
**注記**  
 Raspbian カーネルのバージョン 5.4.51 を実行している場合、依存関係チェッカーでエラーが生じる場合があります。このバージョンでは、メモリ cgroups が正常にマウントされません。これにより、コンテナモードで実行される Lambda 関数が正常に動作しない可能性があります。  
カーネルの更新の詳細については、「[Cgroups not loaded after kernel upgrade](https://www.raspberrypi.org/forums/viewtopic.php?t=280656)」(カーネルのアップグレード後に cgroups がロードされない) を参照してください。

   ```
   cd /home/pi/Downloads
   mkdir greengrass-dependency-checker-GGCv1.11.x
   cd greengrass-dependency-checker-GGCv1.11.x
   wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.11.x.zip
   unzip greengrass-dependency-checker-GGCv1.11.x.zip
   cd greengrass-dependency-checker-GGCv1.11.x
   sudo modprobe configs
   sudo ./check_ggc_dependencies | more
   ```

   `more` が表示された場合は、Spacebar キーを押して別画面のテキストを表示します。
**重要**  
<a name="lambda-runtime-prereqs"></a>このチュートリアルでは、ローカル Lambda 関数を実行するには Python 3.7 ランタイムが必要です。ストリームマネージャーが有効な場合は、Java 8 ランタイムも必要です。これらのランタイムの前提条件が不足しているという警告が `check_ggc_dependencies` スクリプトによって表示される場合は、続行する前に必ずインストールしてください。その他の欠落しているオプションのランタイム前提条件に関する警告は無視できます。

   **modprobe** コマンドの詳細については、ターミナルで **man modprobe** を実行してください。

これで、Raspberry Pi の設定は完了です。「[モジュール 2: AWS IoT Greengrass Core ソフトウェアのインストール](module2.md)」に進みます。

# Amazon EC2 インスタンスの設定
<a name="setup-filter.ec2"></a>

 AWS IoT Greengrass コアとして使用する Amazon EC2 インスタンスをセットアップするには、このトピックのステップに従います。

**ヒント**  
または、環境をセットアップして AWS IoT Greengrass Core ソフトウェアをインストールするスクリプトを使用するには、「」を参照してください[クイックスタート: Greengrass デバイスのセットアップ](quick-start.md)。

 Amazon EC2 インスタンスを使用してこのチュートリアルを完了できますが、物理ハードウェアで使用する AWS IoT Greengrass のが理想的です。Amazon EC2 インスタンスを使用するのではなく、[Raspberry Pi のセットアップ](setup-filter.rpi.md)をお勧めします。Raspberry Pi を使用している場合は、このトピックのステップを実行する必要はありません。

 

1. [AWS マネジメントコンソール](https://console.aws.amazon.com/) にサインインし、Amazon Linux AMI を使用して Amazon EC2 インスタンスを起動します。Amazon EC2 インスタンスについては、「[Amazon EC2 入門ガイド](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)」を参照してください。

1. Amazon EC2 インスタンスの実行後、ポート 8883 を有効にして受信 MQTT 通信を許可し、他のデバイスが AWS IoT Greengrass コアに接続できるようにします。

   1. Amazon EC2 コンソールのナビゲーションペインで、**[Security Group]** (セキュリティグループ) を選択します。  
![\[[セキュリティグループ] が強調表示されたナビゲーションペイン。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/gg-get-started-002.6.1.png)

   1. 先ほど起動したインスタンスのセキュリティグループを選択し、**[Inbound rules]** (インバウンドルール) タブを選択します。

   1. **[インバウンドのルールを編集]** を選択します。

      ポート 8883 を有効にするには、セキュリティグループにカスタム TCP ルールを追加します。詳細については、「*Amazon EC2 ユーザーガイド*」の「[セキュリティグループへのルールの追加](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule)」を参照してください。

   1. **[インバウンドのルールの編集]** ページで、**[ルールを追加]** を選択し、次の設定を入力して、**[保存]** を選択します。
      + **[タイプ]** で、**[カスタム TCP ルール]** を選択します。
      + **[ポート範囲]** に **8883** と入力します。
      + **[ソース]** で、**[任意の場所]** を選択します。
      + **[説明]** に **MQTT Communications** と入力します。

       

1. Amazon EC2 インスタンスに接続します。

   1. ナビゲーションペインで **[インスタンス]** を選択し、インスタンスを選択して、**[接続]** を選択します。

   1. **[インスタンスへの接続]** ページの指示に従って、[SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html) およびプライベートキーファイルを使用してインスタンスに接続します。

   Windows では [PuTTY](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html) を、macOS ではターミナルを使用できます。詳細については、「*Amazon EC2 ユーザーガイド*」の「[Linux インスタンスへの接続](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)」を参照してください。

   これで、 AWS IoT Greengrassの Amazon EC2 インスタンスをセットアップする準備ができました。

1. Amazon EC2 インスタンスに接続したら、`ggc_user` アカウントと `ggc_group` アカウントを作成します。

   ```
   sudo adduser --system ggc_user
   sudo groupadd --system ggc_group
   ```
**注記**  
システムで `adduser` コマンドを使用できない場合は、以下のコマンドを使用します。  

   ```
   sudo useradd --system ggc_user
   ```

1. セキュリティを向上させるには、起動時に Amazon EC2 インスタンスのオペレーティングシステムでハードリンクとソフトリンク (symlink) の保護が有効になっていることを確認します。
**注記**  
 ハードリンクとソフトリンクの保護を有効にする手順は、オペレーティングシステムによって異なります。お使いのディストリビューションのドキュメントを参照してください。

   1.  以下のコマンドを実行して、ハードリンクとソフトリンクの保護が有効になっているかどうかを確認します。

      ```
      sudo sysctl -a | grep fs.protected
      ```

       ハードリンクとソフトリンクが `1` に設定されている場合、保護は正しく有効になっています。ステップ 6 に進みます。
**注記**  
ソフトリンクは `fs.protected_symlinks` で表されます。

   1. ハードリンクとソフトリンクが `1` に設定されていない場合は、これらの保護を有効にします。システム設定ファイルの場所に移動します。

      ```
      cd /etc/sysctl.d
      ls
      ```

   1. 任意のテキストエディタ (Leafpad、GNU nano、vi など) を使用して、システム設定ファイルの最後に以下の 2 行を追加します。Amazon Linux 1 では、これは `00-defaults.conf` ファイルです。Amazon Linux 2 では、これは `99-amazon.conf` ファイルです。ファイルへの書き込みを行えるように (`chmod` コマンドを使用して) アクセス許可を変更するか、`sudo` コマンドを使用して root として編集する (`sudo nano 00-defaults.conf` など) ことが必要な場合があります。

      ```
      fs.protected_hardlinks = 1
      fs.protected_symlinks = 1
      ```

   1. Amazon EC2 インスタンスを再起動します。

      ```
      sudo reboot
      ```

      数分後、SSH を使用してインスタンスに接続し、次のコマンドを実行して変更を確認します。

      ```
      sudo sysctl -a | grep fs.protected
      ```

      ハードリンクとソフトリンクが 1 に設定されているはずです。

1. 以下のスクリプトを展開して実行し、[Linux コントロールグループ](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/resource_management_guide/ch01) (cgroups) をマウントします。これにより、 AWS IoT Greengrass は Lambda 関数のメモリ制限を設定できます。デフォルトの AWS IoT Greengrass [コンテナ化](lambda-group-config.md#lambda-containerization-considerations)モードで を実行するには、 グループも必要です。

   ```
   curl https://raw.githubusercontent.com/tianon/cgroupfs-mount/951c38ee8d802330454bdede20d85ec1c0f8d312/cgroupfs-mount > cgroupfs-mount.sh
   chmod +x cgroupfs-mount.sh 
   sudo bash ./cgroupfs-mount.sh
   ```

   これで、Amazon EC2 インスタンスは AWS IoT Greengrassの準備ができた状態になります。

1. <a name="install-java-8-runtime"></a>オプション。Java 8 ランタイムをインストールします。これは[ストリームマネージャー](stream-manager.md)に必要です。このチュートリアルではストリームマネージャーを使用しませんが、チュートリアルで使用する **[デフォルトのグループ作成]** ワークフローでは、デフォルトでストリームマネージャーが有効になります。グループをデプロイする前に、以下のコマンドを使用してコアデバイスに Java 8 ランタイムをインストールするか、またはストリームマネージャーを無効にする必要があります。ストリームマネージャーを無効にする手順については、モジュール 3 を参照してください。
   + Debian ベースのディストリビューションの場合:

     ```
     sudo apt install openjdk-8-jdk
     ```
   + Red Hat ベースのディストリビューションの場合:

     ```
     sudo yum install java-1.8.0-openjdk
     ```

1. 必要なすべての依存関係がそろっていることを確認するには、GitHub の[AWS IoT Greengrass サンプル](https://github.com/aws-samples/aws-greengrass-samples)リポジトリから Greengrass 依存関係チェッカーをダウンロードして実行します。これらのコマンドは、Amazon EC2 インスタンスで依存関係チェッカースクリプトをダウンロード、解凍、実行します。

   ```
   mkdir greengrass-dependency-checker-GGCv1.11.x
   cd greengrass-dependency-checker-GGCv1.11.x
   wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.11.x.zip
   unzip greengrass-dependency-checker-GGCv1.11.x.zip
   cd greengrass-dependency-checker-GGCv1.11.x
   sudo ./check_ggc_dependencies | more
   ```
**重要**  
<a name="lambda-runtime-prereqs"></a>このチュートリアルでは、ローカル Lambda 関数を実行するには Python 3.7 ランタイムが必要です。ストリームマネージャーが有効な場合は、Java 8 ランタイムも必要です。これらのランタイムの前提条件が不足しているという警告が `check_ggc_dependencies` スクリプトによって表示される場合は、続行する前に必ずインストールしてください。その他の欠落しているオプションのランタイム前提条件に関する警告は無視できます。

これで、Amazon EC2 インスタンスの設定は完了です。「[モジュール 2: AWS IoT Greengrass Core ソフトウェアのインストール](module2.md)」に進みます。

# 他のデバイスの設定
<a name="setup-filter.other"></a>

このトピックのステップに従って、 AWS IoT Greengrass コアとして使用するデバイス (Raspberry Pi 以外) を設定します。

**ヒント**  
または、環境をセットアップして AWS IoT Greengrass Core ソフトウェアをインストールするスクリプトを使用するには、「」を参照してください[クイックスタート: Greengrass デバイスのセットアップ](quick-start.md)。

を初めて使用する場合は AWS IoT Greengrass、Raspberry Pi または Amazon EC2 インスタンスをコアデバイスとして使用し、デバイスに適した[セットアップ手順](module1.md)に従うことをお勧めします。

Yocto プロジェクトを使用してカスタム Linux ベースのシステムを構築する場合は、`meta-aws`プロジェクトから AWS IoT Greengrass Bitbake レシピを使用できます。このレシピは、組み込みアプリケーション用の AWS エッジソフトウェアをサポートするソフトウェアプラットフォームの開発にも役立ちます。Bitbake ビルドにより、デバイスで AWS IoT Greengrass Core ソフトウェアのインストール、設定、自動実行を行えます。

Yocto Project  
ハードウェアアーキテクチャに関係なく、組み込みアプリケーション用に Linux ベースのカスタムシステムを構築できるオープンソースのコラボレーションプロジェクト。詳細については、[Yocto Project](https://www.yoctoproject.org/) を参照してください。

`meta-aws`  
Yocto レシピを提供する AWS マネージドプロジェクト。レシピを使用して、[OpenEmbedded](https://www.openembedded.org/wiki/Main_Page) と Yocto プロジェクトで構築された Linux ベースのシステムで AWS エッジソフトウェアを開発できます。このコミュニティでサポートされている機能の詳細については、GitHub の [https://github.com/aws/meta-aws](https://github.com/aws/meta-aws) プロジェクトを参照してください。

`meta-aws-demos`  
プロジェクトのデモンストレーションを含む AWS マネージド`meta-aws`プロジェクト。統合プロセスのその他の例については、GitHub の [https://github.com/aws-samples/meta-aws-demos](https://github.com/aws-samples/meta-aws-demos) プロジェクトを参照してください。

別のデバイスまたは[サポートされているプラットフォーム](what-is-gg.md#gg-platforms)を使用するには、このトピックのステップに従います。

1. <a name="setup-jetson"></a>コアデバイスが NVIDIA Jetson デバイスの場合、まず JetPack 4.3 インストーラを使用してファームウェアをフラッシュする必要があります。別のデバイスを設定する場合には、ステップ 2 に進みます。
**注記**  
使用する JetPack インストーラのバージョンは、対象の CUDA Toolkit バージョンに基づいています。以下の手順では、JetPack 4.3 と CUDA Toolkit 10.0 を使用します。デバイスに適したバージョンの使用方法については、NVIDIA のドキュメントの「[Jetpack のインストール方法](https://docs.nvidia.com/jetson/jetpack/install-jetpack/index.html)」を参照してください。

   1. Ubuntu 16.04 以降を実行している物理デスクトップで、NVIDIA ドキュメントの「[Download and Install JetPack](https://docs.nvidia.com/jetson/archives/jetpack-archived/jetpack-33/index.html#jetpack/3.3/install.htm%3FTocPath%3D_____3)」(JetPack のダウンロードとインストール) (4.3) に従って、JetPack 4.3 インストーラを使用しファームウェアをフラッシュします。

      インストーラの指示に従って、Jetson ボードにすべてのパッケージと依存関係をインストールします。Jetson ボードは、Micro-B ケーブルでデスクトップに接続されている必要があります。

   1. 標準モードでボードを再起動し、ディスプレイをボードに接続します。
**注記**  
SSH を使用して Jetson に接続する場合は、デフォルトのユーザー名 (**nvidia**) とデフォルトのパスワード (**nvidia**) を使用します。

1. 以下のコマンドを実行して、ユーザー `ggc_user` およびグループ `ggc_group` を作成します。実行するコマンドは、コアデバイスにインストールされたディストリビューションによって異なります。
   + コアデバイスが OpenWrt を実行している場合は、次のコマンドを実行します。

     ```
     opkg install shadow-useradd
     opkg install shadow-groupadd
     useradd --system ggc_user
     groupadd --system ggc_group
     ```
   + それ以外の場合は、以下のコマンドを実行します。

     ```
     sudo adduser --system ggc_user
     sudo addgroup --system ggc_group
     ```
**注記**  
システムで `addgroup` コマンドを使用できない場合は、以下のコマンドを使用します。  

     ```
     sudo groupadd --system ggc_group
     ```

1. <a name="install-java-8-runtime"></a>オプション。Java 8 ランタイムをインストールします。これは[ストリームマネージャー](stream-manager.md)に必要です。このチュートリアルではストリームマネージャーを使用しませんが、チュートリアルで使用する **[デフォルトのグループ作成]** ワークフローでは、デフォルトでストリームマネージャーが有効になります。グループをデプロイする前に、以下のコマンドを使用してコアデバイスに Java 8 ランタイムをインストールするか、またはストリームマネージャーを無効にする必要があります。ストリームマネージャーを無効にする手順については、モジュール 3 を参照してください。
   + Debian ベースまたは Ubuntu ベースのディストリビューションの場合:

     ```
     sudo apt install openjdk-8-jdk
     ```
   + Red Hat ベースのディストリビューションの場合:

     ```
     sudo yum install java-1.8.0-openjdk
     ```

1. 必要なすべての依存関係がそろっていることを確認するには、GitHub の[AWS IoT Greengrass サンプル](https://github.com/aws-samples/aws-greengrass-samples)リポジトリから Greengrass 依存関係チェッカーをダウンロードして実行します。これらのコマンドは、依存関係チェッカースクリプトを解凍して実行します。

   ```
   mkdir greengrass-dependency-checker-GGCv1.11.x
   cd greengrass-dependency-checker-GGCv1.11.x
   wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.11.x.zip
   unzip greengrass-dependency-checker-GGCv1.11.x.zip
   cd greengrass-dependency-checker-GGCv1.11.x
   sudo ./check_ggc_dependencies | more
   ```
**注記**  
この`check_ggc_dependencies`スクリプトは AWS IoT Greengrass 、サポートされているプラットフォームで実行され、特定の Linux システムコマンドが必要です。詳細については、依存関係チェッカーの [Readme](https://github.com/aws-samples/aws-greengrass-samples/blob/master/greengrass-dependency-checker-GGCv1.11.x/README.md) を参照してください。

1. 依存関係チェッカーの出力で示されているように、必要な依存関係をすべてデバイスにインストールします。不足しているカーネルレベルの依存関係については、カーネルの再コンパイルが必要になる場合があります。Linux コントロールグループ (`cgroups`) をマウントする場合は、[cgroupfs-mount](https://raw.githubusercontent.com/tianon/cgroupfs-mount/master/cgroupfs-mount) スクリプトを実行できます。これにより、 AWS IoT Greengrass は Lambda 関数のメモリ制限を設定できます。デフォルトの AWS IoT Greengrass [コンテナ化](lambda-group-config.md#lambda-containerization-considerations)モードで を実行するには、 グループも必要です。

   出力にエラーが表示されない場合、 AWS IoT Greengrass はデバイスで正常に実行できます。
**重要**  
<a name="lambda-runtime-prereqs"></a>このチュートリアルでは、ローカル Lambda 関数を実行するには Python 3.7 ランタイムが必要です。ストリームマネージャーが有効な場合は、Java 8 ランタイムも必要です。これらのランタイムの前提条件が不足しているという警告が `check_ggc_dependencies` スクリプトによって表示される場合は、続行する前に必ずインストールしてください。その他の欠落しているオプションのランタイム前提条件に関する警告は無視できます。

    AWS IoT Greengrass 要件と依存関係のリストについては、「」を参照してください[サポートされているプラットフォームと要件](what-is-gg.md#gg-platforms)。