Q.AWS IoT Core とは何ですか?

AWS IoT Core は、インターネットに接続されたデバイスから、クラウドアプリケーションやその他のデバイスに簡単かつ安全に通信するためのマネージドクラウドプラットフォームです。AWS IoT Core では数十億個のデバイスと数兆件のメッセージをサポートしており、それらのメッセージを AWS エンドポイントや他のデバイスに確実かつセキュアに処理してルーティングします。AWS IoT Core を使用すれば、アプリケーションがインターネットに接続されていない場合でも、すべてのデバイスを常に追跡して通信できます。

Q.AWS IoT Core では何が提供されますか?

デバイスと AWS クラウドとの接続。第 1 に、AWS IoT Core を使用して低レイテンシーかつ低オーバーヘッドに接続しているデバイスと安全に通信できます。通信はいくつでも必要な数のデバイスにスケールできます。AWS IoT Core サービスでは、標準通信プロトコル (HTTP、MQTT、および WebSockets を現在サポート) がサポートされています。通信には TLS を使用しており安全です。

デバイスと AWS クラウドとの接続。 第 1 に、AWS IoT Core を使用して低レイテンシーかつ低オーバーヘッドに接続しているデバイスと安全に通信できます。通信はいくつでも必要な数のデバイスにスケールできます。AWS IoT Core サービスでは、標準通信プロトコル (HTTP、MQTT、および WebSockets を現在サポート) がサポートされています。通信には TLS を使用しており安全です。

接続されたデバイスから送信されたデータの処理。次に、AWS IoT Core では、接続されたデバイスからストリーミングされたデータの取り込み、フィルタリング、変換、ルーティングを継続的に行えます。データに基づいてアクションを実行することも、さらなる処理および分析のためにデータをルーティングすることもできます。

接続したデバイスのアプリケーション操作。最後に、AWS IoT Core サービスを使用して IoT アプリケーションの開発を迅速に行うことができます。このサービスは、クラウドやモバイルデバイスで実行されるアプリケーション向けの使いやすいインターフェイスとして機能するため、接続されたデバイスから送信されたデータにアクセスしたり、デバイスにデータおよびコマンドを返したりすることが可能になります。

Q.AWS IoT Core はどのように機能しますか?

センサー、アクチュエーター、埋め込まれたデバイス、スマートアプライアンス、ウェアラブルデバイスなどの接続されたデバイスを HTTPS、WebSockets、または保護された MQTT 経由で AWS IoT Core に接続します。AWS IoT Core に含まれるデバイスゲートウェイによって、接続されたデバイスとお客様のクラウドおよびモバイルアプリケーション間の安全、低レイテンシー、低オーバーヘッド、双方向コミュニケーションを可能にします。

AWS IoT Core には、接続されたデバイスから送信されたデータの継続的な処理を可能にするルールエンジンも含まれます。データにフィルターを適用したり、データを変換したりするルールを設定できます。DynamoDB、Kinesis、Lambda、SNS、SQS CloudWatch、および Elasticsearch Service (組み込みの Kibana と統合されている) など他の AWS の各種サービスに加え、AWS 以外のサービスにも Lambda を経由してデータをルーティングするルールを設定し、さらなる処理やストレージ、分析を行えます。

Registry で AWS IoT Core に接続するデバイス、または将来接続するデバイスを登録して追跡することができます。AWS IoT Core の Device Shadow により、クラウドアプリケーションやモバイルアプリケーションでは、シンプルな REST API を使用してデバイスから送信されたデータにクエリを実行したり、デバイスにコマンドを送信したりすることができます。この場合、デバイスとの基本的な通信は AWS IoT Core によって処理されます。Device Shadows はアプリケーションと互換性のない、いずれかの IoT 通信およびセキュリティプロトコルを使用している場合でも、統一インターフェイスを提供することによりアプリケーションの開発を迅速に行えます。さらに、接続されたデバイスが断続的な接続、限られた帯域、限られたコンピューティング機能または処理能力によって制約されている場合でも、常時利用することができるインターフェイスを提供し、アプリケーションの開発を迅速に行えます。

