本記事はソラコムが提供する「SORACOM公式ブログ」に掲載された「AWS 署名バージョン 4 (SigV4) 対応でSORACOM Beamでより多くのAWSサービスを呼出可能に!」を再編集したものです。
目次
AWSの署名バージョン4(AWS Signature V4、SigV4)とは?データ転送サービス「SORACOM Beam」
SORACOM Beamの利用メリット
SORACOM Beamの「Web サイトエントリポイント」と「HTTP エントリポイント」
ユースケースサンプル
2. 複数のAWS Lambda 呼び出し
さいごに
皆様、こんにちは。ソリューションアーキテクトの松永(ニックネーム:taketo)です。
今回はデータ転送サービス「SORACOM Beam」(以下、Beam) の新しい機能についてご紹介します。
Beamの「Web サイトエントリポイント」および「HTTP エントリポイント」が、AWS署名バージョン4 (SigV4) に対応しました。これにより、デバイスに認証情報と SigV4 生成ロジックを持たずとも様々なAWSサービスを呼び出すことが可能になります。
詳しい実装方法は公式ドキュメントを参照ください。本ブログでは、そもそもAWS署名バージョン4とは何か?従来のSORACOMサービスと比べてどんなユースケースで利用が想定できるかご紹介します。
*連携先のサービスは代表的なサービスのみ記載。HTTPエンドポイントがあるAWSサービスでご利用可能です。
AWSの署名バージョン4(AWS Signature V4、SigV4)とは?
AWSの署名バージョン4にも記載されておりますが、HTTPリクエストをAWSサービスに行う際の認証情報です。HTTPのホスト名やアクセスパス、クエリ、ヘッダーなどの情報とIAMのアクセスキーを元に署名を作成し、それを認証情報としてリクエストに付加して送信します。
署名バージョン 4 (SigV4) は、HTTP で送信される AWS API リクエストに認証情報を追加するプロセスです。セキュリティのため、AWS へのほとんどのリクエストはアクセスキーで署名する必要があります。アクセスキーは、アクセスキー ID とシークレットアクセスキーで構成されます。これは通常、セキュリティ認証情報と呼ばれます。
今回、SORACOM Beamがデバイスから受け取ったデータを元にこの署名を作成し、設定されたAWSリソースへ転送します。これにより、例えば Amazon Simple Storage Service(Amazon S3)といった、これまでSORACOM Beamが直接の転送先として対応していなかったHTTPエンドポイントを持つAWSリソースに対して、デバイス側では認証情報と SigV4 の生成ロジックを持たずとも、セキュアにAWSリソースを呼び出すことが可能となります。
データ転送サービス「SORACOM Beam」
SORACOM Beamの利用メリット
SORACOM Beamについても改めてご紹介します。
SORACOM Beam は、IoT デバイスにおける暗号化等の高負荷処理、および接続先の設定をクラウドにオフロードできるサービスです。
通常クラウドサービスとの連携においては、暗号化やJSONフォーマットで送信するなどクラウド側の仕様に合わせてデバイス側を実装する必要があります。変化の激しいクラウドサービスに対して、デバイス側はファームウェアの更新ができない・バッテリー駆動など様々な制約があります。例えばこれらのクラウドとの直接的な通信により、デバイス側の消費電力があがりバッテリーの持ちが悪くなるなどデメリットも生じてしまいます。
これらの課題を解決するサービスがSORACOM Beamです。デバイスから送信されたデータを設定情報に基づき暗号化などセキュアなプロトコルへ変換し指定された転送先にデータ転送することができます。デバイスからはTLSなど暗号化が不要となり、先に述べた問題を解決できます。
今回のアップデートでAWSの様々なサービスにデータ転送する際にも、このメリットを享受できるということですね!
SORACOM Beamの「Web サイトエントリポイント」と「HTTP エントリポイント」
今回のAWS署名バージョン4を利用できるのは、SORACOM Beamの中でも「Web サイトエントリポイント」と「HTTP エントリポイント」です。両者は指定されたホストへHTTPリクエストを転送するという機能です。
Web サイトエントリポイントは、デバイスからのパスパラメーターやクエリパラメーターをそのまま転送します。HTTPエントリポイントは、パスパラメーターやクエリパラメーターが削除されます。そのため、連携先のサービスでデバイスから送信されるクエリパラメーターなどが必要な場合は、「Web サイトエントリポイント」をご検討ください。一方、「HTTP エントリポイント」は複数作成ができるため、異なるエンドポイントへの振り分けが必要な時に利用できます。
それでは、早速いくつかのユースケースをご紹介致します。
ユースケースサンプル
1. Amazon S3へのファイルアップロード
従来は、SORACOMのサービスを利用して大きなファイルをアップロードする作業は、FaaS 呼び出しサービス「SORACOM Funk」経由ですとAWS Lambda(以下、Lambda)のPayload容量制限などもあり実現が難しいユースケースでした。
しかし、今回のアップデートによりファイルサイズを問わずデバイスからアップロードができるようになります。ここでご紹介したいのが、Amazon S3 のマルチパートアップロードという仕組みです。これはファイルを分割し並行してS3にアップロードする仕組みで、スループットやネットワーク障害によるアップロード中断からの復旧を考慮して効率的にファイルのアップロードができる仕組みです。AWSではS3へ100MB以上の大規模なファイルをアップロードする際には、スループットやリトライなど可能にするためこの仕組みを推奨しております。
実際に、約1.3GBのファイルを6MBごと10スレッドによる並行処理でアップロードしてみました。SIMの帯域は「8Mbps(s1.4xfast)」で送信したところ、約25分でアップロードができたことがわかります。サンプルプログラムはSORACOMのユーザードキュメントにも記載されておりますので、参考にしてください。
2. 複数のAWS Lambda 呼び出し
SORACOM BeamのHTTPエントリポイントは複数作成することができ、アクセスパスごとに連携するLambdaを分けることができます。複数のLambdaを呼び出したい場合に便利ですね。「HTTPエントリポイント」でLambdaを利用する方法は、公式ドキュメント 「IAM 認証を利用して AWS Lambda にリクエストを送信する」に記載されておりますので是非ご確認ください。
AWS Lambda は2022年4月のアップデートで、Lambda自体が独自のHTTP エンドポイントを持つことができるようになりました。
3. その他のAWS サービスへの連携
ここまでLambdaとS3への連携についてご紹介致しました。SORACOMの公式ドキュメントにも2022年12月現在 S3とLambdaへの連携方法についてのみ記載しておりますが、AWSにはそれ以外にも様々なサービスがあるのはみなさまご存じだと思います。LambdaとS3以外にもHTTPのエンドポイントを持つサービスであれば今回のようにデバイスに認証情報を持たずともデータを送信することが可能です。是非、それ以外のサービスへの連携も試してみてください。
また、AWS SDKやCLIをお使いのお客様は下記のように、SORACOM Beamのエンドポイントに対してSSLを無効にし、signature_versionを`UNSIGNED`にすることでBeamに対してリクエストを送信することが可能です。デバイスからは認証情報を負荷せずともSORACOM Beamが認証情報を付加してサービスを呼び出すことができていることが読み取れますね。
import boto3 from boto3.s3.transfer import TransferConfig from botocore import UNSIGNED from botocore.config import Config soracom_beam_endpoint = 'http://beam.soracom.io:18080' s3_resource = boto3.resource('s3', use_ssl=False, endpoint_url=soracom_beam_endpoint, config=Config(signature_version=UNSIGNED))
さいごに
最後まで読んでいただき、有難う御座いました。今回のSORACOM Beamのアップデートで大幅に利用できるAWSサービスが多くなります。是非、ご利用ください!
― ソラコム松永 (taketo)
投稿 AWS 署名バージョン 4 (SigV4) 対応でSORACOM Beamでより多くのAWSサービスを呼出可能に! は SORACOM公式ブログ に最初に表示されました。
この連載の記事
-
第484回
デジタル
AWS re:Invent 2024に見る、IoTの成熟と生成AIとの融合 -
第483回
デジタル
二歳半の子供を持つエンジニアの一日の働き方 -
第482回
デジタル
VPN 対応の産業用 LTE ルーターの価格改定【30%オフ】 -
第481回
デジタル
時間帯に応じたメール通知の構築方法 : SORACOM LTE-M Button と SORACOM Flux の活用 -
第480回
デジタル
SORACOM Flux 料金プランを発表しました -
第479回
デジタル
12/11-13 商業施設・店舗DX展に出展:最新IoTソリューションや事例をご紹介 -
第478回
デジタル
コープさっぽろが、クラウド型カメラ「ソラカメ」を全店舗で導入、現場主導の改善を実現、サーバールームの異常な温度上昇を通知する新規掲載レシピ takuyaのほぼ週刊ソラコム 11/16-11/29 -
第476回
デジタル
WebRTCとMedia over QUIC Transportの性能比較 -
第475回
デジタル
SORACOM Lagoon 3 の [Math] 機能で、複数データを組み合わせた通知の手順 -
第474回
デジタル
SORACOM Flux の AI アクションに Amazon Bedrock – Anthropic Claude 3.5 Haiku を追加、Teltonika RUT240 の価格を改訂 takuyaのほぼ週刊ソラコム 11/02-11/15
この記事の編集者は以下の記事もオススメしています
-
sponsored
ソラコムの2人に聞いた そもそもプラットフォームってなに? -
sponsored
eSIM&グローバル通信をお手軽に 君はSoracom Mobileを知っているか? -
sponsored
ソラコムの2人に聞いた IoT時代のモノづくりとは?