羽田空港P2・P3の激戦予約を自動化するツールを作りました

羽田空港を利用するとき、車で行きたい人にとって大きな問題になるのが駐車場の確保です。

特に羽田空港のP2・P3・P4駐車場は非常に人気が高く、

「30日前の予約開始時間に待機していたのに取れなかった」

という話が珍しくありません。

今回、この羽田空港P2・P3・P4の予約をできるだけ自動で行うためのツールを作成しました。

実際に動作させてみたところ、無事に駐車場予約を取得することができました。

羽田空港の駐車場予約は想像以上の激戦

羽田空港ではP2~P5の駐車場を事前予約できます。

P2・P3・P4については、基本的に利用日の30日前から予約できますが、予約開始時間が異なります。

  • P2:30日前の午前10時
  • P3:30日前の午前10時
  • P4:30日前の午前0時

P2・P3については公式予約サイトにも、

「入場日予定日の30日前の午前10時から予約できます」

と記載されています。P4については30日前の午前0時からです。

ところが問題は、

30日前になれば普通に予約できる、というものではない

ことです。

特に土日、3連休、ゴールデンウイーク、夏休み、お盆、年末年始などは予約が集中します。

実際、2026年に書かれた利用者ブログでも、

予約開始日に挑戦したものの「まさに、一瞬でした」と予約に失敗し、その後2週間サイトを確認し続けてようやく予約できた

という事例があります。

別の利用者も、P4を予約するために午前0時の予約開始に合わせ、

0:00ジャストに予約操作をしたにもかかわらず取れなかった

と書いています。

つまり、

「30日前になったから予約しよう」では遅く、30日前の予約開始時刻そのものが勝負

という世界です。

数秒~数十秒が勝負になる

現在では羽田空港駐車場の予約攻略を専門に扱うサイトまで存在しており、P2・P3について、

予約開始直後に予約枠が埋まる

という状況が紹介されています。

実際に「開始から1分も経っていないのに取れなかった」という利用者の例もあります。

予約開始時間になると、多くの利用者が一斉にアクセスします。

そのため、

  • 予約ページを開く
  • 利用日を選択する
  • 入庫時間を選択する
  • 出庫時間を選択する
  • 内容を確認する
  • クレジットカード決済へ進む
  • 必要なら本人認証を行う

と人間が操作している間にも、空いていた予約枠が他の人に取られてしまいます。

旅行の日程が決まっていて、

「飛行機は予約した」

「ホテルも予約した」

「レンタカーも予約した」

という状態なのに、

羽田空港まで車で行けるかどうかだけが30日前になるまで分からない

というのは、かなり不便です。

予約できなかったら当日早朝に行くしかない

もちろん、羽田空港の駐車場は予約スペースだけではありません。

予約が取れなくても一般駐車スペースに空きがあれば駐車できます。

しかし、こちらも確実ではありません。

羽田空港公式サイトでは、駐車場の混雑について、

「数時間待ちとなることが見受けられ、出発便の保安検査場締切時刻に間に合わない可能性がある」

と警告しています。

さらに金曜・土曜・日曜・祝日や多客期間については、

05:30~20:00を混雑時間帯

として案内しています。

つまり、予約が取れなかった場合、

「朝早く行けば何とかなるだろう」

という方法になりますが、それすら保証されません。

実際、夏休みに予約を取れなかった人が当日駐車を狙った例では、

朝5時30分頃に到着した時点ですでにP2の一部が満車、午前7時にはP3が満車

になっています。

飛行機の場合、

「駐車場が空くまで待つ」

という選択肢は現実的ではありません。

搭乗時刻があります。

子供を連れていたり、大きなスーツケースを持っていたりすると、離れた民間駐車場へ急きょ変更するのも大変です。

その意味でも、

羽田空港の駐車場を事前に確保できる安心感はかなり大きい

と思います。

P4はさらに競争が激しいと感じる

P2・P3とP4は、実は予約システム自体が異なります。

P2・P3の予約システムでは、クレジットカード決済時に、

本人認証サービス「3Dセキュア」がすべての予約で必須

になっています。

公式サイトにも、

すべての予約においてクレジットカード会社が提供する「本人認証サービス(3Dセキュア)」による認証を必須としております。

と明記されています。

一方、少なくとも今回私が確認したP4の予約フローでは、P2・P3のような3Dセキュア認証がありませんでした。

この違いは結構大きいです。

P4は、

予約 → クレジットカード決済 → 予約完了

