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