LoginSignup
7
9

More than 3 years have passed since last update.

Visual Studio Code でAWS EC2上のコード開発

Last updated at Posted at 2019-12-24

概要

社内からAWSの踏み台EC2インスタンスを経由しデプロイ先のEC2インスタンスに接続するような環境で開発を行っています。社内の開発マシン上のVisual Studio Code でデプロイ先のEC2インスタンスを直接触ることができたので、備忘録として残します。

環境
 開発マシン(社内のプロキシ環境下):Windows10
 踏み台EC2インスタンス:Linux
 デプロイ先EC2インスタンス:Linux

手順

 

  1. 開発マシンにVisual Studio Code のインストール
    https://code.visualstudio.com/download
  2. Remote - Development(SSH) プラグインのインストール
    https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack
  3. 開発マシンでユーザー環境変数の設定
    HTTP_PROXY_USER 社内プロキシの認証ユーザー名
    HTTP_PROXY_PASSWORD 社内プロキシの認証パスワード
  4. .ssh/configを開発マシンの任意の場所に作成
    Host 踏み台EC2インスタンスの名前(任意)
        HostName インスタンスのIPアドレス
        User ec2-user
        Port 22
        IdentityFile パス/pemキー(開発マシンのどこかに置いておく)
        # 社内プロキシを経由
        ProxyCommand C:/Program Files/Git/mingw64/bin/connect.exe -H proxy.example.com:port %h %p
    
    Host デプロイ先EC2インスタンスの名前(任意)
        HostName インスタンスのIPアドレス
        User ec2-user
        Port 22
        IdentityFile パス/pemキー(開発マシンのどこかに置いておく)
        ProxyCommand ssh -W %h:%p 踏み台インスタンスの名前
    

  5. VSCode から接続
    作成した.ssh/configを選択して接続する。途中で、"Continue"のポップアップが出たら、Continueを選択して進める。
    無題.png

    接続できた。

    無題.png

    これでデプロイ先インスタンスのファイルを直接編集できるようになりました。

追記(2019/12/26)

上記設定では、ec2-userの権限があるファイルやディレクトリのみ操作が可能です。
なので、root権限が必要なファイルの編集、作成、移動等はできません。(ダウンロードは権限がなくても可能。)
デプロイ先EC2インスタンスにrootで接続するには、以下のようにします。(セキュリティ面で問題がある場合もあるので自己責任で。)

  1. ターミナルからデプロイ先EC2インスタンスにssh接続
  2. sudo su - でrootユーザーに切り替え
  3. authorized_keysのコピー
    cp /home/ec2-user/.ssh/authorized_keys /root/.ssh/authorized_keys
    #元のキーはバックアップしておく
  4. service sshd reload でsshd再起動
  5. 開発マシンの.ssh/configを編集
Host デプロイ先EC2インスタンスの名前(任意)  
    HostName インスタンスのIPアドレス   
    User root ← ここ

これで、root権限が必要なファイルもVisual Studio Code上から操作可能になります。

参考

https://qiita.com/songxun/items/7f1e3ddcc87bb74e80f1
https://norm-nois.com/blog/archives/2958

7
9
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
7
9