- 公開日
- 最終更新日
【Amazon WorkSpaces】で初めてのリモート環境構築:ハンズオンでわかる基本とコツ
この記事を共有する
目次
パーソル&サーバーワークスの印鑰です。
AWSを中心としたクラウドインフラの設計・構築・運用を担当しています。 エージェント開発にも注力しているエンジニアです。
このハンズオンで学べること
- AWS CloudFormation で前提環境(VPC・Simple AD)を構築
- コンソールから Amazon WorkSpaces を手動デプロイ
- ブラウザ経由で仮想デスクトップに接続し、開発ツールをセットアップ
どんな人向け?
- 既存PCへのインストール制約が厳しく、クラウド上の仮想デスクトップで安全に作業したい方にオススメ
- AWS CloudFormation の知識があるとさらに楽しめますが、なくてもコピー&ペーストで進められる
1.概要
このシステムのポイントは次のとおりです。
| 特徴 | 説明 |
|---|---|
| 仮想デスクトップ | ローカル PC へのインストール制約に関係なく、クラウド上の仮想デスクトップで安全に開発作業を実施できる環境を提供 |
| IaCによる前提環境構築 | AWS CloudFormation で Amazon VPC・Simple AD・Security Group を統合管理し、再現性の高いインフラ自動構築を実現 |
| IP アクセス制御 | IP アクセスコントロールグループにより、許可されたグローバル IP からのみ WorkSpaces に接続可能。不正アクセスを防止 |
| Web Access(ブラウザ接続) | 専用クライアント不要。ブラウザ から WSP プロトコルで WorkSpaces に接続し、すぐに作業を開始できる |
| 開発ツール一括セットアップ | Chocolatey で Python、Node.js、Git、AWS CLI、Visual Studio Code、Terraform、Kiro IDE などを一括インストール。Windows 日本語化も手順化 |
| AutoStop による自動停止 | AutoStop モードでは、1時間(初期値)無操作の場合に WorkSpaces が自動停止し、不要な課金を防止 |
2.システムアーキテクチャ
全体構成図

3.前提条件
ハンズオンをはじめる前に、以下をお読みください。
所要時間
- 約135分
- 構築作業:約90~120分( Windows Updateの更新時間 により大きく変動します。)
- 環境削除:約15分
必要な権限
以下の権限が必要です。
- マネジメントコンソールにアクセスできること
- AWS CloudFormation スタックをデプロイできること
- Amazon WorkSpaces、Simple AD を操作できること
リージョン
東京リージョン(ap-northeast-1) にリソースを作成してください。
開発環境
ローカルPC に以下がインストール・設定済みであることをご確認してください。
- Windows 11
- テキストエディター
- ブラウザ(Chrome または Firefox)
費用について
Amazon WorkSpaces には月額固定と従量課金(AutoStop)の2つの料金モデルがあります。本ハンズオンでは従量課金を使用します。
従量課金は「月額基本料 + 時間単価」で構成されます。ポイントは月額基本料の扱いです。デプロイした日から月末までの日割りで請求され、当日中にリソースを削除しても日割り分は返金されません。
注意: 月額基本料の日割り計算が適用されるのはデプロイ初月のみです。2か月目以降は月額全額が請求されます。(参考: Amazon WorkSpaces Pricing)
- 以下、課金イメージです。バンドルやストレージの選択 により課金が異なります。


💡 コスト節約のポイント: 本ハンズオンは月末に実施すると月額基本料を最小限に抑えられます。
費用の目安(東京リージョン)
本ハンズオンを1時間で完了し、すぐにリソースを削除した場合の目安です。
| 項目 | 費用目安 |
|---|---|
| WorkSpaces 時間単価(1時間) | 約 $0.30 |
| WorkSpaces 月額基本料(日割り) | $0.11〜$3.25(実施日による) |
| Simple AD | $0.00(30日間の無料トライアル対象。トライアル後は $0.08/時間) |
| 合計 | 約 $4〜$9 程度(実施日による) |
※ 料金の詳細は Amazon WorkSpaces の料金ページ をご確認ください。
4.構築手順
さあ、ここからが本番です。一緒に作っていきましょう。
ステップ一覧
- 基盤スタックのデプロイ
- ディレクトリスタックのデプロイ
ステップ1: 基盤スタックのデプロイ
まずは、Amazon VPC といった基盤となるリソースを作っていきます。

