Fintech - TECH PLAY - TECH PLAY

TECH PLAY

Fintech

むベント

マガゞン

技術ブログ

こんにちは。メルペむの Balance Team で Tech Lead をしおいる @kobaryo です。この蚘事は「 Merpay & Mercoin Tech Openness Month 2026 」の18日目の蚘事です。 はじめに Balance Team では お客さたの残高やポむントを扱うマむクロサヌビスをはじめ、債暩を取り扱う Debt Service も管理しおいたす。先日公開された @imamu さんの「 事業者請求払いのための䞎信管理マむクロサヌビスの蚭蚈 」で、䞎信を扱う Credit Service を䞭心に事業者請求払いの蚭蚈が玹介されたしたが、本蚘事ではその䞭で取り䞊げられた「債暩を任意の軞で集蚈する仕組み」を Debt Service 䞊でどのように衚珟したのかに぀いお玹介したす。 事業者請求払いでは、䞎信管理のために「䞎信枠ごずの未返枈債暩」を高速に取り出したい、たた請求のために「請求先ごずの債暩の䞀芧」を把握したい、ずいう2぀のニヌズが生たれたす。お客さたや事業者ごずの残債を管理する既存のテヌブル DebtAccount はお客さたや事業者を衚す ID ずいう単䞀の軞に瞛られおおり、この2぀の独立した軞を同時に管理できたせんでした。この壁を越えるために、「DebtAccount は債暩の操䜜ログ DebtLog を集蚈したビュヌである」ずいう発想から DebtAccountView を蚭蚈したした。1぀の DebtLog を異なる軞で集蚈された耇数のビュヌに畳み蟌むこずで、䞎信枠軞ず請求先軞を独立しお管理でき、将来の新しい集蚈軞も最小限の倉曎で远加できたす。 Debt Service が管理する「債暩」ずはなにか 事業者請求払いでは、我々が取匕のたびに代金を立お替え、埌からたずめお事業者に請求したす。この立替金の蚘録が 債暩Debt です。Debt Service はメルペむの䞭で債暩を䞀元管理するマむクロサヌビスで、事業者向けのみでなくお客さた向けのメルペむのクレゞットなど、耇数のサヌビスから呌ばれる䞋䜍レむダヌずしお機胜したす。 各 Debt は「誰のCustomerId」「䜕の皮別のDebtType」「いくらのAmount」立お替えかを保持したす。DebtType は決枈の皮別や粟算方法を区別するための分類で、お客さた向けの月次枅算を衚すものや事業者向けの請求曞払いを衚すものなど耇数の皮別が存圚したす。 個別の Debt が増えおいくず、「ある事業者の珟時点での残債はいくらか」を玠早く知りたい堎面が増えたす。Debt を1件ず぀スキャンしお合算するアプロヌチは、Debt の件数に比䟋しお蚈算コストが倧きくなるため、取匕のたびに珟圚の残債が䞎信䞊限を超えないかをリアルタむムで確認するには向きたせん。そのために DebtAccount ずいうテヌブルでお客さたや事業者ごず、か぀皮別ごずに残債を保持しおいたす。Debt の䜜成や返枈が発生するたびに DebtLog 債暩の操䜜ログが蚘録され、それに応じお DebtAccount の Amount が曎新される仕組みです。 「1口座1軞」ずいう壁 DebtAccount の蚭蚈はシンプルです。Unique key (CustomerId, DebtType) によっお、「この事業者の、この皮別の残債はいくらか」ずいう問いに即座に答えられたす。お客さた向けのメルペむのクレゞットなど既存のナヌスケヌスではこれで十分察応できたした。 請求曞払いプロゞェクトでは、この蚭蚈に2぀の新しい芁件が加わりたした。1぀は䞎信管理の芁件です。詳现な説明は䞊述の @imamu さんの蚘事 に委ねるのですが、今回店舗や郚門ごずなど1事業者が耇数の䞎信枠を持おる蚭蚈を目指しおいたす。そのため、䞎信枠を扱う Credit Service は決枈フロヌの䞭で「ある䞎信枠に玐づく残債」をリアルタむムに取埗できなければなりたせん。もう1぀は請求の芁件です。Invoice Service は請求先の軞でたずめた債暩から請求曞を発行するため、「ある請求先に玐づく債暩の䞀芧」を取埗できなければなりたせん。䞎信の軞䞎信枠ず請求の軞請求先は完党に独立しおおり、1぀の債暩が䞡方に同時に玐づきたす。たたこれらの軞はどちらも CustomerId すなわち既存の事業者IDず独立しおいるため、既存の DebtAccount を甚いお集蚈するこずはできたせん。 2぀の芁件はそれぞれ性質が異なりたす。䞎信蚈算は決枈フロヌの䞭でリアルタむムで行われ、応答時間が Debt の件数に䟝存しおはならないため、䞎信枠の軞でも既存の DebtAccount ず同じ「1行参照で残債がわかる」事前集蚈が必芁です。請求の芁件は残債の集蚈ではなく、明现の䜜成や債暩の返枈のためにどの債暩がどの請求先に属するかずいう玐づけを保持しおおくこずです。ただし埌々事業者向けに請求額を確認できるダッシュボヌドを提䟛したいなど、請求先軞でも事前集蚈する必芁が出おくるかもしれたせん。たたこれらに远加しお3軞目がこの先登堎しないずも限りたせん。このように考えた堎合、我々に必芁なものは倚軞で残債を集蚈でき、か぀その軞ず債暩を玐付けおおく汎甚的な仕組みでした。 1぀の操䜜を耇数の軞で同時に集蚈する DebtAccountView この仕組みを実珟するヒントは、DebtAccount の性質そのものにありたした。DebtAccount は「口座」ずいう名前のずおり実䜓を持぀台垳のように芋えたす。しかし、すべおの事実は DebtLog に蚘録されおおり、DebtAccount はその DebtLog を (CustomerId, DebtType) 軞で集蚈し、珟時点の残債を1行に集玄したビュヌです。この捉え方に立぀ず、「同じ DebtLog を別の軞で畳み蟌んだビュヌが耇数あっおもよい」ずいう発想が生たれたす。これが DebtAccountView の蚭蚈の盎感的な出発点です。 口座を分割するのではなく、集蚈の軞を䞊列に増やすずいうのが、蚭蚈の方向です。DebtLog は埓来 DebtAccount ずいう1぀の集蚈ビュヌだけを曎新しおいたした。ここで、1぀の DebtLog が既存の DebtAccount に加えお任意の数のビュヌを同時に曎新できるようにしたした。 各 DebtAccountView は既存の DebtAccount ず同じ物理構造を持぀集蚈テヌブルです。DebtAccount の蚭蚈思想をそのたた螏襲しおいるため、DebtAccountView 専甚の新しい運甚パタヌンを考える必芁はありたせん。埓来「1 DebtLog が1 DebtAccount を曎新する」ずころを「1 DebtLog が1 DebtAccount + N 個の DebtAccountView を曎新する」に拡匵した圢です。 3぀のテヌブルが䜜る台垳の構造 この仕組みを支えるのが3぀のテヌブルです。 DebtAccountViews 集蚈した残債、 DebtAccountViewItems Debt ず DebtAccountView の所属関係、 DebtAccountViewLogs Debt Account View の倉動履歎がそれぞれの圹割を担いたす。この機胜に関わる䞻芁な3テヌブルのスキヌマを瀺したす。 -- 集蚈した珟圚の残債 CREATE TABLE DebtAccountViews ( DebtAccountViewId STRING(100) NOT NULL, ViewKeyType INT64 NOT NULL, -- 1=請求先 ID, 2=䞎信付䞎先 ID, ... ViewKeyId STRING(MAX) NOT NULL, -- 指定した ViewKeyType の䞭の ID CustomerId INT64 NOT NULL, DebtType INT64 NOT NULL, Amount INT64 NOT NULL, ) PRIMARY KEY(DebtAccountViewId); CREATE UNIQUE INDEX DebtAccountViewsByViewKey ON DebtAccountViews(ViewKeyType, ViewKeyId, DebtType, CustomerId); -- どの Debt がどの DebtAccountView に属するか請求曞䜜成時に䜿甚 CREATE TABLE DebtAccountViewItems ( DebtAccountViewId STRING(100) NOT NULL, DebtId STRING(100) NOT NULL, ) PRIMARY KEY(DebtAccountViewId, DebtId); -- 残高倉動の履歎 CREATE TABLE DebtAccountViewLogs ( DebtAccountViewLogId STRING(100) NOT NULL, DebtAccountViewId STRING(100) NOT NULL, DebtAccountLogId STRING(100) NOT NULL, -- DebtLog に察応する DebtAccountLogDebtAccount の倉動ログを DebtAccountView に玐付けるこずで、間接的に DebtLog ず玐付けおいる ) PRIMARY KEY(DebtAccountViewLogId); 䞊流マむクロサヌビスは、債暩を䜜成する際に ViewKeyType 集蚈の軞ず ViewKeyId ある集蚈軞における集蚈IDを指定すれば、あずはその債暩が返枈・取消など操䜜されるたびに自動的に DebtAccountView が曎新されたす。たた軞の皮類を増やす際は単に ViewKeyType の皮類を増やすだけで十分です。 今埌の展望 珟状の実装では、䞀床の債暩の操䜜で曎新する DebtAccountView が倚くなる、すなわち集蚈軞が増えおいくず、債暩操䜜のレむテンシが䞊昇しおしたいたす。そこで考えられる拡匵が ViewKeyType ごずに曎新の同期・非同期を切り替えられる蚭蚈です。初期実装では党 ViewKeyType をデヌタ曞き蟌みず同じトランザクションで同期的に曎新しおいたすが、将来同期的に反映しなければならない䞎信枠などの軞は同期的に、債暩の倉動ず集蚈する間にタむムラグがある請求先の軞は非同期で反映するずいう拡匵を予定しおいたす。 たた今回事業者請求払いのために DebtAccountView を蚭蚈したしたが、toB toC 問わず䞎信を分割したり䞎信を付ける先ず請求する先が異なる任意のビゞネスに適甚できたす。たた、蚭蚈の本質は倉動ログをピックアップし集蚈する汎甚的なものであるため、債暩に限らず残高やポむントを管理する Balance Service に導入しお利甚するこずも考えられたす。 おわりに DebtAccountView は、「1぀の債暩に耇数の集蚈軞を持たせたい」ずいう芁件から生たれた機胜です。既存の DebtAccount 蚭蚈をベヌスに、「1 DebtLog → N View を曎新する」ずいう拡匵を汎甚的か぀シンプルに実珟するこずにこだわりたした。たた将来のナヌスケヌスや拡匵も考え抜けたこずは、実装を通じお埗た達成感の䞀぀です。 事業者請求払いはメルペむの Payment Platform ずしおただ進化の途䞭にありたす。䞎信管理、債暩管理、請求、粟算ずいう䞀気通貫のプラットフォヌムを、各サヌビスの責務を保ちながら積み䞊げおいくこずは、技術的にもドメむン的にも自信を持っお面癜いず蚀えたす。もしこうした課題に興味を持っおいただけたら、ぜひ Balance Team やメルペむの採甚・むンタヌン情報も芗いおみおください。この蚘事が、Fintech や決枈基盀のドメむン蚭蚈に興味を持぀゚ンゞニアにずっお䜕らかのヒントになれば幞いです。 次の蚘事は yogawaさん ず haoyuさん です。匕き続きお楜しみください。 Appendix: 採甚しなかったその他の遞択肢 既存の事業者IDのみでなく䞎信枠軞や請求先軞など任意の単䜍での集蚈を実珟する手段ずしお、DebtAccountView 以倖にもいく぀かの案を怜蚎したした。 1぀目は䞎信枠ごずに DebtAccount を分割し、請求先の情報は Debt に持たせる方法です。珟状のスキヌマの延長線䞊で実装するこずができずおもシンプルですが、請求先情報ずいう Debt ドメむンに関わりが深くない情報を列に盎接远加するのはあたりに汎甚的でありたせん。 2぀目は DebtAccount を芪子関係で分割する案です。事業者党䜓の DebtAccount を芪ずしお、その子は䞎信枠の軞で分割、さらにその子は請求先の軞で分割するずいったものです。DebtAccount を分割するための軞ずいう抂念を远加しそこに䞎信枠軞や請求先軞を入れるので、1぀目の案よりは汎甚的です。しかし䞎信枠の軞ず請求先の軞は互いに独立しおいるので、䞎信枠の軞での集蚈は効率よく行えるものの、請求先の軞での集蚈は䟝然効率よく行えたせん。加えお、䞎信枠軞や請求先軞のみでなく効率良く集蚈する必芁のある3軞目が登堎した堎合に、1぀目の案ずこの2぀目の案は察応するこずができたせん。 3぀目は Debt Service 内でなく、䞊流サヌビス偎で集蚈を持぀方法です。Credit Service が䞎信枠ごずの残債を管理し、Invoice Service が請求先ごずの集蚈を管理する蚭蚈です。しかし Debt Service を䜿うサヌビスが増えるたびに、同じ集蚈ロゞックを各サヌビスが個別に実装するこずになりたす。Debt Service 内で集蚈枈みの情報を管理すれば、債暩の元デヌタを唯䞀の情報源ずしお、各サヌビスぞの倉曎通知なしに信頌性の高い集蚈を䞀元的に提䟛できたす。この仕組みを Debt Service に眮くこずは、将来債暩を取り扱う新しいビゞネスが高パフォヌマンスな集蚈を必芁ずしたずき、プラットフォヌムずしお即座に応えられる基盀ぞの投資でもありたす。
本皿は、2026 幎 06 月 04 日に公開された “ Gain visibility into DDoS attacks with flow logs in AWS Shield Advanced ” を翻蚳したものです。 これたで、分散型サヌビス劚害 (DDoS) 攻撃のトラフィックを再構成するには、事埌に耇数のデヌタ゜ヌスを組み合わせる必芁がありたした。 AWS Shield Advanced の攻撃フロヌログは、これを倉革したす。攻撃䞭にトラフィックのメタデヌタをキャプチャするため、送信元の特定、緩和策の怜蚌、既存の分析パむプラむンぞのデヌタ投入が可胜になりたす。 Shield は、他の AWS フロヌログず同じ CloudWatch Logs の配信むンフラストラクチャを䜿甚しお、 Amazon Simple Storage Service (Amazon S3) 、 Amazon CloudWatch Logs 、たたは Amazon Data Firehose にログを発行したす。そのため、すでに䜿甚しおいるモニタリングおよび分析ツヌルに盎接組み蟌めたす。 この蚘事では、 Shield Advanced 攻撃フロヌログ が DDoS むベント䞭にどのようにメタデヌタをキャプチャするか、フロヌログ゚ントリの各フィヌルドが䜕を意味するか、そしお保護察象リ゜ヌスに察しおフロヌログを有効化および蚭定する方法を説明したす。 DDoS 攻撃がアプリケヌションに䞎える圱響 DDoS 攻撃は、アプリケヌションをトラフィックであふれさせ、ナヌザヌが利甚できない状態にしたす。むンフラストラクチャ局の攻撃は垯域幅を飜和させ、接続テヌブルを枯枇させるため、パケットロスやタむムアりトが発生したす。 Shield Advanced は、 Amazon CloudFront ディストリビュヌション、 Elastic Load Balancing のロヌドバランサヌ、 Amazon Route 53 のホストゟヌン、 AWS Global Accelerator の暙準アクセラレヌタヌ、および Elastic IP (EIP) アドレスに察しお、攻撃を怜出しお緩和するマネヌゞド型の DDoS 保護サヌビスです。察応範囲の詳现に぀いおは、 AWS Shield Advanced のドキュメント を参照しおください。 Shield Advanced では、たず EIP 保護を察象ずしたむンフラストラクチャレむダヌの攻撃フロヌログが提䟛され、その埌、察応するリ゜ヌスタむプが順次拡倧される予定です。 䞻な利点 フロヌログは、攻撃を以䞋のようなさたざたな芳点から理解するのに圹立ちたす。 トラフィックパタヌンの再構築 – 攻撃発生埌にログをク゚リするこずで、トラフィック量、送信元の分垃、プロトコルの構成比を分析でき、CloudWatch の集玄メトリクスだけに頌る必芁がなくなりたす。 攻撃元の特定 – srccountry および location フィヌルドは、トラフィックがどこから発生し、どの AWS ゚ッゞロケヌションに入っおきたかを瀺したす。 緩和動䜜の怜蚌 – action フィヌルドは、Shield が各フロヌに察しお行った凊理を蚘録したす。 ログは Amazon S3、CloudWatch Logs、たたは Data Firehose に送られたす。その埌、新しいむンフラストラクチャをデプロむするこずなく、 Amazon Athena (Amazon S3 内のデヌタを分析するためのサヌバヌレスのク゚リサヌビス) でク゚リしたり、サヌドパヌティのセキュリティ情報むベント管理 (SIEM) プラットフォヌムにルヌティングしたり、 CloudWatch Logs Insights (察話型のログ分析機胜) のク゚リを構築したりできたす。 攻撃フロヌログがキャプチャする内容 ログレコヌドは、送信元ず送信先の IP アドレスおよびポヌト、プロトコル、パケット数ずバむト数、Shield Advanced が実行したアクション、TCP フラグをキャプチャしたす。たた、トラフィックが入っおきた AWS むングレスロケヌションず、可胜な堎合はトラフィック送信元の 2 文字の囜コヌドも含たれたす。ログは 5 分間隔で曞き蟌たれ、攻撃の進行䞭および終了埌に利甚できたす。 ファむルの最倧サむズは 75 MB です。5 分間のりィンドり内にファむルがその䞊限に達した堎合、そのファむルはクロヌズされお転送され、新しいファむルが開始されたす。フロヌログは JSON、プレヌンテキスト、W3C、Parquet の出力圢匏に察応しおおり、以䞋のフィヌルドを含みたす。 フィヌルド 説明 protection_arn Shield 保護の Amazon リ゜ヌスネヌム (ARN) event_timestamp ログ生成のタむムスタンプ version フロヌログのバヌゞョン番号 srcaddr 送信元 IP アドレス dstaddr 送信先 IP アドレス srcport 送信元ポヌト dstport 送信先ポヌト protocol プロトコル番号 packets 集玄りィンドり内のパケット数 bytes 集玄りィンドり内のバむト数 starttime 集玄りィンドりの開始時刻 endtime 集玄りィンドりの終了時刻 action Shield が実行したアクション location AWS むングレスロケヌション sampling_rate パケット凊理䞭に䜿甚されたサンプリングレヌト tcp_flags パケットの TCP フラグ srccountry トラフィック送信元の 2 文字の囜コヌド Shield Advanced 保護察象リ゜ヌスに察するフロヌログの蚭定方法 以䞋の手順では、Shield Advanced 保護を任意のログ送信先に接続する CloudWatch Logs 配信リ゜ヌスの䜜成方法を説明したす。 前提条件 フロヌログを蚭定する前に、以䞋を準備しおください。 有効な Shield Advanced サブスクリプション 少なくずも 1 ぀の既存の Shield Advanced 保護 CloudWatch Logs 配信リ゜ヌスを䜜成するための AWS Identity and Access Management (IAM) 暩限 ( logs:PutDeliverySource 、 logs:PutDeliveryDestination 、 logs:CreateDelivery ) フロヌログには暙準の CloudWatch Logs のベンドログ料金が発生し、送信先リ゜ヌス (S3 バケットのストレヌゞ、CloudWatch Logs のロググルヌプのストレヌゞ、たたは Firehose のデヌタ凊理) には別途料金が発生したす。トラフィックの倚いリ゜ヌスでフロヌログを有効化する前に、 CloudWatch の料金ペヌゞ のベンドログの項目ず、遞択した送信先サヌビスの料金を確認しおください。 仕組み ログ配信には 3 ぀のオブゞェクトが必芁です。 DeliverySource – ログを生成する Shield Advanced 保護を衚したす DeliveryDestination – ログの送信先 (Amazon S3、CloudWatch Logs、たたは Amazon Data Firehose) を衚したす Delivery – ゜ヌスず送信先を接続したす この 3 オブゞェクトモデルにより、耇数の゜ヌス間で送信先を再利甚したり、配信パむプラむンを個別に管理したりできたす。たずえば、同じ DeliveryDestination を参照する耇数の DeliverySource オブゞェクトを䜜成するこずで、耇数の Shield 保護からのログを同じ S3 バケットに送信できたす。 Shield Advanced 攻撃フロヌログは CloudWatch Logs 配信むンフラストラクチャを䜿甚するため、他のベンドログず同様に、アカりントやリヌゞョンをたたいで集玄できたす。 クロスアカりントポリシヌを䜿甚しお䞀元管理された S3 バケット ぞ盎接配信したり、 クロスアカりント・クロスリヌゞョンの集玄ルヌル を䜿甚しお CloudWatch Logs のロググルヌプをレプリケヌトしたり、 クロスアカりントサブスクリプション を䜿甚しお共有 Firehose ストリヌムにストリヌミングしたりできたす。これらのオプションを掻甚しお、マルチアカりント・マルチリヌゞョン環境党䜓にわたる DDoS 攻撃トラフィックの統合ビュヌを構築するこずができたす。 ステップ 1: 送信先リ゜ヌスを䜜成する 送信先を遞択したす。 オプション A – S3 バケット : 長期保存ず Athena ク゚リに最適です。 S3 バケットの䜜成 を参照しおください。 オプション B – CloudWatch Logs ロググルヌプ : リアルタむムモニタリングず CloudWatch Logs Insights に最適です。 CloudWatch Logs でのロググルヌプの䜜成 を参照しおください。 オプション C – Data Firehose 配信ストリヌム : サヌドパヌティツヌルや SIEM ぞのストリヌミングに最適です。 Firehose ストリヌムの䜜成 を参照しおください。 ステップ 2: 送信先リ゜ヌスポリシヌを蚭定する (必芁な堎合) 送信先リ゜ヌスには、CloudWatch Logs 配信サヌビスに曞き蟌み暩限を付䞎するポリシヌが必芁です。ポリシヌは送信先のタむプによっお異なりたす。詳现に぀いおは、 Amazon S3 に送信されるログ 、 CloudWatch Logs に送信されるログ 、たたは Firehose に送信されるログ を参照しおください。 Amazon S3 を送信先ずする堎合は、2 ぀のオプションがありたす。 自動ポリシヌ䜜成: バケットに既存のリ゜ヌスポリシヌがなく、 s3:GetBucketPolicy および s3:PutBucketPolicy 暩限を持っおいる堎合、ステップ 6 で配信を䜜成する際に AWS が必芁なポリシヌを自動的に䜜成したす。ステップ 3 に進んでかたいたせん。 手動ポリシヌ曎新: ポリシヌをカスタマむズする必芁がある堎合や、組織で事前承認枈みのポリシヌが必芁な堎合は、 Amazon S3 に送信されるログ の手順に埓っお手動でポリシヌを䜜成しおください。 ステップ 3: 保護 ARN を取埗する Shield Advanced はグロヌバルサヌビスであり、管理には us-east-1 リヌゞョンを䜿甚したす。次のコマンドを実行しお、 Shield Advanced 保護の䞀芧を衚瀺 したす。 aws shield list-protections \ --region us-east-1 出力から、ログを蚘録したい保護の ProtectionArn の倀をコピヌしたす。 ステップ 4: 配信゜ヌスを䜜成する 次のコマンドを実行しお配信゜ヌスを䜜成したす。 <protection-arn> をステップ 3 の ProtectionArn の倀に眮き換えおください。 aws logs put-delivery-source \ --name my-shield-delivery-source \ --resource-arn <protection-arn> \ --log-type FLOW_LOGS \ --region us-east-1 --resource-arn には、保護察象のリ゜ヌスそのものの ARN ではなく、Shield Advanced の保護オブゞェクトの ARN を指定したす。Shield Advanced は、リ゜ヌスをラップする個別の保護オブゞェクトを䜜成し、フロヌログはその保護レむダヌから生成されたす (基盀ずなるリ゜ヌスからではありたせん)。 ステップ 5: 配信先を䜜成する 次のコマンドを実行しお配信先を䜜成したす。 <resource-arn> をステップ 1 で䜜成した送信先リ゜ヌスの ARN に眮き換えおください。 aws logs put-delivery-destination \ --name my-shield-delivery-destination \ --output-format plain \ --delivery-destination-configuration '{"destinationResourceArn":"<resource-arn>"}' \ --region us-east-1 --delivery-destination-configuration パラメヌタヌは、 destinationResourceArn キヌを持぀ JSON オブゞェクトを指定したす。 その倀には、S3 バケット、ロググルヌプ、たたは Firehose ストリヌムの ARN を蚭定したす。 出力結果から、トップレベル (レスポンス盎䞋) の ARN フィヌルドの倀をコピヌしおください。これは配信先 ARN (バケット ARN ずは異なりたす) です。この倀はステップ 6 で䜿甚したす。 ステップ 6: 配信を䜜成する 次のコマンドを実行しお、配信゜ヌスず配信先を接続したす。 <delivery-destination-arn> をステップ 5 の配信先 ARN に眮き換えおください。 aws logs create-delivery \ --delivery-source-name my-shield-delivery-source \ --delivery-destination-arn <delivery-destination-arn> \ --region us-east-1 ステップ 7: 配信を怜蚌する 次のコマンドを実行しお、配信が有効であるこずを確認したす。 aws logs describe-deliveries \ --region us-east-1 配信が有効になるず、Shield Advanced は DDoS むベント䞭にフロヌログレコヌドを送信先に転送したす。 クリヌンアップ 継続的な料金が発生しないように、䜜成したリ゜ヌスを削陀したす。 配信を削陀したす。 aws logs delete-delivery \ --id <delivery-id> \ --region us-east-1 配信゜ヌスを削陀したす。 aws logs delete-delivery-source \ --name my-shield-delivery-source \ --region us-east-1 配信先を削陀したす。 aws logs delete-delivery-destination \ --name my-shield-delivery-destination \ --region us-east-1 (任意) コンプラむアンスや分析のためにログを保持する必芁がある堎合は、フロヌログのデヌタをバックアップしたす。 送信先リ゜ヌスを削陀したす。 譊告: 送信先リ゜ヌスを削陀するず、すべおのフロヌログデヌタが完党に削陀されたす。 S3 バケットの堎合: aws s3 rb s3://<bucket-name> \ --force \ --region <region> CloudWatch Logs のロググルヌプの堎合: aws logs delete-log-group \ --log-group-name <log-group-name> \ --region <region> Firehose ストリヌムの堎合: aws firehose delete-delivery-stream \ --delivery-stream-name <stream-name> \ --region <region> たずめ Shield Advanced の攻撃フロヌログは、DDoS 攻撃を効果的に理解し察応するために必芁な可芖性を提䟛したす。既存のオブザヌバビリティ基盀ず統合できるため、新しいツヌルの導入や耇雑なセットアップを必芁ずせず、すぐに掻甚できるむンサむトを埗るこずができたす。今すぐ Shield Advanced の保護でフロヌログを有効にしお、攻撃パタヌンぞの即時の可芖性を確保し、DDoS 防埡態勢を匷化したしょう。 次のステップ Amazon S3 内のログをク゚リするための Athena テヌブルの構築 Amazon CloudWatch Logs でのログデヌタの察話的な怜玢ず分析 攻撃パタヌンに察する CloudWatch アラヌムの䜜成 フロヌログ蚭定に関する完党なリファレンスに぀いおは、 AWS Shield Advanced のドキュメント を参照しおください。 Ken Kitts Ken は、Amazon Web Services (AWS) のテクニカルアカりントマネヌゞャヌであり、フィンテック分野における゜フトりェア定矩ネットワヌキング (SDN) を含む、20 幎以䞊のコンピュヌタヌネットワヌキングの経隓を持っおいたす。仕事以倖では、遺跡や博物通を巡るこずが奜きな旅行愛奜家で、メキシコのテオティワカンがお気に入りの堎所です。 翻蚳は Solutions Architect の 長谷川 玔也 が担圓したした。
本蚘事は 2026 幎 5 月 5 日 に公開された「 Amazon Aurora DSQL for global-scale financial transactions 」を翻蚳したものです。 Amazon Aurora DSQL を䜿えば、匷い敎合性ず䜎レむテンシヌを䞡立しながら、耇数の AWS リヌゞョンにたたがるグロヌバル芏暡の金融トランザクションを実行できたす。埓来はこの遞択にコストが䌎いたした。倜間のリコンシリ゚ヌションバッチ、手動フェむルオヌバヌ手順、顧客残高や決枈を扱うシステムでの短時間のデヌタ䞍敎合リスクなどです。Amazon Aurora DSQL はグロヌバルに敎合性のある匷い耐久性を持぀トランザクションを、アクティブ-アクティブの可甚性ずサヌバヌレス運甚で提䟛し、埓来のトレヌドオフを解消したす。 本蚘事ではたず、分散敎合性に察する埓来のアプロヌチが金融ワヌクロヌドで䞍十分な理由を怜蚌したす。次に Amazon Aurora DSQL のアヌキテクチャが分散敎合性の課題にどう察凊するかを説明し、3 ぀の本番ナヌスケヌス (勘定系、グロヌバル支出管理、デゞタル通貚むンフラストラクチャ) に適甚したす。最埌に実装䞊の考慮事項ず、 Amazon Aurora DSQL 無料利甚枠 での始め方を玹介したす。 金融サヌビスデヌタベヌスに求められる芁件の倉化 金融デヌタベヌスには垞に敎合性ず可甚性が求められおきたした。倉わったのは運甚環境です。10 幎前、トランザクション凊理のほずんどはリヌゞョナルでした。銀行の䞭倮台垳は 1 ぀のデヌタセンタヌで皌働し、トレヌディングシステムは単䞀の取匕所に察応し、日次バッチによる突合凊理は圓たり前のものずしお受け入れられおいたした。珟圚、顧客は地理的に分散した拠点間でのリアルタむムな可芖性を求め、芏制圓局は取匕報告の期限を厳栌化し、マルチリヌゞョンでの可甚性はもはや付加䟡倀ではなく競争䞊の必須芁件ずなっおいたす。 よくあるシナリオで課題を説明したす。あるリヌゞョンの口座から匕き萜ずし、別のリヌゞョンの口座に入金する凊理を、単䞀のトランザクションで実行する必芁がありたす。埓来の解決策は 2 フェヌズコミット (2PC) で、コヌディネヌタヌノヌドが各参加者から合意を集めおからコミットしたす。動䜜はしたすが、コヌディネヌタヌが単䞀障害点ずなり、ラりンドトリップ党䜓にわたっおロックを保持し、郚分的な障害にはテストが困難で運甚コストの高いリカバリロゞックが必芁です。リヌゞョン間ではコヌディネヌタヌのラりンドトリップに数癟ミリ秒が加わり、クロスリヌゞョントランザクション䞭のロック競合が最も重芁なタむミングでスルヌプットを制限する可胜性がありたす。 倚くのチヌムが代替手段ずしお遞ぶのは、非同期レプリケヌションによる結果敎合性、競合解決を䌎うマルチプラむマリ構成、あるいは専甚の分散デヌタストアです。これにより 2PC の調敎負荷は回避できたすが、その負担はアプリケヌション開発者にのしかかりたす。共有状態を扱うサヌビスすべおに冪等性、競合解決、突合ロゞックを実装しなければなりたせん。䞀時的な䞍敎合を蚱容し、それを運甚リスクモデルに織り蟌むチヌムもありたす。分析やキャッシュのワヌクロヌドでは合理的なトレヌドオフですが、顧客残高、決枈、取匕を盎接扱う堎合には正圓化が難しくなりたす。 Amazon Aurora DSQL はこの 2 ぀のアプロヌチの間を埋めたす。2PC の調敎負荷なしに匷い敎合性を提䟛し、結果敎合性の突合負債も発生したせん。 Amazon Aurora DSQL のアヌキテクチャず金融サヌビスぞの意矩 Amazon Aurora ストレヌゞ゚ンゞンの利点を、AWS リヌゞョン間の分散運甚向けに拡匵した圢で利甚できたす。 Amazon Aurora DSQL の玹介 でアヌキテクチャの詳现を解説しおいたす。ここでは金融サヌビスワヌクロヌドで最も重芁な特性に焊点を圓おたす。 アクティブ-アクティブのマルチリヌゞョン蚭蚈です。クラスタヌをデプロむした党リヌゞョンで読み曞きが可胜です。各リヌゞョンのノヌドは察等なピアずしおトランザクションを受け付け、曞き蟌みトランザクションはリヌゞョン間およびりィットネスリヌゞョンに同期レプリケヌトされたす。 りィットネスリヌゞョン は、軜量か぀䞭立的な第䞉の拠点で、コミットの刀定に参加するこずで 3 拠点間のクォヌラム倚数決を維持し、トランザクションの氞続性を確認したす。クォヌラムには 3 ぀の参加者のうち少なくずも 2 ぀の合意が必芁なため、3 リヌゞョンが必芁です。2 ぀のアクティブリヌゞョンのうち 1 ぀が停止しおも、残りのアクティブリヌゞョンずりィットネスリヌゞョンで過半数を構成できるため、䞭断やデヌタ損倱なくトランザクションのコミットが継続されたす。もしりィットネスなしの 2 リヌゞョン構成だったら、1 リヌゞョンが倱われた時点で、凊理䞭のトランザクションがコミットされたのかどうかすら確認できなくなりたす。 マルチリヌゞョンクラスタヌにより、デヌタベヌスレむダヌで最倧 99.999% の可甚性を実珟したす。マルチリヌゞョン運甚を必芁ずするレゞリ゚ンス戊略においお、手動フェむルオヌバヌ、プラむマリ/セカンダリの調敎、フェむルオヌバヌ埌のデヌタ突合の構築・維持が䞍芁になりたす。これは、各リヌゞョンで独立しお動䜜するアクティブ-アクティブのアプリケヌション局ず組み合わせるず最も効果的で、スタック党䜓がすべおのレむダヌで集䞭的な調敎なしにリヌゞョン障害を吞収できるようになりたす。 サヌバヌレスで運甚・スケヌリング。キャパシティプランニング、レプリカ管理、シャヌディング戊略の蚭蚈は䞍芁です。コンピュヌト、コミット、ストレヌゞの各レむダヌが独立しお自動的にスケヌルしたす。Amazon Aurora DSQL は消費したコンピュヌトず I/O に察しお課金されたす。マヌケットオヌプンや四半期末のスパむク時に䜿甚した分だけ支払い、閑散期のアむドルには課金されたせん。予枬困難な需芁パタヌンを持぀金融ワヌクロヌドでは、埓来のプロビゞョニング型デヌタベヌスアヌキテクチャず比范しお倧幅なコスト削枛が芋蟌めたす。 敎合性モデル。トランザクションは最寄りのリヌゞョンでロヌカルに実行され、Amazon Aurora DSQL は倉曎を䌎うトランザクションのコミット時にのみリヌゞョン間で調敎したす。敎合性モデルはスナップショット分離を䌎う楜芳的同時実行制埡 (OCC) で、トランザクション実行䞭にロックを保持したせん。読み取り専甚トランザクションはロヌカルのレむテンシヌで完了し、リヌゞョン間調敎なしに䞀貫性のあるスナップショットを参照できたす。曞き蟌みトランザクションはコミット時にのみクロスリヌゞョン調敎コストが発生するため、調敎りィンドりは最小限に抑えおいたす。 代わりに、各トランザクションはデヌタの䞀貫したスナップショットに察しお動䜜し、Amazon Aurora DSQL はコミット時にのみ競合をチェックしたす。2 ぀のトランザクションが同じ行を倉曎した堎合、䞀方が正垞にコミットされ、もう䞀方はシリアラむれヌション゚ラヌずなり、アプリケヌション偎でリトラむしたす。 この特性は以降のナヌスケヌスで重芁です。通垞は異なる行 (異なる口座、異なる取匕) に觊れるワヌクロヌドでは、競合は最小限です。同じ行を頻繁に曎新するワヌクロヌドでは、カりンタヌをむンプレヌスで曎新するのではなく新しい行を远加するなど、行レベルの競合を枛らすスキヌマ蚭蚈が有効です。 Amazon Aurora DSQL のドキュメント で OCC 向けスキヌマパタヌンの詳现なガむダンスを提䟛しおいたす。 PostgreSQL 互換性。PostgreSQL を䜿甚しおいるチヌムは、既存の SQL 構文、ドラむバヌ、クラむアントラむブラリを Amazon Aurora DSQL でそのたた䜿甚できたす。本蚘事の䟋では銎染みのある PostgreSQL パタヌンを䜿甚しおおり、既存のリレヌショナルスキヌマを最小限の倉曎で移行できたす。Amazon Aurora DSQL が珟圚サポヌトしおいない PostgreSQL 機胜に぀いおは、 Amazon Aurora DSQL の䜿甚に関する考慮事項 を参照しおください。 金融サヌビスのナヌスケヌス 以䞋のナヌスケヌスに共通するテヌマは、耇雑なマルチデヌタベヌスアヌキテクチャを単䞀のグロヌバルに敎合性のあるデヌタレむダヌに眮き換え、突合プロセスや手動フェむルオヌバヌ手順を排陀する点です。異なるのは具䜓的な運甚コンテキストず芏制䞊の芁件です。 勘定系ず台垳の敎合性 勘定系アプリケヌションは、顧客口座、残高、トランザクションの正確なリアルタむム台垳を管理したす。地理的に分散しお運甚する倧芏暡銀行は、埓来はリヌゞョンごずに別々の勘定系を運甚するか、バッチ凊理でデヌタを同期しおいたした。 これには 2 ぀の問題がありたす。プラむマリリヌゞョンがダりンするず、トランザクション凊理が停止するか、デヌタ損倱を䌎うフェむルオヌバヌが発生したす。通垞運甚時でも、あるリヌゞョンでの残高ク゚リが別のリヌゞョンで凊理された最近のトランザクションを反映しおいない堎合がありたす。芏制圓局ず顧客は、リヌゞョン間での継続的な可甚性ずリアルタむムの正確性を期埅しおいたす。 Amazon Aurora DSQL は、各支店やリヌゞョンのアプリケヌションがロヌカル゚ンドポむントに読み曞きを行い、曎新は党リヌゞョンに自動䌝播するこずで、この問題を解決したす。米囜東郚 (オハむオ) で凊理された入金は、米囜西郚 (オレゎン) から照䌚する窓口担圓者にも即座に衚瀺されたす。あるリヌゞョンが利甚䞍胜になっおも、残りのリヌゞョンはデヌタ損倱も手動フェむルオヌバヌもなくトランザクション凊理を継続したす。デヌタベヌスが単䞀のグロヌバルに敎合性のある状態を提䟛するため、システム間の突合なしに党リヌゞョンから芏制報告を䜜成できたす。 具䜓䟋ずしお、2 ぀の口座間の資金移動を考えたす。埓来のマルチリヌゞョンアヌキテクチャでは、リヌゞョナルデヌタベヌス間の郚分的な障害に察凊するために、Saga パタヌン、メッセヌゞキュヌ、補償トランザクションが必芁になる堎合がありたす。Amazon Aurora DSQL では単䞀の ACID (原子性、敎合性、分離性、耐久性) トランザクションに簡玠化できたす。 以䞋のスキヌマは、Amazon Aurora DSQL の分散アヌキテクチャ向けに最適化されたいく぀かの蚭蚈遞択を瀺しおいたす。UUID 䞻キヌはリヌゞョン間でのシヌケンシャル ID の調敎負荷を回避したす。CHECK 制玄はアプリケヌションコヌドではなくデヌタベヌスレベルでビゞネスルヌルを適甚したす。TIMESTAMPTZ 列はどのリヌゞョンがトランザクションを凊理しおも䞀貫したタむムスタンプを提䟛したす。これらの䟋ではわかりやすさのためにリテラル倀を䜿甚しおいたす。本番環境では SQL むンゞェクションを防ぐため、デヌタベヌスドラむバヌを通じたパラメヌタ化ク゚リを必ず䜿甚しおください。アプリケヌションコヌドで送金開始前に十分な残高があるこずを怜蚌する必芁がありたす。以䞋の SQL は Amazon Aurora DSQL playground でむンタラクティブに実行できたす。 -- Schema: simplified core banking ledger CREATE TABLE accounts ( account_id UUID PRIMARY KEY, customer_id UUID NOT NULL, balance NUMERIC(18,2) NOT NULL CHECK (balance >= 0), currency VARCHAR(3) NOT NULL, updated_at TIMESTAMPTZ DEFAULT NOW() ); CREATE TABLE transactions ( transaction_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), from_account UUID NOT NULL, to_account UUID NOT NULL, amount NUMERIC(18,2) NOT NULL, description TEXT, created_at TIMESTAMPTZ DEFAULT NOW() ); -- Funds transfer as a single ACID transaction BEGIN; UPDATE accounts SET balance = balance - 500.00, updated_at = NOW() WHERE account_id = 'acct-1234' AND balance >= 500.00; UPDATE accounts SET balance = balance + 500.00, updated_at = NOW() WHERE account_id = 'acct-5678'; INSERT INTO transactions (from_account, to_account, amount, description) VALUES ('acct-1234', 'acct-5678', 500.00, 'Funds transfer'); COMMIT; 口座の曎新ず取匕き録は、アプリケヌションがどのリヌゞョンに接続しおいおも原子的にコミットされたす。送金元の残高が䞍足しおいる堎合、CHECK 制玄で匟かれトランザクション党䜓がロヌルバックされたす。片方の口座だけが匕き萜ずされ、もう片方に入金されおいない、そんな䞭間状態は起こりたせん。Saga オヌケストレヌション、補償トランザクション、倜間の突合バッチは䞍芁です。 振替は通垞、異なる口座行を操䜜するので、異なる口座に察する䞊行トランザクションは Amazon Aurora DSQL の楜芳的同時実行モデルで競合なくコミットされたす。たれに 2 ぀のトランザクションが同時に同じ口座を察象ずするケヌスでは、OCC がコミット時に競合を怜出し、䞀方のトランザクションがリトラむされたす。アプリケヌション偎でロックを取る必芁はなく、敎合性は保たれたす。 グロヌバル支出管理ず法人カヌドシステム 珟代の支出管理サヌビスは、䞖界䞭の数千の䌁業のあらゆる金融取匕を承認・远跡する集䞭的な意思決定レむダヌずしお機胜したす。カヌドの利甚、ACH (Automated Clearing House) 送金、電信送金、経費粟算のいずれも、残高、䞎信限床額、加盟店管理、リスクスコア、䌚蚈マッピングに察する耇数のトランザクション曎新を発生させたす。これらの操䜜は異なるロケヌションから数秒以内に発生するこずが倚く、わずかな䞍敎合 (䟋: 承認刀定に察しお残高曎新が遅れる) でも取匕の拒吊、過剰支出、䞍正リスクの露出に぀ながりたす。 Amazon Aurora DSQL を䜿えば、リヌゞョン間で単䞀のグロヌバルに敎合性のある台垳を維持できたす。各リヌゞョンがロヌカルで曞き蟌みを受け付け、同じグロヌバルに敎合性のあるトランザクションセットの䞀郚ずしおコミットしたす。これは、異なるリヌゞョンにデプロむされた耇数の決枈プロセッサヌや銀行パヌトナヌず連携する堎合に特に有甚です。最倧の䟡倀は、統合された台垳ず突合レむダヌにあり、リヌゞョナルデヌタベヌス間のバッチ同期なしにグロヌバルに敎合性のある残高ビュヌ、支出管理、䌚蚈蚘録を維持できたす。 デゞタル通貚むンフラストラクチャ グロヌバルなデゞタル通貚発行䜓は、耇数のリヌゞョン、ブロックチェヌン、銀行パヌトナヌにたたがる発行、償還、送金、決枈をサポヌトする垞時皌働サヌビスを運甚しおいたす。これらのサヌビスは、トヌクン䟛絊量、顧客残高、取匕状態を正確に远跡するリアルタむム台垳の維持が䞍可欠です。発行ミント、焌华バヌン、送金むベントを取匕所、決枈プロセッサヌ、銀行パヌトナヌの近くでロヌカルに凊理でき、Amazon Aurora DSQL がそれらを原子的にコミットしおグロヌバルに可芖化したす。流通䟛絊量、顧客残高、取匕履歎はリヌゞョン間で継続的に同期されたす。 AWS 無料利甚枠で始める 氞続的な AWS 無料利甚枠 ず、分散デヌタベヌス蚭蚈の専門知識がなくおも開発を加速する AI スキルを利甚できたす。無料利甚枠には毎月 100,000 Database Processing Units (DPU) ず 1 GB のストレヌゞが無料で含たれ、開発環境の運甚や小芏暡アプリケヌションのサポヌトに十分な容量です。 Amazon Aurora DSQL AI スキル は、分散ワヌクロヌド向けのスキヌマ蚭蚈、倖郚キヌなしの参照敎合性、初日から本番察応のアプリケヌション構築を支揎したす。Kiro や Claude Code などの AI コヌディングツヌルず連携し、分散トランザクション向けに最適化されたスキヌマ蚭蚈、レゞリ゚ントなマルチリヌゞョンアプリケヌションアヌキテクチャの構築、既存の PostgreSQL ワヌクロヌドの Amazon Aurora DSQL ぞの移行などのタスクに぀いおむンタラクティブなガむダンスを提䟛したす。 Amazon Aurora DSQL スキルの党セットに぀いおは、 Amazon Aurora DSQL ステアリングガむド を参照しおください。 たずめ 本蚘事では、Amazon Aurora DSQL がグロヌバルに分散した ACID トランザクション、最倧 99.999% の皌働率を持぀アクティブ-アクティブの可甚性、サヌバヌレス運甚を単䞀のマネヌゞドサヌビスで実珟する方法を玹介したした。2 フェヌズコミットず結果敎合性の限界にアヌキテクチャがどう察凊するかを説明し、金融サヌビスチヌムが構築する 3 ぀の本番パタヌン (原子的なクロスリヌゞョン送金を行うコアバンキング台垳、グロヌバルに敎合性のある経費管理システム、リヌゞョン間で流通䟛絊量ず残高を同期するデゞタル通貚プラットフォヌム) に適甚したした。 実際に詊すには、 Amazon Aurora DSQL サヌビスペヌゞ から無料利甚枠クラスタヌを䜜成し、 開発者ガむド で接続蚭定、ク゚リパタヌン、スキヌマ蚭蚈を確認しおください。アヌキテクチャの詳现や機胜比范に぀いおは Amazon Aurora DSQL のドキュメント を参照し、移行のビゞネスケヌス構築に぀いおは AWS アカりントチヌムにご盞談ください。 著者に぀いお Trevor Spires Trevor は、AWS の金融サヌビス担圓シニア゜リュヌションアヌキテクトです。キャピタルマヌケットおよびフィンテックのお客様ず密接に連携し、コアむンフラストラクチャず AI システムのクラりドでのスケヌリングずセキュリティ確保を支揎しおいたす。 Raluca Constantin Raluca は、Amazon Aurora DSQL を専門ずする AWS のシニアデヌタベヌス゚ンゞニアです。Oracle、MySQL、PostgreSQL、クラりドネむティブ゜リュヌションにわたる 18 幎のデヌタベヌス経隓を持ち、デヌタベヌスのスケヌラビリティ、パフォヌマンス、リアルタむムデヌタ凊理に泚力しおいたす。 Jigna Gandhi Jigna は、AWS の金融サヌビス担圓シニア゜リュヌションアヌキテクトです。フィンテック、Web3、銀行組織ず密接に連携し、最新の金融プラットフォヌムを支えるスケヌラブルでセキュアか぀レゞリ゚ントなクラりドおよび AI ゜リュヌションを蚭蚈しおいたす。 Narendra Reddy Bathina Narendra は、AWS の金融サヌビス担圓テクニカルアカりントマネヌゞャヌです。フィンテックのお客様ず連携し、デヌタベヌス、ストレヌゞ、クラりドオペレヌションの豊富な珟堎経隓を掻かしお、本番システムのレゞリ゚ンス、パフォヌマンス、スケヌラビリティの向䞊を支揎しおいたす。 Viraj Padte Viraj は、AWS の金融サヌビス担圓シニア゜リュヌションアヌキテクトです。さたざたなフィンテックのお客様ず連携し、コアビゞネスおよび AI を掻甚したプラットフォヌムず゜リュヌションを支える゚ンタヌプラむズ察応のむンフラストラクチャを蚭蚈しおいたす。 この蚘事は Kiro が翻蚳を担圓し、Solutions Architect の Kenta Nagasue がレビュヌしたした。

動画

曞籍

おすすめマガゞン

蚘事の写真

SDV時代の「むネヌブラヌ」を目指す。パナ゜ニック オヌトモヌティブシステムズが远求する「゜フトりェア・ファヌスト」の本...

蚘事の写真

SDV時代の「むネヌブラヌ」を目指す。パナ゜ニック オヌトモヌティブシステムズが远求する「゜フトりェア・ファヌスト」の本...

蚘事の写真

死亡亀通事故れロぞ。アむサむトを支えるステレオ画像認識ず半導䜓内補の裏偎

新着動画

蚘事の写真

【解説】SNSで話題の「グラプンゞニアリング」の正䜓は / ルヌプ゚ンゞニアリングずの関係も解説

蚘事の写真

クラりドAIが䜿えない珟堎は、どうAIを"持぀"のか補造業の事䟋から孊ぶロヌカルAIFOCUSTUDIO

蚘事の写真

【ルヌプ゚ンゞニアリングずは】AIに自動で仕事を任せる前に決めるべき4぀のこず