AWS IoT Core との通信は安全です。このサービスでは、すべてのクライアント (接続されたデバイス、サーバーアプリケーション、モバイルアプリケーション、またはユーザー) に、強力な認証 (X.509 証明書、AWS IAM 認証情報、または AWS Cognito 経由のサードパーティ認証) が必要とされます。すべての通信は暗号化されます。AWS IoT Core では、認証されたクライアント内で通信を隔離および保護する、きめ細かな承認も提供されています。

Q.2lemetry とは何で、AWS IoT とはどのような関係なのですか?

2lemetry は AWS が 2015 年に買収し、その技術は MQTT Message Broker や Rules Engine for AWS IoT Core などの基盤要素を提供しました。

Q.AWS IoT Core を利用できるのは、どの AWS リージョンですか?

AWS IoT Core の現在のリージョンのリストは、AWS リージョン一覧をご覧ください。

上記の AWS リージョンのいずれかにアクセスできれば、居住地に関係なく AWS IoT Core を使用できます。

Q.AWS IoT Core の使用を開始するにはどうしたらよいですか?

AWS IoT Core サービスをすぐに試すには、AWS IoT コンソールを使用するか、開発者ガイドのクイックスタートセクションを参考にしてください。

パートナーによる、AWS を利用したスターターキットもご覧ください。

詳細は AWS IoT Core ドキュメントをご覧ください。

Q.AWS IoT コンソールではどの言語がサポートされていますか?

​AWS IoT コンソールでは、英語、フランス語、日本語、韓国語、中国語簡体字、ドイツ語、ポルトガル語、スペイン語、イタリア語、中国語繁体字がサポートされています。

Q.コンソールの言語を変更するにはどうすればよいですか?

コンソールの左下にある言語をクリックして言語を選択します。選択した言語は、AWS の異なるサービスのコンソールでも継続されます。

Q.AWS IoT Core にアクセスするにはどうすればよいですか?

AWS マネジメントコンソールAWS SDK、AWS CLI、および AWS IoT Core API をお使いいただけます。接続されたデバイスからは、AWS IoT デバイス SDK を使用して簡単に AWS IoT Core と通信できます。

AWS IoT Core API およびコマンドは、コントロールプレーンオペレーションと、データプレーンオペレーションに大きく分かれています。コントロールプレーンオペレーションでは、セキュリティの設定、デバイスの登録、ルーティングデータのルールの設定、ログ記録の設定などのタスクを実行することができます。データプレーンオペレーションでは、接続されたデバイスから AWS IoT Core へ大規模に低レイテンシーかつ高スループットレートでのデータ取り込みを可能にします。

Q.AWS IoT Core ではどのような通信および認証プロトコルがサポートされていますか?

コントロールプレーンオペレーションにおいて、AWS IoT Core では HTTPS がサポートされています。データプレーンオペレーションにおいては、AWS IoT Core では HTTPS、WebSocket、および IoT シナリオでよく使用されている安全なプロトコルである MQTT がサポートされています。

HTTPS や WebSockets を使って AWS IoT Core へ送信されたリクエストは、AWS SigV4 認証をサポートしている AWS IAM または AWS Cognito を使用して認証されます。AWS SDK または AWS CLI を使用している場合、内部で SigV4 認証が自動的に処理されます。HTTPS リクエストは X.509 証明書でも認証されます。AWS IoT Core への MQTT メッセージは X.509 証明書を使用して認証されます。

AWS IoT Core では、AWS IoT Core によって生成された証明書、および推奨される認証機関 (CA) によって署名された証明書を使用できます。

Q.インターネットに直接接続されていないデバイスでも AWS IoT Core にアクセスできますか?

はい。物理的なハブを経由してアクセスできます。物理的なハブを仲介してデバイスと AWS IoT Core の間に通信とセキュリティがあれば、プライベート IP ネットワークおよび ZigBee または Bluetooth LE などの非 IP 無線プロトコルで接続されたデバイスで AWS IoT Core にアクセスできます。

Q.アプリケーションから AWS IoT Core にアクセスするにはどうすればよいですか?

