SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

AWS IoTとRaspberry PiではじめるIoT超入門

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本記事は、Amazon Web ServicesでIoTデバイスを管理するためのサービスである「AWS IoT」の紹介と小型のLinuxマイコンボードである「Raspberry Pi 3」を使ってAWS IoTを使う手順をご紹介します。具体的に、Raspberry Pi 3からコマンドを実行するとAWSのサービスを介してEメールが届くサンプルを作ります。

  • X ポスト
  • このエントリーをはてなブックマークに追加

対象読者

 本記事は、次の方を対象にしています。

  • 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メールを送信するための環境設定を行います。全体の構成は次の図のとおりです。

Raspberry Piからのメール送信
Raspberry Piからのメール送信

[1]AWS IoTの起動

 AWS IoTを使うには、マネジメントコンソールから[AWS IoT]をクリックします。

AWS IoTのマネジメントコンソール
AWS IoTのマネジメントコンソール

 AWS IoTの画面で、[Get started]をクリックします。

AWS IoTの作成
AWS IoTの作成

[2]Thingの作成

 はじめにRaspberry Piからの接続を受け付ける、Thingを作成します。(1)[Create a Thing]をクリックし、(2)[Name]に識別するための名前を入力します。ここでは、「raspi」とし、(3)[Create]ボタンをクリックします。

Thingの作成
Thingの作成

次のページ
AWS IoTを使った環境構築(2)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 阿佐 志保(アサ シホ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9530 2016/07/05 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング