今日は、自分が以前運用していた医療用ファイリングソフト「RSBASE」を、AWS 上の Windows Server に構築する作業を進めた。
ローカルでは長年扱ってきた環境だが、AWS でゼロから構築するとなると、
S3、IAM、EC2、ストレージ、DNS と幅広い知識が求められ、なかなか濃い一日になった。
1. S3 バケットの作成とローカル → AWS へのファイル転送
RSBASE 本体はフォルダ構造が重要で、そのまま EC2 に持っていく必要がある。
当初は Windows から aws s3 sync を使って直接コピーしようとしたが、
ディレクトリ構造が崩れてしまう問題が発生。
▶ Synce失敗例(階層が壊れる)
aws s3 sync E:\ s3://aws-yasuda-work-bucket-tokyo/installers/
数万ファイルをコピーしたが、
「リンク」「ショートカット」「一部のディレクトリ」などが乱れ、
RSBASE のように “素の構造” が命のソフトでは致命的。
2. 解決策:ZIP 化して S3 へアップロード
最終的に取った方法はとてもシンプル:
✔ 圧縮(ZIP)
→ アップロード
→ EC2 で解凍して配置
ZIP 化したところ約 3GB にまとまり、確実にコピーできた。
▶ アップロードコマンド
aws s3 cp .\rsbase.zip s3://aws-yasuda-work-bucket-tokyo/installers/
▶ EC2 側でダウンロード
aws s3 cp s3://aws-yasuda-work-bucket-tokyo/installers/rsbase.zip .
この方式が一番安定し、S3 の PUT/GET の課金も最小に抑えられる。
3. EC2 Windows Server のセットアップ
✔ IAM ロール(S3 アクセス権)を追加
途中、Unable to locate credentials が出ることもあったが、
EC2 の IAM ロールが正しく設定されていれば認証情報は不要。
▶ 反映確認コマンド
aws sts get-caller-identity
結果が以下になっていれば EC2 が IAM ロールを使っている状態:
"Arn": "arn:aws:sts::<アカウントID>:assumed-role/EC2-SSM-Role/i-xxxxx"
4. EBS 増設(Eドライブ)
構築開始後に気づいたが、
初期構成では C ドライブしかなく RSBASE を置くには狭い。
そこで EBS を 20GB 追加し、Eドライブとして利用。
手順:
- EC2 → ボリューム → 新規作成
- 「アタッチ」
- Windows でディスク管理 → 初期化 → NTFS でフォーマット
5. RSBASE の配置と動作確認
ZIP を解凍し、必要なパスへ配置。
RSBASE の Apache を起動すると EC2 内では正常動作 を確認。
6. ローカル PC からのアクセス:80番を開ける
EC2 のセキュリティグループに Windows Server 用に HTTP(80) を追加。
ただし、全世界に開放するのは危険なので
MyIP(自身のグローバルIP限定) に設定。
Windows Firewall も忘れずに
GUI から
受信の規則 → 新しい規則 → TCP 80 → 許可
設定後、ローカルPCから
http://<EC2のパブリックIP>
でアクセス成功。
7. Elastic IP(固定IP)を割り当てる
一度アクセスできても、EC2 の再起動で IP が変わるので、
Elastic IP を割り当てて固定化した。
割り当て後、次のように表示されていれば OK。
パブリック IPv4: 〇〇〇.〇〇〇.〇〇〇.〇〇〇(Elastic IP)
8. DNS 設定(Route53 → お名前.com DNSへ切り替え)
本命は Route53 に移すことだったが、
お名前.com のドメインが「ネームサーバの変更不可状態」 になっており移行できなかった。
理由:
レンタルサーバ(WordPress)が同じドメインを使っており、
ネームサーバ変更がロックされていたため。
そのため、今回の方法:
お名前.com の DNS に A レコードを追加する方式へ変更
rsbase.medical-engineering.jp → <Elastic IP>
TTL:600
反映は最大 24 時間程度。
9. バックアップ(AMI 作成)
最後に EC2 の AMI を作成。
説明文に日本語を入れるとエラー:
Character sets beyond ASCII are not supported.
対策:
→ 英字のみで AMI 名・説明文を入力
→ 再作成して成功。
AMI 作成中はインスタンスが再起動される場合があるが問題なし。
まとめ:今日の成果
- S3 による RSBASE 配布方式の確立
- EC2 Windows Server で RSBASE 動作確認
- EBS 増設で十分なストレージ確保
- HTTP 公開と Windows Firewall 設定
- Elastic IP により固定アクセスが可能に
- DNS は Route53 ではなく お名前.com DNS を継続使用
- AMI を作成し、復元可能な状態になった
AWS の基礎からネットワーク、バックアップまで
一通りの構築作業を実践できた濃い日となった。
明日は DNS が浸透しているはずなので、http://rsbase.medical-engineering.jp/ でアクセスできるのを楽しみにしたい。
コメントを残す