ダウンロード サンプルファイル (1.4 KB)
本記事は、Amazon Web ServicesでIoTデバイスを管理するためのサービスである「AWS IoT」の紹介と小型のLinuxマイコンボードである「Raspberry Pi 3」を使ってAWS IoTを使う手順をご紹介します。具体的に、Raspberry Pi 3からコマンドを実行するとAWSのサービスを介してEメールが届くサンプルを作ります。
対象読者
本記事は、次の方を対象にしています。
- AWS(IAM/SNS)の基本的な操作ができる方
- 基本的なLinuxコマンドが分かる方
- Raspberry Pi 3のセットアップができる方
AWS IoTによるデバイス連携環境の構築
AWSには、IoTデバイスと連携するためのAWS IoTというサービスがあります。本記事では、AWS IoTを使ったデバイス連携環境の構築手順を説明します。
AWS IoTとは
AWS IoTは、Raspberry PiやArduinoはじめ、さまざまなメッセージブローカーを基盤とするハードウエアデバイスやモバイルアプリケーションと、AWSのサービスを接続して、デバイスの認証やデータに基づき任意の処理を行うためのサービスです。2015年10月にローンチされ、現在は東京リージョンでも利用できます。
AWS IoTの主な特徴はつぎのとおりです。
認証と暗号化
AWS IoTは、デバイスの認証と暗号化が提供されています。証明書に対するロールやポリシーの選択を一元管理でき、デバイスやアプリケーションによるアクセスを認証したり、取り消したりできます。証明書を持たない許可されていないデバイスからの通信は受け付けません。
ルールエンジンによるサービスの呼び出し
AWS IoTでは、デバイスから送信されたデータを収集/処理し、データに基づいたアクションを実行するアプリケーションを、マネジメントコンソール上での設定だけで容易に構築できます。
ルールエンジンは、あらかじめ定義したルールに基づいて、以下のAWSサービスなどを呼び出せます。
- AWS Lambda:リクエスト発生などのタイミングで任意のプログラムを動かすイベンドドリブン型サービス
- Amazon Kinesis:リアルタイムストリーミングデータとの連携サービス
- Amazon S3:冗長化されたデータストレージサービス
- Amazon Machine Learning:機械学習のためのサービス
- Amazon DynamoDB:NoSQLデータベースサービスを構築/運用するサービス
さらに、AWS LambdaやAmazon SNS(プッシュ通知サービス)を使えば、AWS外部のエンドポイントを呼びだすことも可能です。ルールは、SQLに似た構文で作成します。たとえば、あるデバイスから送信された温度のデータがしきい値を越えたときに、AWS Lambdaにデータを送信する、などを定義できます。
AWS IoTデバイスSDKの提供
AWS IoTは、ハードウエアデバイスやモバイルアプリケーションからAWSに接続するためのSDKを提供しています。AWS IoTデバイスSDKを使えば、デバイスとAWS IoTとの間でMQTT/HTTP/WebSocketsプロトコルを介した接続やデバイス認証/メッセージ交換ができます。執筆時では、C/JavaScript/Arduino用のSDKが提供されています。
AWS IoTを使った環境構築(1)
デバイス(Raspberry Pi)からMQTTプロトコルで、AWS IoTを介してAWS SNSを呼びだし、Eメールを送信するための環境設定を行います。全体の構成は次の図のとおりです。
[1]AWS IoTの起動
AWS IoTを使うには、マネジメントコンソールから[AWS IoT]をクリックします。
AWS IoTの画面で、[Get started]をクリックします。
[2]Thingの作成
はじめにRaspberry Piからの接続を受け付ける、Thingを作成します。(1)[Create a Thing]をクリックし、(2)[Name]に識別するための名前を入力します。ここでは、「raspi」とし、(3)[Create]ボタンをクリックします。
この記事は参考になりましたか?
- この記事の著者
-
WINGSプロジェクト 阿佐 志保(アサ シホ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
