昔開発した電子カルテアプリを AWS 上で復元し、リモートDB接続するまでの全手順まとめ

この記事は、2000年代の旧電子カルテアプリを AWS 上で再構築し、Windows2000の VM から リモートで PostgreSQL に接続するところまで成功した技術ログです。

成功・失敗・試行錯誤すべてを “備忘録として残す” 目的でまとめています。


1. 目的

  • 旧電子カルテ(Windows2000 + PostgreSQL)の環境を検証目的で復元したい
  • AWS 上に Windows Server を構築し、DB を立ち上げる
  • Windows2000(VM)の電カルアプリから リモートで DB に接続できるか検証
  • できればアプリも起動させたい
  • 最終的には DB を別用途で使えるようにすること

2. AWS 側の構築

■ Windows Server 2022 を EC2 で構築

  • インスタンスタイプ:最初 t3.medium
  • ElasticIP:今回は 使用しない(検証環境のため割り切り)

■ ネットワーク設定

  • セキュリティグループで PostgreSQL ポート(5433)を開放
  • ただし 自分のグローバルIP のみに限定
    (→ リスク最小限でパブリックIP接続を許可)

3. PostgreSQL 8.x の構築

■ 3-1. PostgreSQL 8.2 → インストールエラー

管理者実行トラブル等あり断念

■ 3-2. PostgreSQL 8.4 で再構築

安定して動作。

■ 設定(postgresql.conf)

listen_addresses = '*'
port = 5433

■ pg_hba.conf

host all all 127.0.0.1/32 md5
host all all <自分のグローバルIP>/32 trust

AWS 内でも psql による接続確認:

.\psql.exe -h 127.0.0.1 -p 5433 -U postgres
→ 接続成功

DB が正常に起動していることを確認。


4. Windows2000(VM)からのリモート接続テスト

ここが今回の記事の中心となる「成功ポイント」。


4-1. 電カル側の接続先を AWS のパブリックIP に変更

開発した電子カルテは起動時のログイン画面で DB 認証を行うため、
以下を設定:

Server = <AWSのパブリックIP>
Port = 5433
User = postgres(または設定したアカウント)

4-2. セキュリティグループで 5433 を “自分のIP のみ許可” に設定

→ 全世界に開くことはせず、
 検証用途として最低限のリスクに限定


4-3. リモート接続結果 → 成功!

Windows2000 上で電カルを起動すると:

  • ログイン画面が出現
  • 認証成功
  • DBと正常通信を開始

つまり、

Windows2000(VM) → AWS PostgreSQL(パブリックIP)

という「リモートDB接続」に成功した。**

これは今回の大きな成果。


5. SSHポートフォワード方式も検証(結果:不採用)

■ 5-1. ホストPC から PowerShell で SSHトンネルを作成

ssh -L 5433:127.0.0.1:5433 <AWSユーザー>@<EC2 Public IP>

■ 5-2. トンネル自体は成功(netstat の LISTENING も確認)

Win2000 からの telnet も通った。

■ 5-3. しかし電カルアプリは DB に接続できず

原因は複合的:

  • Windows2000 の TCP/IP スタックが現代 SSH トンネルと相性悪い
  • ODBC/INI の参照位置が複雑
  • VM の NAT → Host-only のルーティング
    など。

結論:
パブリックIP で接続できていれば、SSH トンネルにこだわる必要はない。

今回の目的の範囲では“不採用”と判断。


6. 電カルアプリ起動結果

  • ログイン:成功(リモートDB接続成功の証拠)
  • メイン画面:表示されるが ストアドプロシージャの互換性エラー多発
    • 電子カルテアプリのロジックが DB(PostgreSQL 8.4)に依存
    • 古い関数や PL/pgSQL の仕様変更で動作不可

アプリとしての実用は困難 と判断。


7. 今後に向けて

  • 医療DBの構造分析研究
  • FHIRリソースへのマッピング研究
  • データ移行の検証
  • システム設計の参考資料
    として活用していこうと思う

8. まとめ(今回得た成果)

電カル → AWSリモートDB接続に成功(パブリックIP経由)

✔ 電カルアプリ起動までは再現できた

✔ DBは完全に生きており、別用途で利用する予定

✔ SSHトンネルは技術的には張れたが、旧OSとの相性で実用不可

✔ 検証としては十分以上の成功

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA