接続方法と使い方
リモート開発環境として利用する ec2-sandbox を立ち上げてから、接続して利用する方法についての詳細です。
VSCode を利用する場合
Node.js または Python 利用時に最もカジュアルに利用されている VSCode (Visual Studio Code) というエディタを利用する場合の接続方法です。
1. SSH 設定ファイルの作成・編集
以下の流れに沿って SSH 接続設定ファイル(~/.ssh/config
) 確認・編集を行います。
- ホームディレクトリに
.ssh/config
ファイルがない場合、あらかじめ作成しておく - VSCode を立ち上げ、 [ ファイル ] → [ ファイルを開く... ]
- 左側 [ ホーム ] →
.ssh
フォルダを選択 →config
ファイルを選択して開く
開けたら、以下のように設定内容を追記します。
- Public サブネット構成
- Private サブネット構成
Host ec2-sandbox-x86_64-{region}-{alias} # 選択肢として表示される名前(任意の値でOK)
HostName xxx.xxx.xxx.xxx # ec2-sandbox インスタンスの Public IP を指定
IdentityFile ~/.ssh/{private_key_file} # キーペア作成時のプライベートキー
User ec2-user # Amazon Linux 2023 デフォルトユーザー名
# ...
Host ec2-sandbox-x86_64-{region}-{alias} # 選択肢として表示される名前(任意の値でOK)
HostName i-xxxxxxxxxxxxx # ec2-sandbox インスタンスIDを指定
IdentityFile ~/.ssh/{private_key_file} # キーペア作成時のプライベートキー
User ec2-user # Amazon Linux 2023 デフォルトユーザー名
# ProxyCommand を利用してセッションマネージャー経由で通信するようにします
ProxyCommand sh -c "aws ssm start-session --profile {aws_profile_name} --region {aws_region} --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
# ...
【 Private サブネット構成のみ 】 Sesson Manager プラグインのインストールとセッション開始
Private サブネット構成の場合、SSH 設定ファイルで記載した proxyCommand が利用できるように、AWS CLI および Session Manager のプラグインをインストールします。
- AWS CLI
- Session Manager プラグイン
プラグインをインストールしたら、SSH 接続を開始する前に、一旦ターミナルを開き、以下のようセッションを開始してから VSCode を起動してください。
- Windows(コマンドプロンプト)
- Mac(zsh)
aws ssm start-session ^
--region {AWS_REGION} ^
--target i-xxx ^
--document-name AWS-StartSSHSession
aws ssm start-session \
--region {AWS_REGION} \
--target i-xxx \
--document-name AWS-StartSSHSession
2. Remote SSH 拡張機能インストール
VSCode のコマンドパレットを開き、以下の流れに沿って拡張機能をインストールします。
- Windows
- Mac
Ctrl
+ Shift
+ P
Command
+ Shift
+ P
- 上記ショートカットでコマンドパレットが開き、
"Install Extensions"
を入力・選択 "Remote - SSH"
を入力し、Microsoft 製の [ Remote - SSH ] を選択、Install
ボタンを押す- 完了後、コマンドパレットから
"Reload Window"
を選択して画面をリロード
3. リモート接続
拡張機能インストール及びリロード後、再度コマンドパレットを開き、以下の流れに沿って拡張機能をインストールします。
"Remote-SSH: Connect To Host"
を入力・選択- 「1. SSH 設定ファイルの作成・編集」で登録した Host の項目を選択
- 新しいウィンドウが開き、接続が完了
4. 使い方
「3. リモート接続」でエラーなく新しいウィンドウが立ち上がったら、設定自体は完了です。 slsops-ec2-sandbox
AMI を利用している場合、以下のように使い方を確認していきます。
- 右側サイドバーの [ Explorer ] アイコンを選択
- [ Open Folder ] を選択し、
_sample
フォルダを選択、[ OK ] ボタンを押す - VSCode のメニューから [ Terminal ] → [ New Terminal ] を選択
cd hello-api && node index.js
を実行
最後に、動作確認します。
- Public サブネット構成
- Private サブネット構成
- ブラウザで
http://{ec2-sandbox-public-ip}:3000/
を開く
{ "message": "設定は完了です。お疲れ様でした。" }
- ブラウザで
http://localhost:3000/
を開く
{ "message": "設定は完了です。お疲れ様でした。" }
以降、自由にファイルの作成・編集、ターミナルを利用してプログラムを実行するなど、開発機としてご利用いただけます。別途 AWS 認証情報を指定しなくても、インスタンスロールを利用した AWS CLI の操作も可能です。
5. インストールされているもの
以下のように確認可能です。
# AWS CLI
aws --version # aws-cli/2.25.0 Python/3.9.23 Linux/6.1.141-155.222.amzn2023.x86_64 source/x86_64.amzn.2023
q --version # v1.12.2(Amazon Q Developer)
sudo systemctl status amazon-ssm-agent # loaded (/etc/systemd/system/amazon-ssm-agent.service; enabled; preset: enabled)
sudo systemctl status amazon-cloudwatch-agent # loaded (/etc/systemd/system/amazon-cloudwatch-agent.service; disabled; preset: disabled)
# Node.js
nodenv --version # nodenv 1.5.0+51.8948584
node -v # v22.14.0
npm -v # 10.9.2
# Python
pyenv --version # pyenv 2.5.4-3-g67f474d3
python --version # Python 3.13.2
pip --version # pip 25.1.1 from /home/ec2-user/.pyenv/versions/3.13.2/lib/python3.13/site-packages/pip (python 3.13)
poetry --version # Poetry (version 2.1.3)
# Terraform
tenv --version # version v4.7.6
terraform --version # Terraform v1.12.2
# Java
java --version
# openjdk 24.0.1 2025-04-15
# OpenJDK Runtime Environment Corretto-24.0.1.9.1 (build 24.0.1+9-FR)
# OpenJDK 64-Bit Server VM Corretto-24.0.1.9.1 (build 24.0.1+9-FR, mixed mode, sharing)
# Docker
docker --version # Docker version 25.0.8, build 0bab007
docker compose version # Docker Compose version v2.17.0
# TigerVNC
sudo systemctl status vncserver@:1 # loaded (/usr/lib/systemd/system/vncserver@.service; enabled; preset: disabled)
6. デスクトップ環境の使い方
このec2-sandboxにはデスクトップ環境がインストールされています。アプリケーションによってはlocalhostでサーバーを立ち上げてブラウザなどから確認を行いながら開発を進める必要があるためです。
TigerVNCサーバーというローカルPCからデスクトップ環境にアクセスするためのサーバーがインストールされており、アクセス用の初期パスワードにslsops1234
が設定されています。まずは使用前に以下コマンドを実行してパスワードをご自身のものに変更してください。対話式でパスワードの設定が行えます。
vncpasswd
プライベートサブネットにec2-sandboxを設置している場合はssm
を使ってポートフォワーディングを行ってから接続を行ってください。
aws ssm start-session \
--profile <AWSアカウントプロファイル> \
--region ap-northeast-1 \
--target <インスタンスID> \
--document-name AWS-StartPortForwardingSession \
--parameters portNumber=“5901”,localPortNumber=“5901"
その後は、ローカルPCにTigerVNCやRealVNCなどのクライアントツールをインストールしてローカルからec2-sandbox上のデスクトップに接続してください