AWS IoT Greengrass
開発者ガイド

Amazon EC2 インスタンスのセットアップ

このセクションでは、Amazon EC2 インスタンスをセットアップする手順を説明します。

注記

このモジュールは Amazon EC2 インスタンスを使用して完了できますが、AWS IoT Greengrass は物理的なハードウェアで使用するのが最適です。これらのチュートリアルでは、Raspberry Pi を使用することをお勧めします。

  1. AWS マネジメントコンソール にサインインし、Amazon Linux AMI を使用して Amazon EC2 インスタンスを起動します。Amazon EC2 インスタンスの詳細については、Amazon EC2 入門ガイド を参照してください。

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

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

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

      
                            強調表示されている [インバウンド] タブ。
    3. [Edit] を選択します。

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

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

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

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

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

      • [説明] には、MQTT Communications を入力します。

       

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

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

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

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

  4. Amazon EC2 インスタンスに接続した後、ユーザー ggc_user およびグループ ggc_group を作成します。

    sudo adduser --system ggc_user sudo groupadd --system ggc_group

    注記

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

    sudo useradd --system ggc_user
  5. デバイスのセキュリティを向上させるには、起動時にオペレーティングシステムでハードリンクとソフトリンク (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 をデフォルトの containerization モードで実行するには、Cgroups も必要です。

    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. 必要なすべての依存関係があることを確認するには、GitHub の AWS IoT Greengrass サンプルリポジトリから Greengrass 依存関係チェッカーをダウンロードして実行します。 これらのコマンドは、依存関係チェッカースクリプトを解凍して実行します。

    mkdir greengrass-dependency-checker-GGCv1.9.x cd greengrass-dependency-checker-GGCv1.9.x wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.9.x.zip unzip greengrass-dependency-checker-GGCv1.9.x.zip cd greengrass-dependency-checker-GGCv1.9.x sudo ./check_ggc_dependencies | more

    重要

    このチュートリアルには Python 2.7 が必要です。check_ggc_dependencies スクリプトでは、Node.js や Java のオプション要件が見つからない場合に警告が表示されることがあります。これらの警告は無視できます。

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