[新サービス]クラウドネイティブにEDIを扱うことが出来るAWS B2B Data Interchangeが利用可能になりました #AWSreInvent

2023.12.01

はじめに

こんにちは、AWS事業本部のみなみです。
皆さんre:Invent楽しんでいますでしょうか?

あまり盛り上がっていませんが、密かにAWS B2B Data Interchangeというサービスが利用可能になりました。

このサービスはEDI規格のデータの変換をフルマネージドで行なってくれるようなサービスとなっています。

EDIとは?

お恥ずかしながら私はこのサービスをきっかけにEDIという言葉を知りました...

EDIとはElectronic Data Interchange略で、日本語では電子データ交換といいます。
企業間での発注書や納品書、請求書といったビジネス文章を電子的にやり取りする仕組みの総称のことを指します。

EDIで利用されるデータは国や業界などでさまざまな規格があり、使用するフォーマットやデータ変換形式、運用ルールといったものが標準化されています。
業界ごとに標準化されたデータ形式を利用することで、ビジネスの効率化を図れるわけです。

新サービスAWS B2B Data Interchange

新サービスAWS B2B Data Interchangeは、EDIデータのJSON、XMLへの変換・マッピングテンプレートを利用した抽出をフルマネージドで行なってくれるサービスです。
また、ビジネスパートナーと文書のリレーションの管理トランザクション・データ変換の監視なども行うことも可能です。

動作としてはインプット用のS3にPUTされたEDIデータの変換を行い、アウトプット用のバケットにJSONおよびXMLで出力を行います。

S3に出力されたデータをビジネスアプリケーションやデータレイク、ETL処理、さまざまなAWSサービスに連携を行うことが出来る為、クラウドネイティブにEDIを扱うことが出来るというわけですね!

触ってみた

2023年11月29日現在は米国東部 (オハイオ)、米国東部 (バージニア北部)、米国西部 (オレゴン) のリージョンで利用可能です。

今回はちょうどAWS B2B Data Interchangeのワークショプが開催しておりましたので、こちらで触ってみることにしました

AWS B2B Data Interchangeには以下の4つの概念があります。

  • プロファイル
  • 取引機能
  • パートナーシップ
  • トランスフォーマー

一つ一つ解説しながら作成していきましょう。

プロファイル

プロフィールには、会社の連絡先情報を管理することが出来ます。

以下の情報を管理することが出来ます。

  • プロファイル名
  • 事業者名
  • メールアドレス
  • 電話番号

トランスフォーマー

トランスフォーマーは受信するEDIドキュメントの変換形式やッピングテンプレートを定義するAWS B2B Data Interchangeのメインとなります。

現在は、北米のEDIメッセージ標準であるANSI X12のみをサポートしています。

トランスフォーマーを作成する際はEDIドキュメント番号バージョンを指定します。
その後にドキュメントの形式としてJSON・XMLの選択マッピングテンプレートを定義します(JSON の場合はJSONata、XMLの場合はXSLT)。

また、オプションとしてサンプルのEDIドキュメントを渡すことでマネジメントコンソール上でライブエディター機能でプレビューを確認しながらテンプレートを作成出来ます。

今回はサンプルとして以下のEDIドキュメントを利用しました。
こちらはドキュメント番号214という形式であり、貨物の出荷情報とステータスの更新を伝達するために用いられます。