までの手順が比較的短いため、予約開始直後の競争も非常に速くなります。

午前0時ジャストに操作しても予約できなかったという利用者がいるのも、その激しさを物語っています。

逆にP2・P3の場合は3Dセキュアという追加のハードルがあります。

そのため、

P4よりP2・P3の方が、3Dセキュア認証という敷居がある分、相対的には競争率が若干低いのではないか

と考えています。

ただし、羽田空港側から実際の予約倍率が公表されているわけではないため、これは予約システムと実際の操作感からの推測です。

いずれにしても、P2・P3も簡単に予約できるわけではありません。

そこで羽田空港駐車場予約ツールを作りました

毎回30日前の予約開始時間を覚えておき、

PCの前で待機して、

時間になった瞬間に画面を操作する。

しかもP4なら午前0時。

P2・P3なら午前10時なので、仕事をしている時間かもしれません。

これを毎回人間がやるのはかなり面倒です。

そこで、

羽田空港P2・P3・P4の予約操作を自動で行うツール

を作成しました。

実際に稼働させ、羽田空港駐車場の予約取得まで確認できています。

ツール側で予約開始時間に合わせて処理を行うため、人間が予約開始時刻にブラウザの前で待機して操作する必要がありません。

P2・P3で人間が行うのは基本的に3Dセキュアだけ

P2・P3の場合、公式側で3Dセキュアが必須になっています。

そのため通常構成では、

ツールが予約処理を進め、3Dセキュア認証が表示されたところだけ利用者が認証する

という形になります。

つまり人間が行うのは基本的に、

3Dセキュア認証の入力だけ

です。

予約開始10時ジャストにブラウザを開き、

利用日を選び、

時間を選び、

何度もボタンを押して……

という操作をする必要はありません。

Androidアプリと連携すれば3Dセキュアの入力も自動化

さらにAndroidアプリと連携させることで、

3Dセキュアの認証入力についても自動で処理できるようにしました。

そのためAndroid連携を使用する構成では、

予約開始から予約完了まで、ほぼ操作なし

で進められます。

P2・P3では3Dセキュアがあるため完全自動化が難しいと思っていましたが、Android側と連携することで、この部分まで処理できるようになりました。

【重要】初回だけWindowsファイアウォールの設定が必要

P2・P3で3Dセキュアを使用する場合、1点だけ事前に設定しておく必要があります。

ツール内部ではCefSharpを使用しています。

そのためWindowsの環境によっては、3Dセキュア処理を行っているタイミングで、

Windows Defender ファイアウォールの通信許可ダイアログ

が表示されることがあります。

ここでダイアログが表示されると自動処理が停止してしまいます。

環境によっては管理者権限の確認、いわゆるUACも絡むため、予約本番前に必ず設定しておく必要があります。

設定は一度行えば大丈夫です。

管理者権限でPowerShellを起動

WindowsのPowerShellを**「管理者として実行」**してください。

その後、以下を実行します。

$program = 'C:\haneda\runtimes\win-x64\native\cefsharp.browserSubprocess.exe'

New-NetFirewallRule `
  -DisplayName 'CefSharp.BrowserSubprocess TCP' `
  -Direction Inbound `
  -Program $program `
  -Protocol TCP `
  -Action Allow `
  -Profile Private,Public

New-NetFirewallRule `
  -DisplayName 'CefSharp.BrowserSubprocess UDP' `
  -Direction Inbound `
  -Program $program `
  -Protocol UDP `
  -Action Allow `
  -Profile Private,Public

これでCefSharp.BrowserSubprocessに対してTCP・UDPの通信許可ルールが追加されます。

設定できたか確認する

続けて以下を実行します。

Get-NetFirewallRule -DisplayName 'CefSharp.BrowserSubprocess TCP','CefSharp.BrowserSubprocess UDP'

2つのルールが表示され、

Enabled : True

となっていれば設定完了です。

この設定だけは、予約本番より前に必ず行ってください。

予約開始直後は数秒単位の争いになるため、そこでWindowsの確認ダイアログが表示されてしまうと、それだけで予約取得に失敗する可能性があります。

実際に予約を取得できました

今回、この仕組みを実際の羽田空港駐車場予約サイトで動作させ、

予約を取得できるところまで確認しました。

羽田空港の駐車場は、単に「予約サイトがあるから予約すればいい」というものではありません。

特に混雑する日は、

30日前の予約開始時間そのものが争奪戦

になっています。