AWS IoT Core に接続するアプリケーションは大きく分けて、補助アプリケーション、サーバーアプリケーションの 2 つのカテゴリに分けられます。補助アプリケーションは、クラウドを経由して接続されたデバイスとやり取りするモバイル、またはクライアント側のブラウザアプリケーションです。補助アプリケーションを使用して、消費者がモバイルアプリケーションで自宅のスマートロックをリモートで解錠するという例があります。サーバーアプリケーションは、大量の接続されたデバイスを一度に監視および制御できるようデザインされています。サーバーアプリケーションの例として、リアルタイムで数千台のトラックを地図上に表示する車両管理ウェブサイトがあります。

AWS IoT Core では、統一された RESTful API を経由して、補助アプリケーションとサーバーアプリケーションの両方から、接続されたデバイスへのアクセスが可能です。アプリケーションでは、接続されたデバイスと直接通信する pub/sub オプションも使用できます。

一般的に補助アプリケーションでは、お客様自身の ID ストア、または Facebook や Login with Amazon などのサードパーティ ID プロバイダーを使用して管理したエンドユーザー ID を使用した認証が行われます。補助アプリケーションでは、複数の ID プロバイダーを統合する Amazon Cognito が使用されます。Cognito ID では AWS IoT Core へのアクセスを承認することができ、それらのアクセスはリソース関連のみに制限することができます。例えば、接続された洗濯機製造元として、消費者に対して自身の洗濯機の関係する AWS IoT Core 情報のみへのアクセスを承認できます。

サーバーアプリケーション (Amazon EC2 で実行されるマッピングアプリケーションなど) では、AWS IoT Core へアクセスするのに IAM ロールを使用できます。

Q.セキュリティ分析や運用上のトラブルシューティングのために自分のアカウントで行った AWS IoT Core API コールの履歴を取得することはできますか?

はい、自分のアカウントで行った AWS IoT Core API コールの履歴を取得するには、AWS マネジメントコンソールで AWS CloudTrail を有効にします。

Q.コンソールの言語を変更するにはどうすればよいですか?

コンソールの左下にある言語をクリックして言語を選択します。選択した言語は、AWS の異なるサービスのコンソールでも継続されます。

Q.フィードバックを送信するにはどうすればよいですか?

フィードバックを送信するには、コンソールのフッターバーにある [フィードバック] リンクをクリックします。

Q: デバイスゲートウェイとは何ですか?

デバイスゲートウェイでは、接続されたデバイスとルールエンジン、デバイスシャドウ、その他の AWS およびサードパーティーのサービスのクラウド機能間の通信のバックボーンが形成されます。

デバイスゲートウェイは、スケーラブルで低レイテンシーかつ低オーバーヘッドの通信を実現する pub/sub メッセージングパターンをサポートしています。これは何十億ものデバイスが最小限の遅延で頻繁な通信を行う IoT シナリオには特に便利です。Pub/sub は「トピック」と呼ばれる論理通信チャネルに発信登録したクライアントがメッセージを発信すること、およびトピックに受信登録したクライアントがメッセージを受け取ることが関係します。デバイスゲートウェイでは発信者と受信者の間での通信を可能にします。従来、組織では pub/sub を利用するためにデバイスゲートウェイとして自前のサーバーをプロビジョニング、運用、スケール、保守することが必要でした。サービスでは AWS IoT Core デバイスゲートウェイを提供することにより、こうした障害が排除されます。

デバイスゲートウェイは運用の負担なしに使用料に応じて自動的にスケールします。AWS IoT Core では、デバイスゲートウェイとの安全な通信、AWS アカウントレベルの隔離、AWS アカウント内でのきめの細かい認証がサポートされます。デバイスゲートウェイでは現在、安全な MQTT および WebSockets 経由の発信と受信に加え、HTTPS 経由の発信もサポートされています。 

Q.MQTT とは何ですか?

MQTT は軽量の pub/sub プロトコルで、ネットワーク帯域幅とデバイスリソースを最小限に抑えるよう設計されています。MQTT では TLS を使用した安全な通信もサポートされています。MQTT は IoT ユースケースで頻繁に使用されています。MQTT v3.1.1 は OASIS 標準で、 デバイスゲートウェイはほとんどの MQTT の仕様をサポートしています。

Q.ルールエンジンとは何ですか?

ルールエンジンは、AWS IoT Core に接続しているデバイスからのインバウンドデータの継続的な処理を可能にします。ルールエンジンで直感的にルールを設定し、SQL に似たシンタックスでインバウンドデータを自動的にフィルタおよび変換できます。AWS IoT Core サービスから他のいくつかの AWS のサービスまたはお客様がお使いのサードパーティサービスへルーティングするルールを設定できます。

いくつかのルールのユースケースの例を挙げます。

  • 受信メッセージをフィルタリングおよび変換し、DynamoDB に時系列データとして保存する。
  • センサーからのデータが特定のしきい値を超えた場合に、SNS でプッシュ通知を送信する。
  • ファームウェアファイルを S3 に保存する。
  • Kinesis を使用して複数のデバイスからのメッセージを同時に処理する。
  • Lambda を呼び出して受信データのカスタム処理を行う。
  • 自動化された再パブリッシュで、デバイスのグループにコマンドを送信する。

Q.ルールはどのように定義されトリガーされますか?

AWS IoT Core のルールは 2 つの主要な部分で構成されます。

SQL ステートメントでは、ルールを適用する pub/sub トピック、必要に応じて実行するデータ変換、およびルールを実行する際の条件を指定します。ルールは、指定されたトピックに発行されたすべてのメッセージに適用されます。

受信メッセージがルールで指定された条件と一致した時、つまりルールが実行される時、アクションリストで定義されたアクションが実行されます。

ルールの定義は JSON ベースのスキーマを使用しています。直接 JSON を編集、または AWS マネジメントコンソールのルールエディタを使用できます。

例えば、温度が 50 度を超えた時に DynamoDB にセンサーからの温度データを保存するためのルールは次のとおりです。

{

    "sql": "SELECT * from 'iot/tempSensors/#' WHERE temp > 50",

    "description": "Rule to save sensor data when temperature is about 50",

    "actions": [

     {

            "dynamoDB": {

            "tableName": "HighTempTable",

            "roleArn": "arn:aws:iam::your-aws-account-id:role/dynamoPut",

            "hashKeyField": "key",

            "hashKeyValue": "${topic(3)}",

            "rangeKeyField": "timestamp",

            "rangeKeyValue": "${timestamp()}"

            }

        }

    ]

}

この例では、センサーは “iot/tempSensors/” にトピックを公開しています。ルールの最初の行は “iot/tempSensors/#” のトピックで、クエリを実行するために使用する SQL SELECT ステートメントを定義しています。メッセージのペイロードに「temp」フィールドの値を抽出する WHERE 句が含まれており、「50 を超える」という条件をパスしたか確認します。条件が満たされた場合、データは指定された DynamoDB のテーブルに保存されます。この例ではメッセージのペイロードを通過すると、現在の時間を取得するなどのタスクのために組み込み関数を使用しています。

Q.ルールに関する詳細情報はどこで確認できますか?

ルールに関する詳細は、Core ルールのドキュメントをご覧ください。

Q.レジストリとは何ですか、また、どのような目的で使用できますか?

IoT シナリオは少数のミッションクリティカルなデバイスから大群のデバイスまでの範囲をカバーします。レジストリではそれらのデバイスを組織、追跡することができます。AWS IoT Core に接続している、すべてのデバイスのレジストリの論理処理を維持することができます。レジストリの各デバイスは一意に識別でき、モデル番号、サポートの連絡先、および関連付けられた証明書などのメタデータを持つことができます。メタデータに基づいてレジストリに接続されたデバイスを検索することができます。

Q.Thing Type とは何ですか?

Thing Type により、同じデバイスカテゴリに属するデバイスの共通の特性を定義し、お客様のデバイスカタログを効果的に管理することが可能です。さらに、Thing Type に関連付けられた 1 つの Thing には、3 つの検索可能な属性を含め、最大 50 の属性を持たせることが可能です。

Q.簡素化されたアクセス権限管理とは何ですか?