1-1. AWS CloudFormationテンプレートファイルの作成
ローカルPCでdev-001-ws-base-stack.yamlという名前のファイルを作って、以下の内容をコピー&ペーストしてください。
ここを押すと展開します
AWSTemplateFormatVersion: '2010-09-09'
Description: 'WorkSpaces Base stack: VPC, Subnets, IGW, RouteTable'
Parameters:
Environment:
Type: String
Default: dev
ProjectId:
Type: String
Default: '001'
ProjectInfix:
Type: String
Default: 'ws'
VpcCidr:
Type: String
Default: '10.0.0.0/16'
PublicSubnetACidr:
Type: String
Default: '10.0.1.0/24'
PublicSubnetCCidr:
Type: String
Default: '10.0.2.0/24'
AvailabilityZoneA:
Type: AWS::EC2::AvailabilityZone::Name
Default: ap-northeast-1a
AvailabilityZoneC:
Type: AWS::EC2::AvailabilityZone::Name
Default: ap-northeast-1c
Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
- Label:
default: Stack Configuration
Parameters:
- Environment
- ProjectId
- ProjectInfix
- Label:
default: Network Configuration
Parameters:
- VpcCidr
- PublicSubnetACidr
- PublicSubnetCCidr
- AvailabilityZoneA
- AvailabilityZoneC
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: !Ref VpcCidr
EnableDnsHostnames: true
EnableDnsSupport: true
Tags:
- Key: Name
Value: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-vpc'
InternetGateway:
Type: AWS::EC2::InternetGateway
Properties:
Tags:
- Key: Name
Value: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-igw'
AttachGateway:
Type: AWS::EC2::VPCGatewayAttachment
Properties:
VpcId: !Ref VPC
InternetGatewayId: !Ref InternetGateway
PublicSubnetA:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: !Ref PublicSubnetACidr
AvailabilityZone: !Ref AvailabilityZoneA
MapPublicIpOnLaunch: true
Tags:
- Key: Name
Value: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-public-subnet-1a'
PublicSubnetC:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: !Ref PublicSubnetCCidr
AvailabilityZone: !Ref AvailabilityZoneC
MapPublicIpOnLaunch: true
Tags:
- Key: Name
Value: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-public-subnet-1c'
PublicRouteTable:
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref VPC
Tags:
- Key: Name
Value: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-public-rt'
PublicRoute:
Type: AWS::EC2::Route
DependsOn: AttachGateway
Properties:
RouteTableId: !Ref PublicRouteTable
DestinationCidrBlock: '0.0.0.0/0'
GatewayId: !Ref InternetGateway
PublicSubnetARouteTableAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref PublicSubnetA
RouteTableId: !Ref PublicRouteTable
PublicSubnetCRouteTableAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref PublicSubnetC
RouteTableId: !Ref PublicRouteTable
Outputs:
VpcId:
Value: !Ref VPC
Export:
Name: !Sub '${AWS::StackName}-vpc-id'
PublicSubnetAId:
Value: !Ref PublicSubnetA
Export:
Name: !Sub '${AWS::StackName}-public-subnet-1a-id'
PublicSubnetCId:
Value: !Ref PublicSubnetC
Export:
Name: !Sub '${AWS::StackName}-public-subnet-1c-id'
ファイルを保存してください。
1-2. AWS CloudFormationコンソールを開く
- マネジメントコンソールにログイン
- サービスメニューから「CloudFormation」を選択
- 左ペインから「スタック」にて「スタックの作成」→「新しいリソースを使用(標準)」を選択
1-3. テンプレートのアップロード
- 「既存のテンプレートを選択」を選択
- 「テンプレートファイルのアップロード」を選択
- 作成したAWS CloudFormationテンプレートファイルを選んでアップロード
- 「次へ」を選択
1-4. スタック詳細の指定
スタック名: dev-001-ws-base-stack
以下を設定し「次へ」を押下します。
| パラメーター | 推奨値 | 説明 |
|---|---|---|
| Environment | dev |
環境識別子 |
| ProjectId | 001 |
プロジェクトID |
| ProjectInfix | ws |
リソース名の接中辞 |
| VpcCidr | 10.0.0.0/16 |
VPC の CIDR ブロック |
| PublicSubnetACidr | 10.0.1.0/24 |
パブリックサブネット(AZ-a)の CIDR |
| PublicSubnetCCidr | 10.0.2.0/24 |
パブリックサブネット(AZ-c)の CIDR |
| AvailabilityZoneA | ap-northeast-1a |
1つ目のアベイラビリティーゾーン |
| AvailabilityZoneC | ap-northeast-1c |
2つ目のアベイラビリティーゾーン |
1-5. 確認して作成
- 「スタックオプションの設定」にて、「次へ」を選択
- 「確認して作成」にて設定内容をざっと確認し、「送信」を選択
1-6. デプロイ完了の確認
スタックのステータスが「CREATE_COMPLETE」になるまで、待ちましょう。(約3~5分かかります)
ステップ2: ディレクトリスタックのデプロイ
次は、AWS Directory Service を作っていきます。

