カテゴリー: AWS構築ログ

  • AMIコピーから電子カルテ用 Windows Server を再構築する手順(実践録)

    はじめに

    今日は、AWS 上に 電子カルテアプリを載せるための Windows Server を再構築する作業 を行いました。

    元となるサーバはすでに別用途で構築済みで、それを AMIコピーして流用する ところからスタート。
    ただ、コピーしただけではアプリや設定が残ってしまうため、

    「クリーンで、SSM だけで完全管理できる Windows Server テンプレート」

    を作ることを目的に作業しました。

    この記事では、その再構築の流れを記録としてまとめます。


    ■ 1. AMI コピーからの新規 EC2 起動

    まず、既存サーバの AMI をもとに新しいインスタンスを起動しました。

    • インスタンスタイプ:t2.medium
    • セキュリティグループ:インバウンドなし(後でRDP削除)
    • キーペア:既存のものを流用
    • IAM ロール:Systems Manager が動作するロールを再割り当て

    これにより、元サーバと同じ構成をもったインスタンス が立ち上がります。


    ■ 2. コピー元アプリ(RSBASE など)の完全削除

    AMI コピー元には、もともとテスト用途のアプリが入っていたため、
    新しいサーバではこれをすべて削除し、電子カルテ用サーバとしてクリーンにしました。

    • RSBASE のアンインストール
    • 対応フォルダの削除
    • 残存レジストリの確認(不要なものをクリア)

    この時点で、

    “アプリが何も入っていない、空の Windows Server”

    の状態に戻りました。


    ■ 3. ディスク構成の整理(Cドライブ + Dドライブ)

    コピーされたサーバは C:80GB / E:20GB の構成でしたが、
    内容を削除したため E ドライブをフォーマットし、新しい D ドライブとして再構成。

    結果:

    • Cドライブ:80GB
    • Dドライブ:20GB(アプリやログ用に利用)

    ※Cドライブは80GBより縮小できないため、今回は現状維持。

    ここは将来的に「スリム版テンプレート」を作るときに再検討します。


    ■ 4. Session Manager(SSM)が動作しない問題の修復

    AMI コピー直後は SSM Agent がオフライン になっており、
    Session Manager で接続できない状態でした。

    PowerShell で確認すると amazon-ssm-agent.exe がうまく動いていない。

    そこで以下の対処を実施:

    1. TLS 1.2 の有効化
    2. 正式 URL から SSM Agent を再インストール
    3. サービス再起動
    4. IAM ロールの再割り当て確認

    再インストールコマンド例:

    $installer = "$env:TEMP\AmazonSSMAgentSetup.exe"
    Invoke-WebRequest "https://s3.ap-northeast-1.amazonaws.com/amazon-ssm-ap-northeast-1/latest/windows_amd64/AmazonSSMAgentSetup.exe" -OutFile $installer
    Start-Process $installer -ArgumentList "/S" -Wait
    Restart-Service AmazonSSMAgent
    

    これで SSM がオンラインに復帰。
    Session Manager 接続が無事成功しました。


    ■ 5. RDP ポートを完全に閉じる(インバウンド0)

    SSM が動作した時点で、RDP は管理上不要となったため、
    セキュリティグループの 3389 を削除。

    結果:

    • インバウンド完全ゼロ
    • Session Manager のみで管理
    • 医療機関でも安心して使えるセキュア構成

    AWS が推奨する「RDP を開けない運用」が実現しました。


    ■ 6. Session Manager での RDP(ポートフォワード)も同時検証

    必要に応じて RDP を使う場合は、
    Session Manager の ポートフォワード で利用できることも確認。

    例:

    aws ssm start-session \
      --target i-xxxxxxx \
      --document-name AWS-StartPortForwardingSession \
      --parameters '{"portNumber":["3389"],"localPortNumber":["23389"]}'
    

    これにより、

    • EC2 → 3389
    • ローカル → 23389

    のトンネルが張られ、
    localhost:23389 を RDP クライアントに入力すると GUI ログインが可能。

    重要なのは、

    AWS側の設定変更は不要で、ローカルポートを変えるだけで複数サーバへ同時接続できる

    という点。


    ■ 7. 電カル用の “初期 Windows Server AMI” を最終作成

    すべての不要要素を削ぎ落とし、SSMの動作も安定したタイミングで、

    • Windows Update 済み
    • インバウンド0
    • SSMのみで管理可能
    • 余計なアプリなし
    • ディスク整理済み

    という 理想的な“初期テンプレート” の状態が完成。

    この状態を改めて AMI 化し、今後
    電子カルテサーバの標準構築テンプレート
    として利用できるようにしました。


    ■ まとめ

    今回の作業で、

    「爽快なまでに真っさらな Windows Server」
    「SSMのみで完全管理できるセキュア構成」
    「即量産できる初期AMI」

    の3つが完成しました。

    電子カルテ、医療アプリ、オンプレ連携など、
    どんな用途にも適用できる理想的なベースサーバが手に入りました。

    今後は、このテンプレートを軸に構築を加速していきます。

  • WS 上に ORCA(WebORCA)を構築した1日|EC2(Ubuntu)での実践手順とトラブルシューティング

    今日は、AWS 上に ORCA(WebORCA)を構築する作業に取り組みました。
    以前から Windows Server は構築済みでしたが、今回は Ubuntu サーバ上で ORCA をフルインストールし、WebORCA がブラウザから動作するところまで を達成しました。

    AWS と医療システム構築の良い練習にもなり、トラブルもいくつか発生しましたが、結果としてクラウド版 ORCA 環境が完成しました。

    1. 本日のゴール

    • AWS EC2(Ubuntu 22.04)へ ORCA をインストール
    • apt-line・keyring の追加
    • weborca-install によるモジュール導入
    • WebORCA(http://xxx.xxx.xxx.xxx:8000)にブラウザアクセス
    • Elastic IP を割り当てて DNS 化
    • Windows Server(同一VPC)からも疎通確認

    2. 使用した EC2 の構成

    • OS:Ubuntu 22.04 LTS(HVM)
    • インスタンスタイプ:t2.medium
    • ディスク:40GB(後から拡張可能)
    • セキュリティグループ
      • SSH(22):自分のIPのみ
      • 8000:必要なIPのみ後から開放
    • キーペア:新規作成(pem)

    3. インスタンス起動 → SSH ログインまで

    ● キーペア作成時の注意

    PuTTY形式(ppk)は不要。
    PowerShell から直接 SSH で接続できるため pem でOK。

    接続例:

    ssh -i .\mykey.pem ubuntu@ElasticIP
    

    4. ロケール設定

    初期状態では LANG=C.UTF-8 だったため、日本語ロケールへ変更。

    sudo apt update
    sudo apt install language-pack-ja
    sudo update-locale LANG=ja_JP.UTF-8
    

    確認:

    locale
    

    LANG=ja_JP.UTF-8 になっていればOK。


    5. ORCA 用 apt-key(keyring)と apt-line の追加

    ORCA公式の手順書に従う。

    ● Keyring配置

    sudo -i
    wget https://ftp.orca.med.or.jp/pub/ubuntu/archive.key -O /etc/apt/keyrings/jma.asc
    ls /etc/apt/keyrings/
    

    jma.asc が見えれば成功。

    ● apt-line 設定

    cd /etc/apt/sources.list.d/
    wget https://ftp.orca.med.or.jp/pub/ubuntu/jma-receipt-weborca-jammy10.list
    

    6. パッケージ更新

    apt update
    apt dist-upgrade
    

    ここで“GRUB の選択”画面が出たが、そのままデフォルトで進行。
    アップグレード後、以下ログで完了:

    Restarting services...
    No user sessions are running outdated binaries.
    

    7. ORCA(WebORCA)のインストール

    ● 本体インストール

    sudo apt install -y jma-receipt-weborca
    

    ● モジュール導入

    sudo weborca-install
    sudo weborca-install -l
    

    バージョン例:

    MiddleWare 20230117-5
    Compiler   20221216-3
    Application 20230402-1
    

    8. WebORCA 起動確認(最初のトラブル)

    ブラウザで:

    http://10.0.0.37:8000/
    

    Windows Server から開こうとして アクセス不可

    ● 原因

    セキュリティグループが「自分のローカルIPのみ許可」になっていた。

    ● 解決

    インバウンド 8000 に 同じVPCの Windows Server のセキュリティグループを許可


    9. Elastic IP の割り当てと DNS 登録

    • EC2 に Elastic IP をアタッチ
    • お名前.com で Aレコードを作成
    • 反映後、下記URLでアクセス可能に:
    http://(独自ドメイン):8000/
    

    nslookup で疎通確認:

    nslookup your.domain.jp
    

    10. 今日のトラブルと解決方法まとめ

    ① apt-key が非推奨と言われる

    → ORCA公式どおり /etc/apt/keyrings に配置する方式で解決。


    ② GRUBの選択画面が出て驚く

    → Ubuntuの dist-upgrade でよくある挙動。
     既定のままで問題なし。


    ③ WebORCA にアクセスできない

    → セキュリティグループの許可範囲の問題。
     VPC内の Windows Server のIPを明示的に許可。


    ④ PowerShellでSSH接続時にキーペア指定の書式を間違えた

    → 正しい書式:

    ssh -i .\mykey.pem ubuntu@IP
    

    11. 今日得られた成果

    • AWS上で ORCA フル構築が完了
    • Ubuntu / apt-line / keyring の理解が深まった
    • AWS のセキュリティグループ設計を体験
    • ElasticIP+DNS を設定し、医療用システムとして実運用可能な構成へ
    • Windows Server → Ubuntu への疎通確認
    • 実務ではできない自由な実験環境が確立