AWS IoTにマイコンを使ってつなぐ第1回(/全X回)
はじめに
まえがき
お久しぶりです。長期休暇じゃないとやりたいことができない社畜の鏡ですおはこんばんにちわ(死語)。
コロナ2年目のGWは昨年と同様にどこにも行けないので作業(モンハン)が捗ります。
ですが、このGWはモンハン以外の技術も身に着けたいので流行りのAWS沼に踏み込んでいこうと思います。簡単に済ませるつもりが壮大になりましたとさ。
3回ぐらいでどうにかならんかなと思っていますけども、どうなることやら。。。
導入
ラズパイで家の中のいろいろなデータを収集するのは楽しいけども、データを確認するためには宅内NWに入らないといけないのが厄介です。毎回VPN張ってみるのはやはりめんちい。。。
いろいろ調べてみると、流行りのクラウドサービスは簡単に(?)FreeRTOSマイコンをつなげることができるらしいのでやってみようと思います。ゆくゆくはAWS上でデータが確認できると良いかもです。基本はAWSのチュートリアルに沿ってやります。
ゴール
ゴール意識をもってやりましょか!
第1回はAWSの準備でおなか一杯になりました。ごめんね!
参考文献
目的の整理
drow.ioでイメージを作成してみました。多分こんな感じ??表現が間違っていたら指摘ください。
AWSの登録と費用
アカウントの作成をします。以下を参照しました。
気になった点を列挙しておきます
〇住所:英語表記なので慣れてないと難しいかも?ググればいろんなブログが出てきます
プルダウンから国を探しますが、英語表記でソートされているのでジャマイカの下に日本があります
〇クレカ:バーチャルカードでもいけました
〇サポート:ベーシック一択(他はお金かかるので)
登録後ちょっとするとメールがくるので待ちます。
メール受信後、ログインします。ルートユーザかIAMユーザか選択を迫られます。公式からルートユーザは使うなと言われるので自分用のユーザを作成します。
AWS Identity and Access Management (IAM) は、AWS リソースへのアクセスを安全に管理するためのウェブサービスです。IAM を使用して、リソースを使用するために認証 (サインイン) され、許可された (アクセス許可を持つ) ユーザーを制御します。
AWS アカウントを初めて作成する場合は、このアカウントのすべての AWS サービスとリソースに対して完全なアクセス権限を持つシングルサインインアイデンティティで始めます。このアイデンティティは AWS アカウント ルートユーザー と呼ばれ、アカウントの作成に使用した E メールアドレスとパスワードでのサインインによりアクセスします。強くお勧めしているのは、日常的なタスクには、それが管理者タスクであっても、ルートユーザーを使用しないことです。代わりに、最初の IAM ユーザーを作成するためだけに ルートユーザー を使用するというベストプラクティスに従います。その後、ルートユーザー認証情報を安全な場所に保管し、それらを使用して少数のアカウントおよびサービス管理タスクのみを実行します。
ユーザ追加の方法は以下を参照しました。
追加するポリシーと方法の例は次になります。
IAMユーザーアカウントにAWSIoTおよびFreeRTOSへのアクセスを許可するには、次のIAMポリシーをIAMユーザーアカウントに添付します。
AmazonFreeRTOSFullAccess
AWSIoTFullAccess
AmazonFreeRTOSFullAccessポリシーをIAMユーザーに添付するには
IAMコンソールを参照します、およびナビゲーションペインから[ユーザー]を選択します。
検索テキストボックスにユーザー名を入力し、リストから選択します。
[権限の追加]を選択します。
[既存のポリシーを直接添付する]を選択します。
検索ボックスに「」と入力AmazonFreeRTOSFullAccessし、リストから選択して、[次へ:確認]を選択します。
[権限の追加]を選択します。
AWSIoTFullAccessポリシーをIAMユーザーにアタッチするには
IAMコンソールを参照します、およびナビゲーションペインから[ユーザー]を選択します。
検索テキストボックスにユーザー名を入力し、リストから選択します。
[権限の追加]を選択します。
[既存のポリシーを直接添付する]を選択します。
検索ボックスに「」と入力AWSIoTFullAccessし、リストから選択して、[次へ:確認]を選択します。
[権限の追加]を選択します。
追加できれば作成したユーザに権限が付くはずです。
さて次は費用の話。FreeRTOSは無料ですが、AWS IoT Coreは有料です。ただ、無料枠があるのである程度は無料でできそうです。リージョン毎に少しだけ値段が違います。今回1台だけ使うので無料枠内で収まるはずです。来月の請求が楽しみです(笑)
AWS IoT Core の AWS 無料利用枠
接続時間 2,250,000 分
メッセージ 500,000 件
レジストリまたはデバイスシャドウのオペレーション 225,000 回
トリガールール 250,000 件、実行アクション 250,000 件
例えば、50 台のデバイスを使うワークロードを実行する場合、無料利用枠では各デバイスを以下のように使用できます。毎日 24 時間接続
1 日あたり 300 件のメッセージ交換 (メッセージサイズが 5 KB 以下の場合)
1 日あたり 130 回のレジストリまたはデバイスシャドウオペレーションの実行 (レジストリまたはデバイスシャドウのレコードサイズが 1 KB 以下の場合)
アクション 1 件を実行するルールの 1 日あたり 150 件の実行 (処理するメッセージサイズが 5 KB 以下の場合)
AWS 無料利用枠は、AWS アカウントを作成した日から 12 か月間ご利用いただけます。無料使用の有効期限が切れた場合、またはアプリケーション使用が無料利用枠を超えた場合は、上記の料金をお支払いいただきます。無料利用枠は、GovCloud (米国) 以外のすべての AWS リージョンに適用されます。使用量はすべてのリージョンの合計が毎月計算され、自動的に請求額に適用されます。無料利用枠は積算されず、1 つの請求期間から次の請求期間に繰り越されないことにご注意ください。
料金例も載っています。 以下の例で1,876.60 USD/月とのこと。1台当たりにすると0.0018766 USD=0.21円になります。わあやすい(棒)
AWS IoT Core の全コンポーネントを使用するワークロードの料金例
100,000 台のデバイスを AWS IoT Core に 30 日間連続の接続を維持します。毎日、各デバイスがサイズ 1 KB のメッセージ 325 件を交換します。交換するメッセージ 325 件のうち、100 件ではデバイスシャドウの更新がトリガーされ、200 件では 1 つのアクションを実行するルールがトリガーされます。
完走した(まだしてない)感想
疲れました。
1回の投稿で終わらせるつもりだったのですが、調べていくうちにあれもこれもぶっこみたくなったので分割してお送りします。最後まで見てね!頑張るから!(笑)