2-1. AWS CloudFormationテンプレートファイルの作成
ローカルPCでdev-001-ws-directory-stack.yamlという名前のファイルを作って、以下の内容をコピー&ペーストしてください。
ここを押すと展開します
AWSTemplateFormatVersion: '2010-09-09'
Description: 'WorkSpaces Directory stack: Simple AD with Security Group'
Parameters:
Environment:
Type: String
Default: dev
ProjectId:
Type: String
Default: '001'
ProjectInfix:
Type: String
Default: 'ws'
BaseStackName:
Type: String
Default: 'dev-001-ws-base-stack'
Description: 'Stack name of 01-base-network'
DirectoryNetBiosName:
Type: String
Default: 'dev-001-ds'
MaxLength: 15
Description: 'Simple AD NetBIOS name'
DirectoryPassword:
Type: String
NoEcho: true
MinLength: 8
MaxLength: 64
Description: 'Simple AD administrator password. Must contain at least 3 of the following 4 character types: uppercase (A-Z), lowercase (a-z), numbers (0-9), non-alphanumeric (~!@#$%^&*_-+=|(){}[]:;<>,.?/)'
DirectorySize:
Type: String
Default: Small
AllowedValues:
- Small
- Large
Description: 'Simple AD size'
Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
- Label:
default: Stack Configuration
Parameters:
- Environment
- ProjectId
- ProjectInfix
- BaseStackName
- Label:
default: Directory Configuration
Parameters:
- DirectoryNetBiosName
- DirectoryPassword
- DirectorySize
Resources:
DirectorySecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: 'Security group for WorkSpaces. Used as a source in inbound rules of RDS, EC2, etc.'
GroupName: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-sg'
VpcId:
Fn::ImportValue: !Sub '${BaseStackName}-vpc-id'
Tags:
- Key: Name
Value: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-sg'
SimpleAD:
Type: AWS::DirectoryService::SimpleAD
DependsOn: DirectorySecurityGroup
Properties:
Name: !Sub 'ds-${Environment}-${ProjectId}-${ProjectInfix}-${AWS::AccountId}.local'
ShortName: !Ref DirectoryNetBiosName
Password: !Ref DirectoryPassword
Size: !Ref DirectorySize
Description: 'WorkSpaces development directory'
VpcSettings:
VpcId:
Fn::ImportValue: !Sub '${BaseStackName}-vpc-id'
SubnetIds:
- Fn::ImportValue: !Sub '${BaseStackName}-public-subnet-1a-id'
- Fn::ImportValue: !Sub '${BaseStackName}-public-subnet-1c-id'
Outputs:
DirectoryId:
Value: !Ref SimpleAD
Export:
Name: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-directory-id'
DirectoryDnsName:
Value: !Sub 'ds-${Environment}-${ProjectId}-${ProjectInfix}-${AWS::AccountId}.local'
DirectorySecurityGroupId:
Value: !Ref DirectorySecurityGroup
Export:
Name: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-sg-id'
ファイルを保存してください。
2-2. 新しいスタックの作成とデプロイ
ステップ1: 基盤スタックのデプロイ の手順を参考に、リソースをデプロイします。
スタック名: dev-001-ws-directory-stack
パラメーターはこんな感じで設定してください。
| パラメーター | 推奨値 | 説明 |
|---|---|---|
| Environment | dev |
環境識別子 |
| ProjectId | 001 |
プロジェクトID |
| ProjectInfix | ws |
リソース名の接中辞 |
| BaseStackName | dev-001-ws-base-stack |
基盤スタックのスタック名 |
| DirectoryNetBiosName | dev-001-ds |
Simple AD の NetBIOS 名(15文字以内) |
| DirectoryPassword | (任意のパスワード) | Simple AD の管理者パスワード。大文字・小文字・数字・記号のうち3種類以上を含む8文字以上 |
| DirectorySize | Small |
Simple AD のサイズ(Small / Large) |
「次へ」を2回選択し、設定内容を確認して「送信」を選択してください。
スタックのステータスが「CREATE_COMPLETE」になるまで待ちましょう。(約7~10分かかります)
5.AWS Directory Serviceのセットアップ
CloudFormation でデプロイした Simple AD に対して、WorkSpaces 用の設定を行います。
ステップ一覧
- ディレクトリの登録
- Web Access の有効化
- IP アクセスコントロールグループの作成
- ディレクトリへの関連付け
ステップ1: ディレクトリの登録
CloudFormation で作成した Simple AD を WorkSpaces に登録します。
1-1. ディレクトリの作成画面を開く
- マネジメントコンソールで「WorkSpaces」を開く
- 左ペインから「ディレクトリ」を選択
- 「ディレクトリの作成」を押下
1-2. WorkSpaces タイプの選択
以下を設定し「登録」を押下します。
| 項目 | 値 |
|---|---|
| WorkSpaces タイプ | 個人 |
| WorkSpace デバイス管理 | AWS Directory Service |
| AWS Directory Service の未登録ディレクトリ | CloudFormation で作成済みの Simple AD を選択 |
| 登録 サブネット 1 | IPv4 CIDR:10.0.1.0/24 のサブネットを選択 |
| 登録 サブネット 2 | IPv4 CIDR:10.0.2.0/24 のサブネットを選択 |
ステップ2: Web Access の有効化
ブラウザから WorkSpaces に接続するために、Web Access を有効化します。
2-1. ディレクトリの設定画面を開く
- マネジメントコンソールで「WorkSpaces」を開く
- 左ペインから「ディレクトリ」を選択
- 作成したディレクトリの「ディレクトリ ID」を選択
2-2. Web Access を有効にする
- 「他のプラットフォームを編集」を押下
- 「Web Access」にチェックを入れる(有効化)
- 「保存」を押下
補足: Web Access を有効にすると、ブラウザから
https://clients.amazonworkspaces.com/webclientにアクセスして WorkSpaces に接続できるようになります。対応ブラウザは Chrome および Firefox です。Web Access は WSP プロトコルの WorkSpaces でのみ利用可能です。
ステップ3: IP アクセスコントロールグループの作成
接続元のグローバル IP アドレスで WorkSpaces へのアクセスを制限します。
3-1. 接続元グローバル IP の確認
ルールに設定するグローバル IP アドレスを確認します。
- ブラウザで以下の URL にアクセスする
https://www.ugtop.com/spill.shtml
- 「あなたのIPアドレス(IPv4)」に表示されている値を控える
3-2. IP アクセスコントロールグループの作成
- マネジメントコンソールで「WorkSpaces」を開く
- 左ペインから「IP アクセスコントロール」を選択
- 「IP アクセスコントロールグループの作成」を押下
- 以下を設定し「作成」を押下
| 項目 | 値 |
|---|---|
| グループ名 | dev-001-ds-ipac |
| ソース | xxx.xxx.xxx.xxx/32(接続元のグローバル IP) |
補足: 複数の IP アドレスを許可する場合は、ルールを追加してください。CIDR 形式で範囲指定も可能です。1グループあたり最大30ルールまで設定できます。
ステップ4: ディレクトリへの関連付け
4-1. IP アクセスコントロールグループをディレクトリに紐付ける
- マネジメントコンソールで「WorkSpaces」を開く
- 左ペインから「ディレクトリ」を選択
- 作成したディレクトリの「ディレクトリ ID」を選択
- 「IP アクセスコントロールグループを編集」を押下
- 作成した IP アクセスコントロールグループにチェックを入れる
- 「関連付け」を押下
重要: IP アクセスコントロールグループを関連付けると、デフォルトの「どこからでもアクセス可能」なグループは自動的に解除されます。設定した IP アドレス以外からは接続できなくなるため、接続元 IP を正確に設定してください。
6.Amazon WorkSpacesのセットアップ
WorkSpaces を起動し、ブラウザから接続します。
ステップ一覧
- WorkSpaces の起動
- WorkSpaces への接続
ステップ1: WorkSpaces の起動

