0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[実践]AWSでの開発環境構築:IaCでサーバー構築+VSCode Remote SSHを設定

Posted at

画像1.png

背景

Visual Studio Codeの拡張機能であるRemote SSHを使ってEC2に接続する機会がありました。
その設定方法の備忘録として残したかったのと、せっかくなら接続先環境をIaCで書いておけば今後役立つと思い記事にする事としました。

実践

構成図

AWS上の環境はIaCでデプロイします。
画像2.png

作業環境 - ローカル -

作業するローカルPCの環境は以下の通りです。必要なモジュールのインストール方法はGitHubでまとめてますので、適宜参照してみてください。

  • 64bit版 Windows 11 Pro
  • Visual Studio Code 1.96.2 (Default Terminal: Git Bash)
  • Git 2.47.1.windows.2
  • AWS CLI 2.22.19.0 (profile登録&rainで利用する)
  • Session Manager Plugin 1.2.553.0
  • Rain v1.20.2 windows/amd64

環境デプロイ

まずAWS上の環境をデプロイしていきましょう。今回はAWS CloudFormationでデプロイします。
コードはGitHubで公開しています。READMEにデプロイ方法が記載されていますので、参考にしてみてください。

pemファイル作成

CloudFormationでデプロイが完了すると、コマンドプロンプトにAWS Systems Manager Parameter Storeに保存されているキーペアの秘密鍵を取得するコマンドが表示されるため、実行します。
画像3.png

実行すると、カレントディレクトにkeypair.pemが作成されるため、~/.sshフォルダに移動させます。

.sshフォルダがない場合は、作成してください。

ssm用ユーザーのプロファイル作成

同様に、CloudFormationでデプロイが完了すると、コマンドプロンプトにAmazon SecretsManagerに保存されているssm用ユーザーのアクセスキーID/シークレットアクセスキーを取得するコマンドが表示されるため、実行します。
画像4.png

取得したssm用ユーザーのアクセスキーID/シークレットアクセスキーを使用し、devプロファイルを作成します。

aws configure --profile dev

デフォルトリージョンはap-northeast-1です

~/.ssh/config作成

続いて、SSHする際のconfigファイルを作成します。HostNameに指定するインスタンスIDは、デプロイしたEC2のインスタンスIDを指定してください。

~/.ssh/config
Host devserver # 接続先のホスト名。任意の名前でOK
  HostName "i-XXXX" # デプロイしたEC2インスタンスID
  Port 22
  User ec2-user
  IdentityFile ~/.ssh/keypair.pem
  ProxyCommand C:\Program Files\Amazon\AWSCLIV2\aws.exe ssm start-session --target %h --document-name AWS-StartSSHSession --parameters portNumber=%p --profile dev

拡張機能RemoteSSHインストール

VSCodeの拡張機能の一つであるRemoteSSHをインストールします。

画像5.png

インストールが完了すると、左ペインにリモートエクスプローラーが表示されます。
クリックすると、~/.ssh/configファイルに設定したHostが表示されます。
画像6.png

接続確認

接続確認をします。ホスト名右端に表示される「新しいウィンドウで接続」をクリックします。
画像7.png

クリックすると新しくVSCodeが立ち上がります。
フィンガープリントについて確認されるので「続行」をクリックすると、EC2への接続が完了です。
画像8.png

まとめ

今回は、VSCodeのRemote SSHでEC2に接続する方法について備忘録として記事にしました。
環境をIaC化してあるので、サクッと開発環境を作りたいときには役に立つかなと思います。
この記事が誰かの役に立てば幸いです。

参考文献

リファレンス

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?