Amazon EC2 インスタンスの設定 - 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これにより、重要な新機能が追加され、プラットフォーム のサポートが追加されます

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

Amazon EC2 インスタンスの設定

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

ヒント

または、環境を設定し、 AWS IoT Greengrass Core ソフトウェアをインストールするスクリプトを使用するには、「」を参照してくださいクイックスタート: Greengrass デバイスのセットアップ

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

 

  1. AWS Management Console にサインインし、Amazon Linux AMI を使用して Amazon EC2 インスタンスを起動します。Amazon EC2 インスタンスについては、「Amazon EC2 入門ガイド」を参照してください。

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

    1. Amazon EC2 コンソールのナビゲーションペインで、[Security Group] (セキュリティグループ) を選択します。

      [Security Groups] (セキュリティグループ) が強調表示されたナビゲーションペイン。
    2. 先ほど起動したインスタンスのセキュリティグループを選択し、[Inbound rules] (インバウンドルール) タブを選択します。

    3. [Edit inbound rules] (インバウンドルールの編集) を選択します。

      ポート 8883 を有効にするには、セキュリティグループにカスタム TCP のルールを追加します。詳細については、「Amazon EC2 ユーザーガイド」の「セキュリティグループへのルールの追加」を参照してください。 Amazon EC2

    4. [Edit inbound rules] (インバウンドルールの編集) ページで、[Add rule] ( ルールの追加) を選択し、次の設定を入力して、[Save] (保存) を選択します。

      • [Type] で [Custom TCP Rule] を選択します。

      • [ポート範囲] には、8883 を入力します。

      • [ソース] で、[任意の場所] を選択します。

      • [Description (説明)] にMQTT Communicationsと入力します。

       

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

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

    2. [インスタンスへの接続] ページの指示に従って、SSH およびプライベートキーファイルを使用して、インスタンスに接続します。

    Windows 用の PuTTY または macOS 用のターミナルを使用することができます。詳細については、「Amazon EC2 ユーザーガイド」の「Linux インスタンスに接続する」を参照してください。 Amazon EC2

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

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

    sudo adduser --system ggc_user sudo groupadd --system ggc_group
    注記

    お客様のシステムに adduser コマンドを使用できない場合は、以下のコマンドを使用します。

    sudo useradd --system ggc_user
  5. セキュリティを向上させるには、起動時に Amazon EC2 インスタンスのオペレーティングシステムでハードリンクとソフトリンク (symlink) の保護が有効になっていることを確認します。

    注記

    ハードリンクとソフトリンクの保護を有効にする手順は、オペレーティングシステムによって異なります。お客様のディストリビューションのドキュメントを参照してください。

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

      sudo sysctl -a | grep fs.protected

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

      注記

      ソフトリンクは fs.protected_symlinks で表されます。

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

      cd /etc/sysctl.d ls
    3. 任意のテキストエディタ (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
    4. Amazon EC2 インスタンスを再起動します。

      sudo reboot

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

      sudo sysctl -a | grep fs.protected

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

  6. 以下のスクリプトを展開して実行し、Linux コントロールグループ (cgroups) をマウントします。これにより、 AWS IoT Greengrass は Lambda 関数のメモリ制限を設定できます。デフォルトのコンテナ化モードで を実行するには AWS IoT Greengrass 、グループも必要です。

    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の準備ができた状態になります。

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

    • Debian ベースのディストリビューションの場合 :

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

      sudo yum install java-1.8.0-openjdk
  8. 必要な依存関係がすべてあることを確認するには、 の AWS IoT Greengrass Samples リポジトリから Greengrass 依存関係チェッカーをダウンロードして実行します GitHub。これらのコマンドは、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
    重要

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

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