1-1. WorkSpace の作成画面を開く
- マネジメントコンソールで「WorkSpaces」を開く
- 左ペインから「WorkSpaces > WorkSpaces > 個人」を選択
- 「WorkSpace の作成」を押下
1-2. 基本情報
以下を設定し「次へ」を押下します。
| 項目 | 値 |
|---|---|
| WorkSpace タイプ | 個人 |
| バンドル | WorkSpaces バンドルを使用 Standard with Windows (Server 2025 based) |
| 実行モード | 自動停止 |
1-3. ディレクトリの選択
以下を設定します。
| 項目 | 値 |
|---|---|
| ディレクトリ | 作成した Simple AD ディレクトリを選択 |
1-4. ユーザーの作成
- WorkSpaceへログインするユーザーを作成するため、「ユーザーを作成」を押下
- 「追加ユーザーの作成」を押下
- 以下を設定し「送信」を押下
| 項目 | 値 |
|---|---|
| ユーザー名 | developer(任意) |
| 名 | Dev(任意) |
| 姓 | User(任意) |
| メールアドレス | developer@example.com(招待メール送信先) |
補足: メールアドレスは AWS からの招待メールを受信できるアドレスに読み替えて設定してください。ユーザー名、名、姓も変更可能です。
「ユーザーの作成」を押下し、「次へ」を押下
1-5. ユーザーを選択
- 「ディレクトリからユーザーを選択」の更新ボタンを押下
- 以下を設定し「次へ」を押下
| 項目 | 値 |
|---|---|
| ユーザーネーム | 作成した ユーザーを選択 |
1-6. カスタマイズの選択
以下を設定し「Workspaces の作成」を押下する。
| 項目 | 値 |
|---|---|
| 暗号化キー | alias/aws/workspaces |
| ルートボリュームを暗号化 | チェックを入れる |
| ユーザーボリュームを暗号化 | チェックを入れる |
| ユーザーボリューム | ルートボリューム 80 GB ユーザーボリューム 10 GB ($3.25/month + $0.30/hour) |
補足: ボリューム構成は最小構成を選択し、コストを抑えています。現在の WorkSpaces を複製する目的でカスタムイメージを作成する場合は、暗号化を無効にしてください。暗号化された WorkSpaces からはカスタムイメージを作成できません。
1-7. 招待メールの確認とパスワード設定
Workspaces のステータスが「使用可能」となるまで待機します。(15分程度) その後、ユーザー作成時に指定したメールアドレスに招待メールが届きます。
メール件名: お客様の Amazon WorkSpace ( Your Amazon WorkSpace )

