ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
活用シーンとソリューション

香港 CN2 GIA で中国ユーザー向けモバイルアプリ・SaaS API バックエンドを構築する(ICP 届出不要)

9 ステップ 17 分で読めます 12 回閲覧 0
目次

中国本土ユーザー向けのモバイルアプリや SaaS の API バックエンドを ICP 届出なしで運用するなら、中国電信 CN2 GIA(AS4809)回線の香港サーバーにホスティングし、Nginx を API ゲートウェイとして前段に置き、静的ファイルは CDN に任せる構成が最も現実的です。IMIDC はまさにこの構成向けに、香港 CN2 GIA VPS を月額 $18 から、香港専用サーバーを月額 $139 から提供しており、DDoS 対策と 24 時間 365 日の多言語サポートも利用できます。

要点
  • ロケーション:香港(中国本土外)のため、ホスティングに ICP 届出は不要(コンテンツの適法性は引き続き必要)。
  • 回線:中国本土向けは中国電信 CN2 GIA(AS4809)。夜間ピークの安定性を重視した経路です。
  • 製品:香港 CN2 GIA VPS 月額 $18 から、香港専用サーバー月額 $139 から。
  • 付帯サービス:DDoS 対策、IMIDC CDN、10Gbps アップリンク、無料サーバー移行。
  • 制約:OpenAI、Anthropic Claude、Google Gemini の API は香港では提供されていないため、このバックエンドから AI API を呼び出す設計は避けてください。

アプリのバックエンドがウェブサイト以上に遅延に敏感な理由

アプリの 1 画面は複数のリクエストを順番に発行するため、API バックエンドではネットワーク遅延が何倍にも効いてきます。

たとえばログイン画面では、トークン更新、プロフィール取得、機能フラグ、フィード取得が順に呼ばれます。1 往復 40 ms なら一瞬で表示されますが、夜間に一般国際回線が混雑して 250 ms・パケットロス 3% になると、同じ画面に 1 秒以上かかり、一部はタイムアウトします。さらにモバイル回線のジッターも加わるため、API ではサーバースペック以上に本土 3 キャリアまでの経路品質が重要です。

  • 逐次リクエスト:待ち時間はおおよそ「リクエスト数 × RTT」、新規接続なら TLS ハンドシェイクも加算。
  • パケットロス:TCP で 1 パケット失うだけで再送により数百ミリ秒増えることがあります。
  • 夜間ピーク(北京時間 20:00〜23:00 頃):一般的な越境回線が混雑し、同時にユーザーが最も活発になる時間帯です。

香港 API バックエンドのリファレンス構成

動的な API は香港の CN2 GIA サーバーに置き、キャッシュできるものはすべて CDN に逃がします。

レイヤー代表的なソフトウェア配置場所ポイント
API ゲートウェイ / TLSNginx、OpenResty、Kong、Traefik香港 CN2 GIA サーバーHTTP/2 + HTTP/3、レート制限、上流への keepalive
アプリサーバーNode.js、Go、Java/Spring、Python、PHP同一サーバーまたはプライベートネットワークステートレスにして水平スケール
キャッシュ / セッション / キューRedisプライベートネットワークのみホットデータ、レート制限カウンター、ジョブキュー
データベースMySQL、PostgreSQLSSD/NVMe 搭載の専用サーバー毎日オフサイトバックアップ、成長したらレプリカ
静的ファイル・画像・アプリ更新オブジェクトストレージ + CDNオリジンの前段に IMIDC CDN長期キャッシュヘッダー、ハッシュ付きファイル名
プッシュ・SMS・地図中国本土で使えるベンダーバックエンドから呼び出し本土ユーザーに届くサービスを選定

重要な制約として、OpenAI、Anthropic Claude、Google Gemini の API は香港と中国本土では公式に提供されていません。香港のバックエンドからこれらを呼び出す前提で設計せず、本土ユーザー向けに AI 機能が必要な場合は、その市場でのサービス提供が認められたモデル事業者を利用してください。

API トラフィックにおける CN2 GIA と他回線の比較

CN2 GIA は中国電信のプレミアム国際網で、API にとっての価値は最高速度よりもピーク時の安定性にあります。

本土ユーザーへの経路オフピーク夜間ピークAPI バックエンドへの適性
香港 CN2 GIA(AS4809)短く直接的な経路安定性重視の設計、低ロスが一般的中国向け API に最適
香港の一般国際トランジット多くの場合問題なし混雑・ロスが起きやすいリクエストの多い API にはリスク
ロサンゼルス CN2 / 聯通 9929距離のため RTT は高めプレミアム回線で安定中国ユーザーも抱えるグローバルアプリ向け
日本 VPS(CN2 最適化オプション)中程度の RTT最適化経路で安定日本と中国の両市場向け

