---
# System prepended metadata

title: レンタカードットコム システム構成図

---

## システム構成図（レンタカードットコム）

```mermaid

flowchart TB

  %% ユーザー
  U(["お客様<br/>Browser"])
  Aapp(["お客様<br/>アプリ"])

  %% Linux側
  subgraph LNX["ontra-rentacar（Linuxホスト）"]
    direction TB
    RP["Nginx（リバースプロキシ）<br/>:443"]
    subgraph DC["Docker コンテナ群"]
      direction TB
      F["container_front<br/>フロントサイト<br/>(PHP・Laravel)"]
      A["container_api<br/>rentacar-api<br/>(Laravel)"]
    end
  end

  %% カスタマーサポート（黄色枠の外）
  CS(["カスタマーサポート<br/>Browser"])

  %% Windows側（黄色枠）
  subgraph WIN["Windows サーバー群"]
    direction TB
    subgraph IISG["IIS（Windows）"]
      direction TB
      BO["バックオフィス<br/>管理画面（BO）"]
      INV["在庫連携<br/>（連携サービス）"]
    end
    DB[["DBサーバー<br/>Oracle Database<br/>（Windows）"]]
  end

  %% 外部連携（黄色枠の外）
  subgraph AUTH["オーソリサーバー（外部連携）"]
    direction TB
    ASRV["クレジット認証・決済API<br/>(Auth Server)"]
  end

  MARIADB[["MariaDBクラスタ<br/>（外部DB / クラスタ構成）"]]

  subgraph GMO["GMOマルチペイメント（外部クレジット決済）"]
    direction TB
    GMOAPI["決済APIエンドポイント<br/>(GMO Multi Payment)"]
  end

  %% レンタカー会社（黄色枠の外）
  BJR["バジェット<br/>在庫連携のみ"]
  JSJR["Jネット・スカイレンタカー<br/>在庫・予約連携"]

  %% 経路（ユーザー系）
  U -->|"HTTPS通信"| RP
  Aapp -->|"アプリリクエスト"| A
  RP -->|"Webリクエスト"| F
  RP -->|"APIリクエスト"| A
  F -->|"API呼び出し"| A

  %% カスタマーサポート → BO
  CS -->|"HTTPS通信"| BO

  %% API/BO/在庫連携 ↔ DB
  A -->|"SQL実行"| DB
  BO -->|"参照・更新"| DB
  INV -->|"在庫同期"| DB

  %% レンタカー会社 → 在庫連携
  BJR -->|"API通信（在庫）"| INV
  JSJR -->|"API通信（在庫・予約）"| INV

  %% 決済系
  A -->|"クレジット認証・決済通信"| ASRV
  ASRV -->|"データ同期"| MARIADB

  F -->|"決済リクエスト送信"| GMOAPI
  A -->|"決済結果受信"| GMOAPI

```

<small>

### 1. **ユーザーアクセス**
- **お客様（Browser）**：HTTPS通信でフロントサイトにアクセス。予約・検索・決済などを行う。
- **お客様アプリ**：スマートフォンアプリからAPI経由でシステムと通信し、Webと同等の予約処理を実行。

---

### 2. **ontra-rentacar（Linuxホスト）**
- **Nginx（リバースプロキシ）**  
  外部からの通信を受け付け、HTTPS終端およびルーティングを担当。  
  フロント（Web）とAPIのリクエストをそれぞれのDockerコンテナに振り分ける。
- **container_front（PHP・Laravel）**  
  レンタカー予約サイトのUIを提供。検索・予約・決済画面など、ユーザー操作の起点。  
  クレジット決済時はGMOマルチペイメントのAPIを呼び出す。
- **container_api（Laravel）**  
  Web／アプリ双方のリクエストを受け、ビジネスロジックを処理。  
  Oracle DatabaseへのSQL実行、オーソリサーバーへの認証通信、GMO決済結果の受信を担当。

---

### 3. **Windowsサーバ群**
- **カスタマーサポート（Browser）**  
  Windowsサーバ群の上に配置され、HTTPS通信でバックオフィス（BO）へ接続。  
  顧客対応や予約確認など、管理者操作を実施。
- **バックオフィス（BO）**  
  業務担当者用の管理画面。顧客データ・予約情報の参照／更新やキャンセル処理などを行う。
- **在庫連携（連携サービス）**  
  IIS上で稼働し、各レンタカー会社との在庫・予約データ連携を実行。  
  API経由で在庫同期・予約確定・キャンセル反映などを処理。
- **DBサーバ（Oracle Database / Windows）**  
  メインデータベースとして稼働。サイト全体の在庫・顧客・予約データを保持し、BOおよびAPIから参照される。

---

### 4. **レンタカー会社とのデータ連携**
- **バジェット**  
  在庫連携のみ実施。IIS上の在庫連携サービスを通じて在庫データを同期。
- **Jネット・スカイレンタカー**  
  在庫および予約連携を実施。共通基幹システム上でAPI通信により在庫・予約情報を双方向同期。

---

### 5. **外部連携システム**
- **オーソリサーバー（Auth Server）**  
  クレジットカードの認証・決済処理を担当。  
  API（Laravel）から送信された決済リクエストを受け取り、認証結果を外部MariaDBクラスタへ同期。
- **MariaDBクラスタ（外部DB / クラスタ構成）**  
  オーソリサーバーからの決済・承認結果を保持。冗長構成により高可用性を確保。
- **GMOマルチペイメント（外部クレジット決済）**  
  フロントからの決済リクエストを受け付け、結果をAPIに返却。  
  決済処理・3Dセキュア対応・返金など、決済全般を担う外部サービス。

---

### 6. **通信フロー概要**
1. お客様（Browser／アプリ）からHTTPS通信でNginxにアクセス。  
   → フロントサイトまたはAPIに振り分け。
2. フロントサイトは画面表示と決済リクエスト送信を担当。  
   APIが予約・顧客・在庫などの実処理を行う。
3. APIはOracle Databaseに対してSQL実行を行い、在庫・予約情報を更新。  
4. クレジット決済時、APIがオーソリサーバーへ認証リクエストを送信し、結果をMariaDBクラスタに記録。  
5. GMOマルチペイメントを通じた外部決済処理が行われ、結果がAPIへ戻される。  
6. 在庫連携（IIS）がレンタカー会社各社とデータを同期。バジェットは在庫のみ、Jネット・スカイレンタカーは在庫＋予約両方を処理。  
7. カスタマーサポート担当者はBOを経由してデータを参照・更新。

---

### 7. **ログ管理**
- **Webアクセスログ（nginx）**：`/var/log/nginx`  
  外部アクセス・通信リクエストの記録。
- **APIアプリログ（Laravel）**：`/var/www/rentacar/rentacar-api/storage/logs`  
  各種API処理、外部通信、例外エラーを記録。
- **IISアクセスログ**：`C:\inetpub\logs\LogFiles\W3SVC*`  
  管理画面および在庫連携の通信履歴を保存。

---

### 8. **システム全体のフロー**
1. お客様がブラウザまたはアプリからアクセスし、Nginxを経由してWeb／API層へ接続。  
2. フロントサイトがUI処理・入力データ送信を担当し、APIが実際の予約・認証・在庫更新を担当。  
3. APIはOracle Databaseを操作して在庫・顧客・予約を更新し、必要に応じてオーソリサーバーへ決済リクエストを送信。  
4. オーソリサーバーはクレジット認証処理を行い、結果をMariaDBクラスタに保存。  
5. 決済関連情報はGMOマルチペイメント経由で外部カードネットワークと連携。  
6. IIS上の在庫連携がレンタカー会社（バジェット／Jネット・スカイレンタカー）とのデータ同期を実行。  
7. カスタマーサポート担当者はバックオフィスを通じて予約情報を管理し、顧客対応を行う。  
8. 各サーバは独立したログ領域を持ち、運用監視・障害分析に活用される。

---



### 🗂 ドキュメント管理情報

| 項目 | 内容 |
|------|------|
| **ドキュメント名** | レンタカードットコム システム構成図・構成概要 |
| **バージョン** | v1.0 |
| **作成日** | 2025年10月28日 |
| **作成者** | オンライントラベル株式会社 西村 |
| **確認者** | オンライントラベル株式会社 森田 |
| **次回改訂予定** | 構成変更時またはシステム刷新時（例：次期API基盤リプレイス時） |
| **備考** | 本資料は ontra-rentacar 環境を基準とした2025年10月時点の構成を示すものです。<br>以後の改修・移設に伴い更新予定。 |

---
    
</small>


