タグ: コスト最適化

  • クラウドで開発環境を構築した日の記録(AWS EC2 / Windows Server / VPC構築)

    はじめに

    自分のPCマシンがスペック的にやや厳しく

    ローカルPCに無理して環境を入れるより、

    クラウド側に Windows Server を用意してそこで作業するほうが快適だと判断しました。

    今回は AWS 上に 専用 VPC → サブネット → EC2(Windows Server) を作成し、

    RDP 接続、SSM(Session Manager)準備、セキュリティ強化まで一通り実施したので、

    その作業記録を整理します。

    将来的には AWS CLI や Session Manager 経由の RDP に移行予定ですが、

    まずは GUI が使える環境までを構築した記録です。

    1. AWSで「空のVPC」を作成する

    まず行ったのは VPCの設計。

    AWS の VPCウィザードは色々テンプレートがありますが、

    今回は余計なリソースを避けるため 完全に空のVPC を作成しました。

    ✓ 作成内容

    VPC: CIDR:10.0.0.0/16 サブネット:作らず「空の状態」で作成 IGW(インターネットゲートウェイ):後でアタッチするため、最初は作らない

    この時点のポイント

    空のVPC から始めると、意図しない NAT Gateway などの 有料リソースが勝手に作成されない 結果的に 最安構成での構築ができる

    2. パブリック・サブネットを作る

    次に、手動で パブリックサブネット を作成。

    ✓ 設定内容

    サブネット名:public-subnet CIDR:10.0.1.0/24(※よくある構成)

    アベイラビリティゾーン:ap-northeast-1a IPv4 自動割り当て:有効

    パブリック扱いにするためにやったこと

    IGW を新規作成 VPC にアタッチ ルートテーブルを作成 0.0.0.0/0 → IGW を追加 public-subnet にアソシエイト

    3. EC2(Windows Server 2022)を作成

    ✓ スペック

    AMI:Windows Server 2022 Base

    インスタンスタイプ:t3.large ディスク:80GB(gp3)

    パブリックIP:自動割り当て セキュリティグループ: RDP(TCP 3389) → 一旦 0.0.0.0/0 後で「日本国内に限定」へ変更

    EC2 作成後、RDP を使ってサーバにログイン。

    4. Windows Server の初期設定(日本語化)

    インスタンスは英語版なので以下対応を実施。

    Settings → Time & Language → Language Japanese を追加

    Language Pack Install Display / Keyboard / Region を全部 Japanese に 再起動

    ロケールも変えるのを忘れないように

    これで Windows Server が完全に日本語化される。

    5. AWS Systems Manager(SSM)準備

    Session Manager は今後利用予定。

    EC2 に自動インストールされているはずの SSM Agent が

    「オンラインにならない」問題が発生したため、トラブルシューティングを実施。

    ✓ IAM ロール確認

    EC2 にアタッチされたロール → AmazonSSMManagedInstanceCore (これは問題なし)

    ✓ 最新の SSM Agent を手動インストール

    GitHub からダウンロードして直接修復:

    Invoke-WebRequest https://s3.ap-northeast-1.amazonaws.com/amazon-ssm-ap-northeast-1/amazon-ssm-agent/latest/windows_amd64/AmazonSSMAgentSetup.exe -OutFile SSMSetup.exe
    Start-Process .\SSMSetup.exe -ArgumentList “/S” -Wait
    Restart-Service AmazonSSMAgent

    エラーが多発したが、最終的に 地域リージョン直参照URLで成功。

    6. RDP のセキュリティ強化(国内IP限定)

    最終的に RDP の許可範囲を制限。

    ✓ 設定内容(Security Group)

    RDP(TCP 3389) → 133.0.0.0/8(日本国内のIP帯) ※ 0.0.0.0/0 から変更

    これにより、海外からのアタックをほぼ完全に遮断できる。

    ✓ 接続テスト

    自宅の Global IP(OCN光)から接続 問題なく接続できることを確認 「つながらない問題」は → 自宅IPが NTT/OCN帯の 153.xxx だったため。 → 日本国内帯に含まれるので問題なし

    7. セキュリティの最終方針

    今回の構築で明確にした方針:

    ✔ 現時点:

    GUI 操作は RDP(日本国内IP限定) 通信ログは最低限

    ✔ 将来:

    AWS CLI の導入 Session Manager + ポートフォワーディングで RDP Public IP を使わず Private RDP に移行する

    最終的には インスタンスを完全非公開で運用することが目標。

    8. クラウド料金の最適化

    今回の構成は非常に安価。

    ✓ インスタンス停止中 → 課金されるのは EBS のみ

    EBS(gp3 80GB) → 約 150円 / 月 → 年間 1,800円ほど

    ✓ Elastic IP は使用していない

    → 追加料金ゼロ

    ✓ NAT Gateway なし

    → 0円

    つまり 実質 月150円のクラウド Windows Server を手に入れた形。

    9. 今日学んだこと(まとめ)

    空のVPC作成 → サブネット → IGW → ルート設定 は手動でやると理解が進む

    EC2 自動割り当ての Public IP で十分運用可能

    SSM Agent は地域ごとのパスに注意

    RDP は「国内IP限定」にするだけでセキュリティが跳ね上がる。あとのリスクは許容する。

    インスタンス停止すれば月150円運用が成立する

    Session Manager を使えば将来的には RDP すら不要になる

    おわりに

    クラウドの Windows Server を「自分専用のデスクトップ環境」として使うのは

    実際にやってみると意外と簡単で、

    かつローカルPCよりも負荷が軽くて快適でした。

    今後は AWS CLI の導入、Session Manager による

    よりセキュアな無公開運用に切り替えていく予定です。

    また次のステップを進めたら記事にしていきます。