本記事はソラコムが提供する「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公式ブログ に最初に表示されました。
この連載の記事
-
第466回
デジタル
カメラとAIで楽器演奏シーンを簡単に残す、IoTプロトタイピングの裏側 -
第465回
デジタル
数千を超えるIoT機器を管理!生成AIで設備運用を効率化するhacomonoの挑戦 -
第464回
デジタル
SORACOMのビジネスパートナープログラムに、新たに5社の認定済パートナーが参画、SORACOM Harvest Data で日時データをタイムスタンプとして利用可能に takuyaのほぼ週刊ソラコム 08/31-09/13 -
第463回
デジタル
SORACOM Lagoon 3 の Alert rule の考え方をマスターして、最適な通知を作成 -
第462回
デジタル
LTE USB ドングル UD-USC1 を SORACOM サービスと組み合わせて利用する -
第461回
デジタル
EV充電インフラを保護する5つの方法 -
第460回
デジタル
IoT プロジェクトの課題を解決する、SORACOM サービスの活用事例 -
第459回
デジタル
ATOM Cam 2 専用 LAN アダプターを販売開始、ソラカメのクラウド録画マルチストリーミング再生機能をリリース takuyaのほぼ週刊ソラコム 08/17-08/30 -
第458回
デジタル
IoTで接続された充電ステーションがEVの普及を促進する -
第457回
デジタル
SORACOM Napterがさらに便利に!リモートアクセスの安全性と利便性を両立したWebターミナルのご紹介
この記事の編集者は以下の記事もオススメしています
-
sponsored
ソラコムの2人に聞いた そもそもプラットフォームってなに? -
sponsored
eSIM&グローバル通信をお手軽に 君はSoracom Mobileを知っているか? -
sponsored
ソラコムの2人に聞いた IoT時代のモノづくりとは?