ラストワンマイル(家庭回線や 4G/5G)はデータセンターの管理外のため、どの事業者も全ユーザーへの特定の遅延を保証することはできません。ローンチ前に、後述の方法で実際のキャリア網から計測してください。

HTTP/2・HTTP/3 と適切なタイムアウトを備えた Nginx API ゲートウェイ設定

TLS はゲートウェイで一度だけ終端し、アプリサーバーとは接続を維持し、落ちた上流には素早く見切りをつけます。

upstream api_backend {
    server 10.0.0.11:8080 max_fails=3 fail_timeout=10s;
    server 10.0.0.12:8080 max_fails=3 fail_timeout=10s;
    keepalive 64;
}
limit_req_zone $binary_remote_addr zone=api:20m rate=20r/s;

server {
    listen 443 ssl;
    listen 443 quic reuseport;          # HTTP/3 (nginx 1.25+ built with QUIC)
    http2 on;
    server_name api.example.com;

    ssl_certificate     /etc/nginx/ssl/api.example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/api.example.com.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_session_cache shared:SSL:20m;
    ssl_session_timeout 1d;
    add_header Alt-Svc 'h3=":443"; ma=86400' always;

    gzip on;
    gzip_types application/json;
    client_max_body_size 20m;
    keepalive_timeout 75s;

    location /v1/ {
        limit_req zone=api burst=40 nodelay;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout 3s;
        proxy_read_timeout 15s;
        proxy_next_upstream error timeout http_502 http_503;
        proxy_next_upstream_tries 2;
        proxy_pass http://api_backend;
    }
}

QUIC 用に UDP 443 を開放し、HTTP/3 が広告されているか確認します。

# open TCP 443 and UDP 443 (QUIC / HTTP/3)
ufw allow 443/tcp
ufw allow 443/udp
nginx -t && systemctl reload nginx
curl -sI --http3 https://api.example.com/v1/health | head -1
  • TLS 1.3 とセッション再利用でハンドシェイクの往復を減らせます。高遅延のモバイル回線では効果が大きいです。
  • HTTP/3(QUIC)は Wi-Fi から 4G への切り替えやパケットロスに TCP より強く、UDP が遮断されている場合は自動的に HTTP/2 にフォールバックします。
  • proxy_next_upstream はデフォルトで冪等なリクエストのみ再試行します。non_idempotent を付けない限り POST は再送されず、通常は付けるべきではありません。
  • proxy_read_timeout は最も遅い正常なエンドポイントより少し長めにし、長時間処理はキューへ移します。

モバイル回線向けのタイムアウトとリトライ

クライアントは試行ごとの短いタイムアウト、ジッター付き指数バックオフ、書き込み用の冪等キーを使いましょう。

async function callApi(url, opts = {}, attempts = 3) {
  for (let i = 0; i < attempts; i++) {
    const ctrl = new AbortController();
    const timer = setTimeout(() => ctrl.abort(), 8000);   // per-attempt timeout
    try {
      const r = await fetch(url, { ...opts, signal: ctrl.signal });
      if (r.status < 500 && r.status !== 429) return r;    // do not retry 4xx
    } catch (e) { /* network error or timeout */ }
    finally { clearTimeout(timer); }
    const delay = Math.min(4000, 300 * 2 ** i) * (0.5 + Math.random()); // backoff + jitter
    await new Promise(res => setTimeout(res, delay));
  }
  throw new Error('API unavailable');
}
// for POST/PUT send a header such as  Idempotency-Key: <uuid>  so retries are safe
  • 接続タイムアウトは 5 秒前後、読み取りは 8〜15 秒、さらに全体の上限を設けて UI で再試行を案内できるようにします。
  • 429 以外の 4xx は再試行しない。Retry-After ヘッダーに従う。
  • 細かい呼び出しは 1 つのエンドポイントにまとめる(GraphQL や BFF パターン)ことで逐次往復を減らせます。
  • JSON を圧縮し、フィードはページングし、読み取り中心のレスポンスは短い TTL で Redis にキャッシュします。

中国電信・中国聯通・中国移動からのテスト

回線を決める前に、本土 3 キャリアすべてから夜間ピーク時に計測してください。