- メール本文の手順1に記載されているリンクを押下
- ブラウザに「WorkSpaces 認証情報」が表示するため、新しいパスワードを設定し「ユーザーの更新」を押下
- ブラウザのタブを閉じる
- メール本文の手順2に記載されている登録コードを控える(後の接続手順で使用します)
補足: 登録コードはメール本文中の「次の登録コードを入力します」の直後に記載されています。この登録コードは WorkSpaces への接続時に必要になるため、必ず控えてください。
ステップ2: WorkSpaces への接続

2-1. ブラウザから WorkSpaces に接続
- 対応ブラウザ(Chrome または Firefox)で以下の URL にアクセスする
https://clients.amazonworkspaces.com/webclient
- 「Registration code」に「登録コード」を入力し「Register」を押下
- 「Sign in」を押下
- 「Username」に 作成したユーザーネーム を入力し「Next」を押下
- 「Password」に 設定したパスワード を入力し「Sign in」を押下

補足: 登録コードは、ステップ1で指定したメールアドレス宛に送信される招待メールに記載されています。
7.Windows の日本語化
WorkSpaces に接続後、Windows を日本語環境に設定します。
ステップ一覧
- 言語パックのインストール
- 地域設定の変更
- システムロケールの変更
- 日本語入力の確認
ステップ1: 言語パックのインストール
1-1. 言語の追加
- Windowsマーク を右クリックして、 Settings(設定)を開く
- Time & Language(時刻と言語)→ Language & region(言語と地域)を開く
- Add a language(言語の追加)を押下
- 一覧の中から 日本語 を選択し、Next を押下
1-2. オプションの選択とインストール
- 以下のオプションをすべてチェックし、Install を押下
- インストール完了まで約10分待機
- インストール完了後、サインアウトを求められるので Sign out を押下
| オプション | 説明 |
|---|---|
| Language pack | 言語パックのインストール |
| Text-to-Speech | テキスト読み上げのインストール |
| Handwriting | 手書き入力のインストール |
| Set as my Windows display language | Windows の表示言語として設定 |
ステップ2: 地域設定の変更
2-1. 地域と言語の設定
- 「Return to sign in page」を押下
- 再度ログインする
- Windowsマーク を右クリックして、 設定 > 時刻と言語 > 言語と地域 を開く
- 国または地域 を 日本 に変更
- 地域設定 で 日本語(日本) を選択
ステップ3: システムロケールの変更
3-1. ロケールの変更
- Windowsマーク を右クリックして、 設定 > 時刻と言語 > 言語と地域 > 管理用の言語の設定 を開く
- 管理 タブを選択
- システムロケールの変更 を押下
- 日本語(日本) を選択し、OK を押下
- ベータ: ワールドワイド言語サポートで Unicode UTF-8 を使用 にチェックを入れる
- 再起動を求められるので 後で を押下
- 閉じる を押下
3-2. WorkSpaces の再起動
- マネジメントコンソールで「WorkSpaces」を開く
- 左ペインから「WorkSpaces > WorkSpaces > 個人」を選択
- 作成した WorkSpaces Personal を選択し、再起動 を押下
- 確認画面にて、再起動 を押下
- 更新ボタンを押下し、ステータスが「再起動中」→「使用可能」となるまで待機
ステップ4: 日本語入力の確認
4-1. 動作確認
- 再度ログインする
- タスクバーの入力インジケーターで 日本語 - Microsoft IME が選択されていることを確認
- メモ帳を開き、日本語入力が正常に動作することをテスト
補足: 半角/全角キーは Alt キーと同時に押下してください。
8.開発ツールのインストール
マスターイメージに含める開発ツールをインストールします。開発ツールのインストールが不要な場合、手順:9.環境削除手順 へお進みください。
ステップ一覧
- Chocolatey のインストール
- 開発ツールの一括インストール
- Google Chrome を既定のブラウザに設定
- Kiro IDE のインストール
- インストール確認
- Visual Studio Code の日本語化
- Windows Update の適用
ステップ1: Chocolatey のインストール
1-1. PowerShell を管理者として実行
WorkSpaces 上で PowerShell を管理者として実行し、以下のコマンドを実行します。
- Windowsマーク を右クリックして、 ターミナル(管理者) を開く
- 「このアプリがデバイスに変更を加えることを許可しますか?」が表示された場合は「 はい 」を選択
- 以下のコマンドを実行し、インストール完了後、PowerShell を一度閉じて再度管理者として開き直す(PATH を反映するため)
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
ステップ2: 開発ツールの一括インストール
2-1. ツールのインストール
- Windowsマーク を右クリックして、 ターミナル(管理者) を開く
- 「このアプリがデバイスに変更を加えることを許可しますか?」が表示された場合は「 はい 」を選択
- 以下のコマンドを実行
choco install python --version=3.13.3 -y --no-progress choco install nodejs-lts -y --no-progress choco install git -y --no-progress choco install awscli -y --no-progress choco install vscode -y --no-progress choco install googlechrome -y --no-progress --ignore-checksums choco install uv -y --no-progress choco install terraform -y --no-progress
インストール完了後、再起動を求められる場合があります。すべてのツールのインストールが完了してから再起動してください。
ステップ3: Google Chrome を既定のブラウザに設定
3-1. 既定のブラウザの変更
- Windowsマーク を右クリックして、 設定 > アプリ > 既定のアプリ を開く
- Google Chrome を選択
- 「Google Chrome を既定のブラウザに設定する」にて 既定の設定 をクリック
- 設定を閉じる
- デスクトップの Google Chrome を開く
- Chrome にログインにて ログインしない を選択
ステップ4: Kiro IDE のインストール
Kiro IDE は Chocolatey では提供されていないため、ブラウザからダウンロードしてインストールします。
4-1. ダウンロードとインストール
- Google Chrome で以下の URL を開く
https://kiro.dev/downloads/
- Download IDE for Windows (x64) を押下してダウンロード
- ダウンロードした実行ファイルをダブルクリック
- 「使用許諾契約書の同意」にて 同意する を選択し、次へ を押下
- 「インストール先の指定」にて、デフォルトのまま 次へ を押下
- 「スタートメニューフォルダーの指定」にて、デフォルトのまま 次へ を押下
- 「追加タスクの選択」にて デスクトップ上にアイコンを作成する にチェックを入れ、次へ を押下
- インストール を押下
- 「セットアップウィザードの完了」にて 完了 を押下
補足: Kiroの詳しい操作については、以下のブログをご参照下さい。
【Amazon EC2】Kiro IDE サーバー構築ハンズオン
ステップ5: インストール確認
5-1. バージョンの確認
PowerShell を新しく開き、各ツールのバージョンを確認します。
- Windowsマーク を右クリックして、 ターミナル を開く
- 以下のコマンドを実行
python --version node --version git --version aws --version code --version uv --version terraform --version
ステップ6: Visual Studio Code の日本語化
6-1. 日本語言語パックのインストール
- デスクトップの Visual Studio Code を開く
- 「Welcome to VS Code」にて、右上の 「X」 を選択
- Ctrl + Shift + X キーを押下し、拡張機能パネルを開く
- 検索欄に
Japanese Language Packと入力 - Japanese Language Pack for Visual Studio Code を選択し、Install を押下
- 右下にポップアップが表示されるため、 Change Language and Restart を押下
- 「このアプリがデバイスに変更を加えることを許可しますか?」が表示された場合は「 はい 」を選択
- Visual Studio Code が再起動し、メニューが日本語表示になることを確認
ステップ7: Windows Update の適用
最新のセキュリティパッチを含めるため、Windows Update を実行します。
7-1. 更新プログラムのインストール
- Windowsマーク を右クリックして、 設定 > Windows Update を開く
- 更新プログラムのチェック を押下
- 利用可能な更新プログラムが表示されたら、すべてダウンロードしてインストール を押下
- インストール完了後、再起動を求められた場合はその画面を閉じる
7-2. WorkSpaces の再起動
- マネジメントコンソールで「WorkSpaces」を開く
- 左ペインから「WorkSpaces > WorkSpaces > 個人」を選択
- 作成した WorkSpaces Personal を選択し、再起動 を押下
- 確認画面にて、再起動 を押下
- 更新ボタンを押下し、ステータスが「再起動中」→「使用可能」となるまで待機
7-3. 更新の完了確認
- 再度ログインする
- 再度 Windows Update を開き、「最新の状態です」と表示されるまで手順 7-1 を繰り返す
9.環境削除手順
テストが完了したら、以下の手順で環境をきれいにお掃除しましょう。
ステップ一覧
- WorkSpaces の手動削除
- ディレクトリの登録解除
- IP アクセスコントロールグループの削除
- ディレクトリスタックの削除
- 基盤スタックの削除
ステップ1: WorkSpaces の手動削除
1-1. WorkSpaces を停止
- マネジメントコンソールで「WorkSpaces」を開く
- 左ペインから「WorkSpaces > WorkSpaces > 個人」を選択
- 作成した WorkSpaces Personal を選択し、停止 を押下
- 確認画面にて、停止 を押下
- 更新ボタンを押下し、ステータスが「停止中」→「停止済み」となるまで待機
- 作成した WorkSpaces Personal を選択し、削除 を押下
- 確認画面にて、「削除」と入力し、削除 を押下
- ステータスが「終了中」→ 一覧から消えるまで待機(約5分)
重要: WorkSpaces は CloudFormation で作成していないため、手動で削除する必要があります。WorkSpaces が残ったままディレクトリスタックを削除しようとすると、ディレクトリに依存関係があるためエラーになります。
ステップ2: ディレクトリ の手動解除
2-1. ディレクトリの登録を解除
- マネジメントコンソールで「WorkSpaces」を開く
- 左ペインから「ディレクトリ」を選択
- 作成したディレクトリを選択
- 「アクション」→「登録解除」を選択
- 確認ダイアログで「確認」を押下
- 一覧からディレクトリが消えるまで待機
補足: ディレクトリの登録を解除しないと、CloudFormation でディレクトリスタックを削除する際にエラーになります。
ステップ3: IP アクセスコントロールグループの手動削除
3-1. IP アクセスコントロールグループを削除
- マネジメントコンソールで「WorkSpaces」を開く
- 左ペインから「IP アクセスコントロール」を選択
- 作成した dev-001-ds-ipac を選択
- 「アクション」→「削除」を選択
- 確認画面にて、「削除」と入力し、削除 を押下
ステップ4: ディレクトリスタックの削除
4-1. スタックの削除
- マネジメントコンソールで「CloudFormation」を開く
- 左ペインから「スタック」を選択
- スタック名: dev-001-ws-directory-stack を選択
- 「スタックを削除」ボタンを選択
- 確認ダイアログ「 dev-001-ws-directory-stack 」を入力し「スタックを削除」を選択
- ステータスが「DELETE_COMPLETE」になるまで待つ(約5分)
ステップ5: 基盤スタックの削除
5-1. スタックの削除
- ステップ5 の手順を参考に、スタック名: dev-001-ws-base-stack を削除します。
大事なポイント: スタックは必ず上記の順序で削除してください。手動作成したリソース(ディレクトリ登録・IP アクセスコントロールグループ)を先に削除し、その後ディレクトリスタック → 基盤スタックの順で削除します。依存関係があるため、逆順で削除するとエラーになります。
まとめ
お疲れさまでした。Amazon WorkSpaces ハンズオンは以上です。いかがでしたでしょうか。
このハンズオンでは、以下の技術・サービスを組み合わせて、Amazon WorkSpaces による仮想デスクトップ環境を構築しました。
| 技術・サービス | 役割 |
|---|---|
| AWS CloudFormation | インフラのコード化と再現性確保(Amazon VPC、サブネット、Security Group、Simple AD) |
| AWS Directory Service(Simple AD) | WorkSpaces のユーザー認証基盤 |
| Amazon WorkSpaces | クラウド上の仮想デスクトップ環境(AutoStop による従量課金) |
| IP アクセスコントロールグループ | 接続元 IP によるアクセス制限 |
| Web Access(WSP) | ブラウザからの WorkSpaces 接続 |
| Chocolatey | 開発ツールの一括インストール(Python、Node.js、Git、AWS CLI、Visual Studio Code など) |
| Kiro IDE | AI 搭載の開発環境 |
付録
1. Security Group を活用した接続先リソースへのアクセス制御
本ハンズオンでは、ディレクトリスタック内に WorkSpaces 用の Security Group(dev-001-ws-sg)を作成しました。
WorkSpaces から同一 VPC 内の Amazon RDS や Amazon EC2 へ接続したい場合は、接続先の Security Group のインバウンドルールに、この dev-001-ws-sg をソースとして追加してください。

この記事は私が書きました
印鑰 幸太
記事一覧全ての AWS 認定を取得。AWSサービスでは、AWS CloudFormationが好きです。ジム通いが趣味です。