予約に失敗すると、

  • キャンセルが出るまで何度も予約サイトを見る
  • 民間駐車場を探す
  • 電車やバスへ変更する
  • 当日かなり早い時間に羽田空港へ行く

といった対応が必要になります。

羽田空港公式自身も、混雑時には駐車場待ちが数時間に及ぶ場合があると案内しています。

そう考えると、

30日前の予約開始時間にPCの前で待つ必要がなく、自動で予約処理を行える

というだけでもかなり便利です。

さらにP2・P3については、

通常は3Dセキュアだけ手動

Androidアプリと連携すれば、

3Dセキュア部分まで含めて自動処理

できるようになっています。

羽田空港を車で頻繁に利用する人や、夏休み・ゴールデンウイーク・年末年始など、絶対に駐車場を確保しておきたい旅行では、かなり有効なツールになったと思います。

何より、

「30日前の予約開始時間にPCの前で待機して、数秒の争奪戦に参加する」

という作業から解放されるのが一番のメリットです。

同じメモリ(に見えた)を使って64GBから128GBにするのに苦労した話

結論

Ryzen 9 7950XとASRock B650 Steel Legend WiFiで、DDR5 32GBを4枚、合計128GB搭載したところ、起動時のメモリトレーニングでかなり苦労しました。

今回使ったメモリはCorsair VENGEANCE DDR5-5600です。

型番は4枚とも同じ、

CMK64GX5M2B5600Z40

です。

しかし、実際には64GB(32GB×2)のキットを2セット購入しており、メモリに記載されているVersionが異なっていました。

  • 2枚:Ver 3.34.02
  • 2枚:Ver 4.43.02

2枚構成なら、どちらのVersionでも問題なく起動します。

さらにVer 3とVer 4を1枚ずつ混在させても、A2/B2の2枚構成なら問題なく起動しました。

ところが4枚にすると状況が変わります。

メモリトレーニングが非常に長くなったり、DRAMランプが点滅したまま起動しなくなったりしました。

今回いろいろ試して分かったのは、

同じ型番のDDR5メモリでも、32GB×4の4 DIMM構成は、32GB×2とはまったく別物として考えた方がよい

ということです。


使用環境

今回の環境は以下です。

項目構成
CPUAMD Ryzen 9 7950X
マザーボードASRock B650 Steel Legend WiFi
BIOS4.43
メモリCorsair VENGEANCE DDR5
型番CMK64GX5M2B5600Z40
公称速度DDR5-5600
容量32GB×4 = 128GB
Ver3.34.02×2、4.43.02×2

最初はBIOS 3.01を使用していました。

メモリ関係の問題を疑い、最終的にはBIOS 4.43まで更新しています。


そもそもA1/A2/B1/B2とは何なのか

これも今回調べていて分かりにくかったところです。

B650 Steel Legend WiFiのDIMMスロットは、CPUに近い側から、

CPU
 |
 v

+-----------+    +----+ +----+ +----+ +----+
|           |    | A1 | | A2 | | B1 | | B2 |
| Ryzen 9   |    |    | |    | |    | |    |
| 7950X     |    |    | |    | |    | |    |
|           |    |    | |    | |    | |    |
+-----------+    +----+ +----+ +----+ +----+

という順番です。

ここで重要なのは、

  • A1/A2 = Channel A
  • B1/B2 = Channel B

という関係です。

論理的には、

                Ryzen 9 7950X
                      |
            +---------+---------+
            |                   |
        Channel A           Channel B
            |                   |
         +--+--+              +--+--+
         |     |              |     |
        A1    A2             B1    B2

となります。


なぜ2枚ならA2/B2なのか

ASRockのマニュアルを見ると、メモリを2枚だけ使用する場合はA2/B2に挿すよう指定されています。

最初は、

A1とA2があるのに、なぜ「1」ではなく「2」を優先するのか?

というのがよく分かりませんでした。

しかし、A/Bがメモリチャネルだと考えると理解しやすくなります。

A2/B2に1枚ずつ挿すと、

Channel A             Channel B
    |                     |
   A2                    B2
    |                     |
  32GB                  32GB

となり、CPUの2つのメモリチャネルを両方使用できます。

物理的には、

CPU側 →

A1     A2     B1     B2
[ ]    [RAM]  [ ]    [RAM]
        ↑             ↑

です。

このA2/B2が、各チャネル1枚で使用する場合の推奨スロットです。


2枚構成では問題がない

