Windows Server 2022をCloudFormationで構築する方法まとめ

EC2

Windows Server 2022 を使いたい時に使えるようにしたかったので CloudFormation テンプレートを作成しました。
使いたい時にスタックを作成して、要らなくなったらスタックを消せます。

スポンサーリンク

手順

Windows Server の AMI を探す

EC2 を起動する画面で無料利用枠の対象となっている Windows Server の AMI を調べます。


CloudFormation テンプレートを作成する

以下のような CloudFormation テンプレートを作成します。
ポイントは以下です。

  • KeyName で EC2 のキーペアを指定します。
  • ImageId で AMI ID を指定します。
  • 指定した IP アドレスからのみ RDP 接続出来るようにします。
  • EC2 のサブネットとセキュリティグループの VPC は適宜指定してください。
AWSTemplateFormatVersion: 2010-09-09

Parameters:
  SystemName:
    Type: String
    Default: default
    Description: Sub system name.
  Region:
    Type: String
    Default: ap-northeast-1
    Description: Region.
  IPAddress:
    Type: String
    Description: IP address.
  KeyName:
    Type: String
    Default: default-key
    Description: Key name.
  ImageId:
    Type: String
    Description: AMI ID.

Resources:
  EC2: 
    Type: AWS::EC2::Instance
    Properties: 
      ImageId: !Ref ImageId
      KeyName: !Ref KeyName
      InstanceType: t2.micro
      NetworkInterfaces: 
        - AssociatePublicIpAddress: "true"
          DeviceIndex: "0"
          SubnetId: 
            Fn::ImportValue: !Sub "${SystemName}-${Region}-public-sub"
          GroupSet:
            - !Ref EC2SecurityGroup
      Tags:
          - Key: Name
            Value: !Sub "${SystemName}-windows-server"
  EC2SecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupName: !Sub "${SystemName}-ec2-sg"
      GroupDescription: Allow SSH and HTTP access only input IP address.
      VpcId: 
        Fn::ImportValue: !Sub "${SystemName}-${Region}-vpc"
      SecurityGroupIngress:
        # rdp
        - IpProtocol: tcp
          FromPort: 3389
          ToPort: 3389
          CidrIp: !Ref IPAddress

CloudFormation スタック作成

以下コマンドを実行し、スタックを起動します。
xxx.xxx.xxx.xxx に EC2 に接続する元のグローバル IP アドレスを指定してください。
KeyName に EC2 のキーペアを指定してください。
ImageId に Windows Server の AMI ID を指定してください。

$ aws cloudformation deploy --stack-name windows-server-ec2 --template-file windows-server-ec2.template.yml --parameter-overrides SystemName=default Region=ap-northeast-1 IPAddress=xxx.xxx.xxx.xxx/32 KeyName=default-key ImageId=ami-099772c3838a3bec1

すると EC2 が 1 台起動します。


EC2 グローバル IP アドレス確認

EC2 > インスタンスからパブリック Ipv4 アドレスを確認します。


ユーザー/パスワード確認

EC2 > インスタンス > 作成したインスタンスの詳細画面 > 接続 で RDP クライアントタブを表示します。
パスワードを取得をクリックします。

スタックを作成する際に指定した EC2 キーペアの秘密鍵をアップロードします。
パスワードを復号化をクリックします。

以上でパスワードを取得できます。


RDP で EC2 に接続する

調べた IP アドレス、ユーザー、パスワードで EC2 に RDP 接続します。


EC2 を削除する

CloudFormation スタックを削除すれば EC2 が削除されます。
コマンドで消す場合は以下です。

$ aws cloudformation delete-stack --stack-name windows-server-ec2
タイトルとURLをコピーしました