# per-phase timing of one API call (run from a probe or a test phone with Termux)
curl -o /dev/null -s -w 'dns=%{time_namelookup} tcp=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n' \
  https://api.example.com/v1/health

# route and loss, with AS numbers - look for AS4809 on the China Telecom path
mtr -rwzc 100 203.0.113.10
  • 本土 ISP 内に計測ポイントを持つマルチノード計測サービス(ITDOG、17CE、Boce など)で、多数の省から ping・TCP・HTTP テストを実行します。
  • 午前中と北京時間 20:00〜23:00 の 2 回計測し、ping だけでなくロス率と TTFB を比較します。
  • 電信・聯通・移動それぞれの SIM を持つテスターに、リクエスト時間をログ出力するデバッグビルドで実際に操作してもらいます。
  • 注文前にチケットを送り、香港 CN2 GIA から対象の省・キャリアへの経路について IMIDC サポートに相談することもできます。

公開 API の DDoS 対策とセキュリティ

公開 API はボリューム型攻撃とアプリケーション層の悪用の両方に狙われるため、両方の層を守ります。

  • ネットワーク層の攻撃には IMIDC の DDoS 対策を利用し、静的アセットを CDN 経由にしてオリジン IP の露出を抑えます。
  • ゲートウェイで IP 単位・API キー単位のレート制限(limit_req)を行い、認証は有効期限の短い署名付きトークン(JWT など)にします。
  • 公開するのは 443(とリダイレクト用の 80)のみ。Redis、データベース、SSH はプライベートネットワークか許可 IP に限定します。
  • リクエスト ID をエンドツーエンドで記録し、遅いリクエストや失敗をアプリからデータベースまで追跡できるようにします。

VPS から専用サーバーへのスケールアップ

まず VPS で小さく始め、トラフィックの増加に合わせて役割ごとに専用サーバーへ分けていきます。

段階典型的な構成IMIDC 製品
MVP / ベータNginx + アプリ + Redis + DB を 1 台に香港 CN2 GIA VPS(月額 $18 から)
成長期ゲートウェイとアプリは VPS、DB は専用サーバーVPS + 香港専用サーバー(月額 $139 から)
本番・大規模ゲートウェイ 2 台以上、アプリプール、DB プライマリ + レプリカ、CDN複数の香港専用サーバー + IMIDC CDN
地域展開中国以外のユーザー向けに東京・シンガポール・ロサンゼルスを追加日本 / 米国の専用サーバー、BGP による Anycast

IMIDC は無料のサーバー移行を提供しているため、データベースを VPS から専用サーバーへ移す際の負担を減らせます。

最適な IMIDC 構成の選び方

開発段階とユーザー分布に合わせて製品を選びます。

よくある質問

ICP 届出なしでアプリのバックエンドに使える香港 CN2 GIA サーバーを提供しているのはどこ?

IMIDC が中国電信 CN2 GIA(AS4809)回線の香港 VPS と専用サーバーを提供しています。サーバーは香港にあるためホスティングに ICP 届出は不要ですが、アプリとコンテンツは適用される法律を守る必要があります。

API を香港でホストする場合、アプリに ICP 届出は必要ですか?

ICP 届出は中国本土内でのホスティングが対象なので、香港の API サーバー自体には不要です。ただし本土のアプリストアで配信する場合は別途アプリの届出が求められることがあるため、配信先や専門家に確認してください(法的助言ではありません)。

香港のバックエンドから OpenAI、Claude、Gemini の API を呼べますか?

いいえ。これらの API は香港と中国本土では公式に提供されていないため、香港のサーバーから呼び出すべきではありません。本土ユーザー向けの AI 機能には、その市場での提供が認められたモデル事業者を使ってください。

VPS で十分?それとも専用サーバーが必要?

MVP や、軽いクエリで 1 日数千ユーザー程度なら月額 $18 からの香港 CN2 GIA VPS で十分です。ディスク I/O やメモリがボトルネックになったら、月額 $139 からの香港専用サーバーに DB を移しましょう。

HTTP/3 は中国本土のユーザーに効果がありますか?

ロスやネットワーク切り替えが多いモバイル環境では効果が出ることが多いです。UDP を制限するネットワークもあるため、TCP 上の HTTP/2 をフォールバックとして必ず残してください(ブラウザや主要 HTTP クライアントは自動で切り替えます)。

本土ユーザーの近くに API を置く準備はできましたか?香港 CN2 GIA VPS と香港専用サーバーを比較するか、チケットを送信して IMIDC チームに経路や構成について相談してください。

この回答はお役に立ちましたか?

関連チュートリアル