最初に各メモリキットを単独で試しました。

Ver 3.34.02を2枚、

A1     A2     B1     B2
[ ]    [V3]   [ ]    [V3]

として起動。

これは問題ありませんでした。

次にVer 4.43.02を2枚、

A1     A2     B1     B2
[ ]    [V4]   [ ]    [V4]

としても正常に起動しました。

つまり、どちらの64GBキットも単独では正常です。


Ver 3とVer 4を混ぜてみた

次に、

A1     A2     B1     B2
[ ]    [V4]   [ ]    [V3]

としてみました。

これも問題なく起動しました。

この結果はかなり重要でした。

少なくとも、

Ver 3とVer 4を混ぜた瞬間に起動できなくなる

というわけではありません。

A2/B2の2枚構成、つまり各チャネル1 DIMMであれば、異なるVersionを混在させても私の環境では正常に動作しました。


3枚にすると話が変わった

そこで3枚構成を試しました。

例えば、

A1     A2     B1     B2
[V3]   [V4]   [ ]    [V3]

です。

この構成ではうまく起動しませんでした。

DRAMのLEDが点滅し続け、メモリトレーニングから抜けられない状態になりました。

ところが別の配置、

A1     A2     B1     B2
[ ]    [V4]   [V3]   [V3]

では起動できました。

つまり単純に、

3枚だから絶対にダメ

というわけでもありません。

DIMMの配置によって結果が変わりました。


4枚ではメモリトレーニングが問題になる

最終的に使いたいのは、

A1     A2     B1     B2
[RAM]  [RAM]  [RAM]  [RAM]

という128GB構成です。

2枚の場合は、

Channel A : 1 DIMM
Channel B : 1 DIMM

なので1DPC(1 DIMM Per Channel)です。

一方4枚の場合は、

Channel A : A1 + A2
Channel B : B1 + B2

となり、2DPC(2 DIMMs Per Channel)になります。

同じ32GBのメモリを使っていても、CPUのメモリコントローラから見ると条件が大きく変わります。

今回の環境では、4 DIMMにするとメモリトレーニングが非常にシビアになりました。


DDR5-3600まで落としても解決しなかった

当然、DDR5-5600で4枚動かすのは厳しい可能性があるため、メモリクロックも落としました。

最終的にはDDR5-3600まで落として試しています。

しかし、

3600まで落とせば4枚でも簡単に安定する

という結果にはなりませんでした。

メモリトレーニング後に一度Windowsが起動することはあります。

問題は、その次の起動です。

再度メモリトレーニングが始まり、DRAM LEDが点滅したままになることがありました。

このため、単純なメモリクロックだけの問題ではないと判断しました。


Memory Context Restoreについて

AM5には、

Memory Context Restore

という設定があります。

これは、一度成功したメモリトレーニングの結果を次回の起動で再利用し、毎回フルのメモリトレーニングを行うことを避けるための機能です。

B650 Steel Legend WiFiのBIOS 4.43では、私の環境ではMemory Context RestoreはデフォルトでEnabledになっていました。

つまり今回、

MCRを有効にしていなかったから毎回トレーニングされていた

という単純な話ではありませんでした。

MCRがEnabledでも、4 DIMM構成ではトレーニング結果をうまく再利用できない場合がありました。


Power Down Enableも関係する

AM5のメモリ設定を調べていると、

Power Down Enable

という設定も出てきます。

これはDRAMの省電力機能ですが、Memory Context Restoreと組み合わせた際の挙動にも関係します。

今回、

Memory Context Restore = Enabled
Power Down Enable      = Enabled

という組み合わせも試しました。

ただし、MCRをEnabledにすれば必ず解決するというものではありませんでした。

128GBの4 DIMM構成そのものが正常にトレーニングでき、その結果を次回起動時に正常に復元できることが前提になります。


BIOSも3.01から4.43へ更新

最初に使用していたBIOSは3.01でした。

メモリ互換性やAGESAの更新もあるため、途中で最新の4.43へ更新しました。

BIOS更新後は、

  • EXPO
  • DRAM Frequency
  • Memory Context Restore
  • Power Down Enable
  • SoC Voltage
  • DRAM Voltage

などを一度Autoまたはデフォルトに戻し、そこから検証しています。

それでも2 DIMMと4 DIMMでは明確に挙動が違いました。


同じ型番でもVersionが違った

今回、もう一つ気になったのがCorsairメモリのVersionです。

4枚とも型番は、