この機能では、レジストリまたは X.509 証明書プロパティを参照する変数を使用することで、多数のデバイスのアクセス権限ポリシーを簡単に管理できます。レジストリおよび証明書プロパティをデバイスポリシーと統合することで、次のような利点がもたらされます。

  • デバイスのアクセス権限ポリシー内のレジストリのプロパティを参照できるようになります。レジストリに定義されているデバイスプロパティを参照することで、レジストリに加えた変更をポリシーに反映させることができます。たとえば、"building-address" という名前の Thing 属性をポリシー内で変数として参照することで、建物を移動するときに、デバイスは新しいアクセス権限のセットを自動的に継承することになります。
  • 複数のデバイスに対して 1 つの汎用ポリシーを共有することができます。デバイスごとに独自のポリシーを作成するのではなく、同じカテゴリのデバイス全体で汎用ポリシーを共有できます。たとえば、"serial-number" を変数として参照するポリシーを、同じモデルのすべてのデバイスにアタッチすることができます。同じシリアル番号のデバイスを接続すると、ポリシーの変数が自動的にそのシリアル番号に置き換えられます。

Q.デバイスシャドウとは何ですか?

デバイスシャドウではクラウドおよびモバイルアプリケーションが AWS IoT に登録されたデバイスと簡単に対話することを可能にします。AWS IoT Core のデバイスシャドウには接続されたデバイスのプロパティが含まれます。お客様のユースケースに合わせて任意のプロパティのセットを定義できます。例えば、スマート電球では「オンまたはオフ」、「色」、「明るさ」のプロパティを定義することがあります。接続されたデバイスには、デバイスのシャドウに保存されたプロパティの実際の値を報告することが期待されます。AWS IoT Core が提供する RESTful API を使用するだけで、アプリケーションはプロパティを取得および更新します。AWS IoT Core およびデバイス SDK は、接続されたデバイスと AWS IoT のデバイスシャドウの間で、プロパティを同期する処理をします。

Q.レジストリとデバイスシャドウは使用する必要がありますか?

デバイスゲートウェイおよび AWS IoT Core のルールエンジンを使用して、アプリケーションが接続されたデバイスと直接通信するようにできます。しかしながら、お客様が接続されたデバイスとクラウド間の基本的な通信と同期に注力するよりも、顧客のために作成したいと思っておられるユニークな価値に焦点を当てられるよう、豊富でさらに構造化された開発および管理経験を提供できるレジストリおよびデバイスのシャドウを使用することをおすすめします。

Q.AWS IoT Core におけるデバイスのライフサイクルとそのデバイスシャドウとは何ですか?

  • レジストリにデバイス (例: 電球) を登録します。
  • プロパティの値、つまり状態 (例:「オンの状態で、色は赤」) のセットを AWS IoT Core サービスに公開するよう接続されたデバイスにプログラムします。
  • AWS IoT Core のデバイスのシャドウに最後に報告された状態が保存されます。
  • アプリケーション (例: 電球を制御するモバイルアプリケーション) では、RESTful API を使用して、AWS IoT Core に対してクエリを実行して最後に報告された電球の状態を取得します。このとき電球に対して直接複雑な通信を行う必要はありません。
  • ユーザーが状態を変えたい場合 (例: 電球をオンからオフにする) は、アプリケーションでは RESTful API を使用して更新をリクエストします (例: AWS IoT Core のデバイスの "望ましい" 状態を設定する)。AWS IoT Core によって、デバイスに対して望ましい状態が同期されます。
  • アプリケーションでは、接続されたデバイスの状態が望ましい状態に更新された場合に通知を受け取ります。

Q.レジストリとデバイスシャドウに関する詳細についてはどこで確認できますか?

レジストリについて詳細は、レジストリのドキュメントをご覧ください。デバイスシャドウについて詳細は、デバイスシャドウのドキュメントをご覧ください。

Q.AWS IoT Core の承認を詳細に設定することはできますか?

はい。他の AWS のサービスと同じく、AWS IoT Core では、各 ID を承認するために呼び出す一連の API のアクションをきめ細かく制御することができます。さらに、アイデンティティが発行またはサブスクライブする pub/sub トピックや、アイデンティティがアクセスできるレジストリのデバイスとデバイスシャドウを通して、きめ細かい制御を行えます。

