Raspberry Pi のセットアップ - AWS IoT Greengrass

AWS IoT Greengrass Version 1 は、2023 年 6 月 30 日に延長ライフフェーズに入りました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日以降、 AWS IoT Greengrass V1 は機能、機能強化、バグ修正、またはセキュリティパッチを提供する更新をリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き運用され、クラウドに接続されます。への移行 AWS IoT Greengrass Version 2を強くお勧めします。これにより、重要な新機能が追加され、追加のプラットフォーム がサポートされます

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

Raspberry Pi のセットアップ

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

ヒント

AWS IoT Greengrass には、AWS IoT Greengrass Core ソフトウェアをインストールするためのその他のオプションも用意されています。例えば、Greengrass デバイス設定を使用して環境を設定し、最新バージョンの AWS IoT Greengrass Core ソフトウェアをインストールできます。または、サポートされている Debian プラットフォームで APT パッケージマネージャーを使用して AWS IoT Greengrass Core ソフトウェアをインストールまたはアップグレードできます。詳細については、「AWS IoT Greengrass Core ソフトウェアをインストールします。」を参照してください。

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

 

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

  2. Raspbian Buster オペレーティングシステムを zip ファイルとしてダウンロードします。

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

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

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

  6. 次に、Raspberry Pi を Wi-Fi ネットワークを介してインターネットに接続するか、イーサネットケーブルを介して接続します。

    注記

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

  7. リモートで接続するには、SSH を Pi にセットアップする必要があります。Raspberry Pi でターミナルウィンドウを開き、以下のコマンドを実行します。

    sudo raspi-config

    次のように表示されます。

    Raspberry Pi ソフトウェア設定ツール (raspi-config) のスクリーンショット。

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

    sudo reboot
  8. 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-addresshostname -I コマンドで取得した Raspberry Pi の IP アドレスです。

    Windows を使用している場合は、PuTTY をインストールして設定する必要があります。[Connection (接続)] を展開して [Data (データ)] を選択し、[Prompt (プロンプト)] が選択されていることを確認します。

    プロンプトが選択された PuTTY ウィンドウ。

    次に、[Session (セッション)] を選択して、Raspberry Pi の IP アドレスを入力し、デフォルトの設定を使用して [Open (開く)] を選択します。

    IP アドレスが [Host Name (or IP address)] フィールドに表示された PuTTY ウィンドウ。

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

    Raspberry Pi のデフォルトのログインとパスワードはそれぞれ pi および raspberry です。

    初期 PuTTY ターミナルウィンドウ。
    注記

    コンピュータが VPN を使用してリモートネットワークに接続されている場合は、このコンピュータから SSH を使用して Raspberry Pi に接続しにくい場合があります。

  9. これで、AWS IoT Greengrass の Raspberry Pi をセットアップする準備ができました。最初に、ローカル Raspberry Pi ターミナルウィンドウ、または SSH ターミナルウィンドウから以下のコマンドを実行します。

    ヒント

    AWS IoT Greengrass には、AWS IoT Greengrass Core ソフトウェアをインストールするためのその他のオプションも用意されています。例えば、Greengrass デバイス設定を使用して環境を設定し、最新バージョンの AWS IoT Greengrass Core ソフトウェアをインストールできます。または、サポートされている Debian プラットフォームで APT パッケージマネージャーを使用して AWS IoT Greengrass Core ソフトウェアをインストールまたはアップグレードできます。詳細については、「AWS IoT Greengrass Core ソフトウェアをインストールします。」を参照してください。

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

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

      cd /etc/sysctl.d ls
      注記

      98-rpi.conf ファイルが表示されない場合は、README.sysctl ファイルにある手順に従います。

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

      fs.protected_hardlinks = 1 fs.protected_symlinks = 1
    3. Pi を再起動します。

      sudo reboot

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

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

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

  11. コマンドラインブートファイルを編集し、メモリ cgroups を有効にしてマウントします。これにより、AWS IoT Greengrass で Lambda 関数のメモリ制限を設定できるようになります。cgroup は、デフォルトのコンテナ化モードで AWS IoT Greengrass を実行するためにも必要です。

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

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

      cgroup_enable=memory cgroup_memory=1
    3. Pi を再起動します。

      sudo reboot

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

  12. オプション。Java 8 ランタイムをインストールします。このランタイムは、ストリームマネージャーで必要です。このチュートリアルではストリームマネージャーを使用しませんが、ストリームマネージャーをデフォルトで有効にする [デフォルトグループの作成] ワークフローを使用します。グループをデプロイする前に、次のコマンドを使用して、コアデバイスに Java 8 ランタイムをインストールする (またはストリームマネージャーを無効にする) 必要があります。ストリームマネージャーを無効にする手順については、モジュール 3 を参照してください。

    sudo apt install openjdk-8-jdk
  13. 必要なすべての依存関係がそろっていることを確認するには、GitHub のAWS IoT Greengrassサンプルリポジトリから Greengrass 依存関係チェッカーをダウンロードして実行します。これらのコマンドにより、依存関係チェッカースクリプトは Downloads ディレクトリで解凍され、実行されます。

    注記

    Raspbian カーネルのバージョン 5.4.51 を実行している場合、依存関係チェッカーでエラーが生じる場合があります。このバージョンでは、メモリ cgroups が正常にマウントされません。これにより、コンテナモードで実行される Lambda 関数が正常に動作しない可能性があります。

    カーネルの更新の詳細については、「Cgroups not loaded after kernel upgrade」(カーネルのアップグレード後に 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 キーを押して別画面のテキストを表示します。

    重要

    このチュートリアルでは、ローカル Lambda 関数を実行するには Python 3.7 ランタイムが必要です。ストリームマネージャーが有効な場合、Java 8 ランタイムも必要です。これらのランタイムの前提条件が不足しているという警告が check_ggc_dependencies スクリプトによって表示される場合は、続行する前に必ずインストールしてください。その他の欠落しているオプションのランタイム前提条件に関する警告は無視できます。

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

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