はじめに
WordPress環境を簡単にセットアップできるBitnamiのAMIを使用して、Wordpressの構築を行う機会がありました。
構築時・運用時にファイル転送に関していちいちコマンドを打って多くのファイルを転送するのは面倒ですよね。
そこで今回は、このEC2にSSM経由でWinSCPを使用してGUIでファイル転送ができるように実装していきます。
構成図は下記のような形です。
WinSCPとは
WinSCPとは、Windows向けのSFTP/SCP/FTPクライアントソフトです。
ファイルを安全にサーバーとやり取りするためのツールです。
公式サイト
こちらからダウンロードできます。
インストール、使い方に関してはこちらの記事が参考になります。
前提
- プライベートなEC2にSSMセッションマネージャーで接続が確認できていること
- BitnamiのAMIはSSMエージェントがプリインストールされていないので、事前に踏み台サーバー等でインストールしておく必要があります。(今回は割愛します)
- WinSCPをインストールしていること
- AWS CLIが使えること
1.Session Manager プラグインのインストール
AWS Command Line Interface (AWS CLI) を使用してマネージドノードとの Session Manager セッションを開始するには、ローカルマシンに Session Manager プラグインをインストールする必要があります。
詳しくはこちら
2.AWS CLIでポートフォワーディング設定
AWS CLIからSSMセッションマネージャーでポートフォワーディングの設定を行います。
aws ssm start-session --target i-xxxxxxxxx --document-name AWS-StartPortForwardingSession --parameters "portNumber=22,localPortNumber=6022" --profile awscliのプロファイル
※プロファイルでリージョン指定をしていない場合、リージョンを指定する必要があります。
aws ssm start-session --target i-xxxxxxxxx --document-name AWS-StartPortForwardingSession --parameters "portNumber=22,localPortNumber=6022" --region ap-northeast-1
下記が出たらOKです。
Starting session with SessionId: セッションID
Port 6022 opened for sessionId セッションID
Waiting for connections...
補足
–targetには接続するEC2のインスタンスIDを入力します。
–document-nameで指定している「AWS-StartPortForwardingSession」がポートフォワードを行う際の設定となります。
–parametersではポートを指定します。「localPortNumber」から接続先の「portNumber」のポートにフォワーディングします。localPortNumberは自由に設定できます。
3.WinSCPから接続するための設定
WinSCPを起動し、
「新しいサイト」から
- 転送プロトコル:SCP
- ホスト名:localhost
- ポート番号:6022
- ユーザー名:bitnami(今回はbitnamiのAMIの為)
- パスワード:なしでOK
次に「設定」をクリックし、「SSH → 認証」でEC2の秘密鍵を指定します。
※鍵作成時のpem形式でなくppk形式で指定してください。
「OK」をクリックし、「ログイン」を選択します。
接続できました。(右側ペインにサーバー内のファイルが表示されます)
ファイルもアップロードできました。
接続を切る際は、「Ctr + C」か下記を入力します。
aws ssm terminate-session --session-id セッションID --profile awscliのプロファイル
おわりに
以上がSSMセッションマネージャーを経由してWinSCPからファイルをアップロードする方法でした。
頻繁にファイルをアップロードする際は、GUIから操作できると便利ですね。
WinSCPはWindowsしか使用できないので、Macの方はFileZillaを使用する必要があります。
その方法も今後検証したいと思います。