Azure IoT HubとAws IoT Coreを比較

# はじめに
> Azure IoT HubとAws IoT Core似たようなサービスだけど、何が違うの？と疑問に思っている方も多いと思いますので、比較してまとめてみようと思います。

# 今回の比較対象

- **Azure IoT hub**と**Aws IoT Core**

# Azure IoTHubとAws IoT Coreについて

#### Azure IoTHub
- 各デバイスとクラウドを繋ぎ、双方向に通信が可能
- 各デバイスをクラウド上で管理/監視が可能
- 何十億のデバイスの通信が可能でセキュリティーは、高いチャンネルで守られているため安心
- 最大で7日間イベントデータを保持することができる

#### Aws IoT Core
- 各デバイスとクラウドを接続することができる
- デバイスがオフラインの状態でも最後に通信した情報を保持することができる
- 接続されたデバイスは、高度な暗号化がされ、身元がわからない外部のデバイスからの干渉を防ぐことができる
- デバイスから送られてくるデータが閲覧しやすい（閲覧のやり方が簡単）

#### 違う所
- Azure
  - 各デバイスにIoTHubで管理/監視ができる
  - 7日間イベントデータを保持

- AWS
  - デバイスがオフラインの状態でも最後に通信した情報を保持
  - 接続されたデバイスは、高度な暗号化される
  - デバイスから送られてくるデータが閲覧しやすい


## 各サービス作成手順

| NO|Azure IoT Hub             | Aws IoT Core                |
|:-:|:----------------------------:|:---------------------------:|
| 1 | リソースを作成する           |                           　|
| 2 | IoTHubを作成する             |                             |
| 3 | デバイスを作成する           |  モノを作成する              |
| 4 |                             | 証明書を作成する             |
| 5 |                             | ポリシーを作成する           |
| 6 |                             | 証明書にポリシーをアタッチする|
| 7 |                             | 証明書にモノをアタッチする    |
| 8 |送信側のプログラムを作成する  | 送信側のプログラムを作成する  |

- 手順でみたらAzureの方が楽ですね。


# 料金について

- Azure IoTHubは従量課金ではなくプランが用意されています
  - [Azure IoTHub料金プラン](https://azure.microsoft.com/ja-jp/pricing/details/iot-hub/)

※ 価格レベルBシリーズ(Basic)のサービスプランは、トラフィック処理が低く、トラフィック管理機能が不要なアプリ向け
※ 価格レベルSシリーズ(Standard)のサービスプランは、実稼働で実行されることを想定

- [BasicとStandardの利用可能な範囲](https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-scaling)

### Azure IoT Hub

| 課金レベル| 1日あたりのメッセージ数 | メッセージの課金サイズ | 一か月あたりの料金 |
|:----------:|:-----------------------:|:---------------------:|:-----------------:|
| 無料      | 　8000                 | 0.5kb                  | 無料              |
| S1        | 400,000                | 4kb                   | ￥2,800           |
| S2        | 6,000,000              | 4kb                   | ￥28,000          |
| S3        | 300,000,000            | 4kb                   | ￥280,000         |
| B1        | 400,000                | 4kb                   | ￥1,120           |
| B2        | 6,000,000              | 4kb                   | ￥5,600           |
| B3        | 300,000,000            | 4kb                   | ￥56,000          |

#####シミュレーション

- 無料プランの場合

 **接続デバイス数 1台、12秒に1メッセージでデータサイズ0.5kb以下を送り続ける**
3600秒(１時間) ÷ 12 × 24 = 7200
一日：7200メッセージ

ちなみに、11秒に一回送信する場合1日7854.....なのでぎりいける


### Aws IoT Core

- Aws IoT Coreは、従量課金になります
  - [Aws IoT Core料金](https://aws.amazon.com/jp/iot-core/pricing/)

- 料金計算ツール
  - [AWS IoT Core料金計算ツール](https://aws.amazon.com/jp/iot-core/pricing/)

IoT Coreも12か月の無料枠があるそうです。

#### 無料枠詳細


|                                  機能       | 詳細                  |
|:-------------------------------------------:|:---------------------:|
| 接続時間                                     | 　2,250,000分（12時間）|
| メッセージ                                   | 500,000 件             |
|レジストリまたはデバイスシャドウのオペレーション| 225,000 回            |
| トリガールール                               | 250,000 件             |

- IoT Coreでは、データサイズ5kbまでらしいです。（例えば6kb超える場合は、メッセージ数2件として計算されるみ
たい）

上記の料金ツールで色々計算してます。

**接続デバイス数 1台、12秒に1メッセージでデータサイズ0.5kb以下を送り続ける**
接続時間：24時間
1日：7,200メッセージ
30日：216,000メッセージ
料金：毎月0.26 USD（29.52円）？

**接続デバイス数 1台、5秒に1メッセージでデータサイズ4kb以下を送り続ける**
接続時間：24時間
1日：17,280メッセージ
30日：518,400メッセージ
料金：毎月0.62 USD（70.41円）？


# まとめ
IoT Coreの料金が安すぎる気がしますね。？（間違っているかも）
本当にこんなに安かったらAws IoT Coreを使った方がいい気がしますが。、どうなんでしょう？
各サービスの作成手順は、Azure IoT Hubのほうが手順が少ないし、メモするkeyも一つでいいので楽ですね。