CMK64GX5M2B5600Z40

で完全に同じです。

しかし実際には、

2枚:Ver 3.34.02
2枚:Ver 4.43.02

でした。

つまり、型番だけを見れば同じメモリですが、製造Versionは異なります。

ただし今回の検証では、

A1     A2     B1     B2
[ ]    [V4]   [ ]    [V3]

という異なるVersionを混在させた2枚構成でも正常に動作しました。

そのため、

Versionが違うから起動しない

と単純には結論付けられません。

むしろ、4 DIMMによって1チャネルあたり2枚になることの影響が大きいように見えます。


現在試している配置

3枚で、

CPU側 →

A1     A2     B1     B2
[ ]    [V4]   [V3]   [V3]

が正常に起動しました。

そこで現在は、

CPU側 →

A1     A2     B1     B2
[V4]   [V4]   [V3]   [V3]

という配置を試しています。

論理的には、

Channel A
 |
 +-- A1 : Ver 4.43.02
 +-- A2 : Ver 4.43.02


Channel B
 |
 +-- B1 : Ver 3.34.02
 +-- B2 : Ver 3.34.02

です。

各チャネルの中ではVersionを統一した形になります。

この配置で一度メモリトレーニングを正常に完走し、Windowsまで起動できれば、DIMMの位置を固定した上で、次回以降Memory Context Restoreが正常に機能するかを確認する予定です。


今回分かったこと

今回かなりの組み合わせを試しましたが、現時点では次のように考えています。

構成結果
Ver 3 ×2、A2/B2正常
Ver 4 ×2、A2/B2正常
Ver 3 + Ver 4、A2/B2正常
3 DIMM配置によって成功・失敗
4 DIMMトレーニングが非常にシビア
DDR5-36004 DIMM問題の完全な解決にはならず
BIOS 3.01使用当初の環境
BIOS 4.43更新後も検証継続
MCR Enabled4 DIMMで必ずトレーニングを回避できるわけではない

特に大きかったのは、

異なるVersionを2枚混ぜてもA2/B2なら正常に動く

という結果です。

これによって、単純なメモリVersion混在だけが原因とは考えにくくなりました。


最終的に64GB×2の方がよい可能性もある

今回の目的は128GB搭載することです。

その方法には、

32GB × 4 = 128GB

だけでなく、

64GB × 2 = 128GB

もあります。

AM5で128GBを安定して使用することを最優先するのであれば、64GB×2の方が合理的な可能性があります。

64GB×2なら、

A1     A2     B1     B2
[ ]    [64]   [ ]    [64]

となり、128GBでも1DPCを維持できます。

今回32GB×4で苦労している、

1チャネルにDIMMを2枚接続する

という条件そのものを避けられます。


最終判断

Ryzen 9 7950XでDDR5を128GB搭載する場合、

「DDR5-5600の32GBを4枚買って、速度を3600くらいまで落とせば普通に動くだろう」

と考えていました。

実際には、それほど単純ではありませんでした。

2枚ではまったく問題のないメモリでも、4枚にした途端にメモリトレーニングが非常にシビアになります。

さらに、

  • DIMMの配置
  • 1DPC / 2DPC
  • メモリのVersion
  • BIOS / AGESA
  • Memory Context Restore
  • Power Down Enable
  • メモリクロック

などが絡んできます。

少なくとも今回の検証では、異なるVersionの混在2枚構成は正常に動作しました。

したがって、現在最も疑っているのは、Versionの違いそのものではなく、

32GB×4による2DPC構成

です。

128GBが必要で、これから新しくメモリを購入するのであれば、32GB×4よりも64GB×2を選んだ方がトラブルは少ないと思います。

一方、手元に32GB×4があるので、もう少しこの構成で検証を続けます。

現在は、

A1     A2     B1     B2
[V4]   [V4]   [V3]   [V3]

という、各チャネル内でVersionを統一した配置を試しています。

この状態でMemory Context Restoreが正常に働き、毎回の長いメモリトレーニングを回避できるのか。

結果が分かったら追記します。

有効なはずのライセンスコードが未登録状態になる件について

表題の状態になるのは、当方の環境では起きることはありません。もしかすると、赤の他人に使われている可能性があるかもしれません。

こちらで再現できない以上、ユーザ側で起きることについてはこちらでは判断しようがありません。そのため、他の人に利用されている疑いがある場合は、ライセンスコードの再発行手続きを行ってください。こちらは有償対応となりますのでご了承ください。