Toxiproxy を HTTP プロキシの手前に置ける
SDK の HTTP プロキシ接続を Toxiproxy 経由で、CONNECT を理解する既存のフォワードプロキシへルーティングします。
Toxiproxy は TCP ストリームを設定済みのアップストリームへ転送し、そのストリームに障害を注入できます。ただし HTTP 制御 API は、トラフィックのリスナーを HTTP フォワードプロキシにするものではありません。
HTTP プロキシを使うよう設定された SDK であれば、既存のフォワードプロキシをその背後に置けます。
SDK → Toxiproxy 127.0.0.1:7890 → HTTP proxy 127.0.0.1:8888 → S3:443
Toxiproxy のリスナーを 7890 で待ち受け、127.0.0.1:8888 をアップストリームに設定します。SDK の HTTP プロキシ設定を http://127.0.0.1:7890 に向けます。リスナーは SDK の CONNECT 要求を中継し、HTTP プロキシが CONNECT を解釈して宛先へのトンネルを開きます。
これらのループバックアドレスは、三つのローカルコンポーネントが同じネットワーク名前空間を共有していることを前提とします。コンテナ内のコンポーネントには、それぞれの名前空間から到達できるアドレスが必要です。
この構成が変えるのはクライアントからフォワードプロキシまでの経路です。宛先の TLS やサービスの認証を置き換えるものではありません。注入した障害を評価するときは、SDK の再試行を別に数えてください。復旧した処理は、以前の失敗した試行を隠すことがあります。