Q.AWS IoT Core のセキュリティとアクセスコントロールの詳細についてはどこで確認できますか?

詳細については、AWS IoT Core のセキュリティとアイデンティティをご覧ください。

Q.証明書のジャストインタイム登録とは何ですか?

デバイス証明書のジャストインタイム登録 (JITR) は、AWS IoT Core を使用してデバイス登録のプロセスを簡素化することにより、2016 年 4 月に公開された「自分の証明書を使用」の機能を拡張したものです。JITR をサポートする以前は、デバイス登録のプロセスには、まず認証機関 (CA) の証明書を AWS IoT Core に登録し、その後 CA によって署名されたデバイスの証明書を個々に登録するという 2 つのステップが必要でした。現在、デバイスを AWS IoT Core に初めて接続するときにデバイスの証明書を自動登録することで、JITR を使用して 2 番目のステップを完了できるようになりました。これにより、デバイスの証明書を登録する時間を節約し、製造プロセス中にデバイスをオフラインのままにできます。IoT デバイスのプロビジョニングをさらに自動化するために、証明書をアクティベートしポリシーをアタッチする Lambda アクションを使用して AWS IoT Core のルールを作成できます。詳細については、AWS の IoT ブログまたは開発者ドキュメントをご覧ください。

Q.AWS IoT デバイス SDK とは何ですか?

AWS IoT デバイス SDK は、接続されたデバイス (マイクロコントローラー、センサー、アクチュエーター、スマート家電、ウェアラブルデバイスなど) で実行されているコードの開発を簡素化し、加速させます。最初に、デバイス SDK を使用してメモリー、電源、ネットワーク帯域幅消費量の最適化を行えます。同時に Device SDK ではビルトイン TLS、WebSockets、および MQTT をサポートし、高い安全性、低レイテンシーかつ低オーバーヘッドを可能にしています。Device SDK では、AWS IoT Core のデバイスシャドウによりデバイスの状態を同期させるなどより高いレベルの抽象化をサポートすることにより、IoT アプリケーションの開発を加速させます。

AWS IoT デバイス SDK はオープンソースプロジェクトとして自由にご利用いただけます。詳細は、デバイス SDK ページをご覧ください。

Q.AWS IoT デバイス SDK では、どのプログラミング言語やハードウェアプラットホームがサポートされていますか?

AWS では、現在 C および Node.js 言語に加え Arduino Yún プラットホームを AWS IoT デバイス SDK で提供しています。

さらに、複数のハードウェア製造元はそれぞれのプラットホームで AWS IoT デバイス SDK が対応するように AWS と提携しています。ハードウェアプラットホームについての詳細は、ご利用開始にあたってのページをご覧ください。

最後に、AWS IoT デバイス SDK はオープンソースです。お好みの言語とプラットホームでサポートされていない場合、それらへポートすることができます。 

Q: AWS IoT デバイス SDK または AWS SDK を使用する必要がありますか?

AWS IoT デバイス SDK は、AWS SDK を補完するものです。IoT プロジェクトでは多くの場合、マイクロコントローラーやリソースに制約のあるデバイスでコードを実行することが含まれます。しかし、IoT プロジェクトではしばしば、クラウドで実行しているアプリケーションおよびマイクロコントローラーやリソースに制約のあるデバイスと対話するモバイルデバイスが含まれています。AWS SDK はクラウドおよびモバイルアプリケーション用に設計されており、AWS IoT デバイス SDK ではマイクロコントローラーやリソースに制約のあるデバイスで使用できるように設計されています。

AWS デバイス SDK に関する詳細は、AWS IoT デバイス SDK をご覧ください。

Q.AWS 無料利用枠で AWS IoT Core を利用できますか?

はい。詳細については、料金表ページをご覧ください。

Q.AWS IoT Core の料金はいくらですか?

詳しくは、料金表ページをご覧ください。

さらに AWS IoT Core リソースを調べる

リソースのページにアクセスする
始める準備はできましたか?
サインアップ
ご不明な点がおありですか?
お問い合わせ