ISA*00*          *00*          *ZZ*ROADONE        *ZZ*AMAZON         *220922*0830*U*00401*000001011*0*P*:~GS*QM*ROADONE*AMAZON*20220922*0830*1010*X*004010~ST*214*5598~B10*MSKU1180577*10100806*RKNE~L11*MAEU219197654*BM~L11*NoARN*BX~L11*1*QN~N1*SH*AMAZON XHH3~N3*155 PINDER POINT RD~N4*PORT WENTWORTH*GA*31407*USA~N3*2 MAIN ST*GATE 4~N4*SAVANNAH*GA*31408*USA~LX*1~AT7*LY*NS***20220920*0202*PT~MS1*PORT WENTWORTH*GA*USA~MS2*MSKU*118057*TL*7~L11*MSKU1180577*EQ~SE*16*5598~ST*214*5599~B10*TCLU8928703*9920267*RKNE~L11*ZIMUSHH033017689*BM~L11*112K9V6WS*BX~L11*1*QN~N1*SH*AMAZON XHH3~N3*155 PINDER POINT RD~N4*PORT WENTWORTH*GA*31407*USA~N3*2 MAIN ST*GATE 4~N4*SAVANNAH*GA*31408*USA~LX*1~AT7*LY*NS***20220920*0202*PT~MS1*PORT WENTWORTH*GA*USA~MS2*TCLU*892870*TL*3~L11*TCLU8928703*EQ~SE*16*5599~ST*214*5600~B10*MRSU5304595*9917992*RKNE~L11*MAEU219196179*BM~L11*112FW5X93*BX~L11*1*QN~N1*SH*AMAZON XHH3~N3*155 PINDER POINT RD~N4*PORT WENTWORTH*GA*31407*USA~N3*2 MAIN ST*GATE 4~N4*SAVANNAH*GA*31408*USA~LX*1~AT7*LY*NS***20220920*0202*PT~MS1*PORT WENTWORTH*GA*USA~MS2*MRSU*530459*TL*5~L11*MRSU5304595*EQ~SE*16*5600~ST*214*5601~B10*MRSU5304595*9917992*RKNE~L11*MAEU219196179*BM~L11*112FW5X93*BX~L11*2*QN~N1*SH*AMAZON XHH3~N3*155 PINDER POINT RD~N4*PORT WENTWORTH*GA*31407*USA~N3*2 MAIN ST*GATE 4~N4*SAVANNAH*GA*31408*USA~LX*1~AT7*RD*NS***20220920*0203*PT~MS1*SAVANNAH*GA*USA~MS2*MRSU*530459*TL*5~L11*MRSU5304595*EQ~SE*16*5601~ST*214*5602~B10*TCLU8928703*9920267*RKNE~L11*ZIMUSHH033017689*BM~L11*112K9V6WS*BX~L11*2*QN~N1*SH*AMAZON XHH3~N3*155 PINDER POINT RD~N4*PORT WENTWORTH*GA*31407*USA~N3*2 MAIN ST*GATE 4~N4*SAVANNAH*GA*31408*USA~LX*1~AT7*RD*NS***20220920*0203*PT~MS1*SAVANNAH*GA*USA~MS2*TCLU*892870*TL*3~L11*TCLU8928703*EQ~SE*16*5602~ST*214*5603~B10*MSKU1180577*10100806*RKNE~L11*MAEU219197654*BM~L11*NoARN*BX~L11*2*QN~N1*SH*AMAZON XHH3~N3*155 PINDER POINT RD~N4*PORT WENTWORTH*GA*31407*USA~N3*2 MAIN ST*GATE 4~N4*SAVANNAH*GA*31408*USA~LX*1~AT7*RD*NS***20220920*0203*PT~MS1*SAVANNAH*GA*USA~MS2*MSKU*118057*TL*7~L11*MSKU1180577*EQ~SE*16*5603~ST*214*5604~B10*TCNU1122987*10100394*RKNE~L11*MAEU219183734*BM~L11*NoARN*BX~L11*1*QN~N1*SH*AMAZON XHH3~N3*155 PINDER POINT RD~N4*PORT WENTWORTH*GA*31407*USA~N3*2 MAIN ST*GATE 4~N4*SAVANNAH*GA*31408*USA~LX*1~AT7*LY*NS***20220920*0203*PT~MS1*PORT WENTWORTH*GA*USA~MS2*TCNU*112298*TL*7~L11*TCNU1122987*EQ~SE*16*5604~ST*214*5605~B10*TCNU1122987*10100394*RKNE~L11*MAEU219183734*BM~L11*NoARN*BX~L11*2*QN~N1*SH*AMAZON XHH3~N3*155 PINDER POINT RD~N4*PORT WENTWORTH*GA*31407*USA~N3*2 MAIN ST*GATE 4~N4*SAVANNAH*GA*31408*USA~LX*1~AT7*RD*NS***20220920*0204*PT~MS1*SAVANNAH*GA*USA~MS2*TCNU*112298*TL*7~L11*TCNU1122987*EQ~SE*16*5605~GE*8*1010~IEA*1*000001011~

サンプルドキュメントへのリンクでS3に格納した上記のファイルを指定します。

マッピングエディタにて、サンプルのEDIドキュメントがJSONに変換されました。

JSONata形式でマッピングテンプレートを入力すると、プレビューを確認出来ます。

次へを押して確認画面に進みます。

作成したトランスフォーマーを利用する場合は、ステータスをアクティブに変更する必要があります。

取引機能

取引機能では実際にやり取りを行うドキュメントの定義、トランスフォーマーの指定、受信したEDIドキュメントの送信元バケットと処理したドキュメントの送信先バケットを指定します。

AWS B2B Data Interchangeが対象のS3バケットに対する読み書きを行えるようにすsるために、バケットポリシーを追加する必要があります。

パートナーシップ

パートナーシップは、プロファイルで設定した会社と取引を行うパートナーとのリレーションを設定します。

プロファイルと1つ以上の取引機能を結び付けます。
パートナーシップを作成するには、パートナーの連絡先情報と、このパートナーシップを簡単に識別できる一意の名前を追加します。

AWS B2B Data Interchangeの設定としては以上になり、送信元バケットにEDIドキュメントが格納されると、処理したドキュメントが送信先バケットされます。

ユースケース・アーキテクチャ例

AWS B2B Data Interchange自体はデータの変換を行うシンプルな機能を提供するサービスです。 その為、実際の業務では様々なAWSサービスと連携されることが多いでしょう。

今回のワークショップでは以下のような構成が紹介されていました。

この構成ではEDIドキュメントの送受信にAWS Transfer Familyを利用しております。
AWS Transfer FamilyではSFTP、FTPS、FTPの他にEDIにもよく使われているAS2にも対応しております。

また出力したデータをデータレイクへの格納・Glueを利用したETL処理・ERPシステムへの共有・Amazon AppFlowを利用したAWSサービス・SaaSアプリケーションへの連携なども例に挙げられてます。

最後に

このサービスの登場により、メインフレームやオンプレミスなどで運用していたEDIシステムをAWSに移行するケースも増えてくるのではないでしょうか?

フルマネージドに変換・リレーションの管理・監視を行えるということもあり、サーバーレスなEDIシステムを構築することも可能ですね!