Server Build Exercises on AWS (Amazon Web Services) 2022 edition

自分の環境で開発したい場合どうすればいいの?

Q: 手元のPC上の好きなエディタや統合開発環境でプログラムを書きたいんですけど?
A: はい、書いてください。 好きなツールでプログラムを書いたら、 そのプログラムファイルを EC2 にアップロードしてください。 CLI では scp コマンドを使います。 SSH を使う GUI も、いくつかあります

次節では GUI として、 Windows, Mac OSX, Linux すべて対応のオープンソースソフトウエア(OSS)である FileZilla を簡単に紹介します。 すくなくとも XP 時代のエクスプローラ的な使い方が出来るとおもいます (かっこいいドラッグ&ドロップが出来るかはわからない;-)

使い方の詳細は、sftp gui というキーワードあたりでググってください。

height320px

CLI の使い方

例えば、自分の PC 上の VSCode で www.py を編集し、 編集後 FileZilla で転送(アップロードして上書き)といった使い方が想定されます (注: でも、転送後、www.py をリスタートするには SSH でログインして操作が必要です)

例: たとえば手元で www.py を改造しています。 手元でのファイル名は www-devel.py としましょう。 実際に動かしてみるには、次のように scp コマンドで ec2 へコピーしてください。

scp -i labsuser.pem www-devel.py ec2-user@10.20.30.40:/var/www/libexec/www.py

この例の10.20.30.40の部分は、きちんと各自のEC2のパブリックIPに置き換えてください。

転送後は www.py のリスタートが必要です。 それもこうすればできます

ssh -i labsuser.pem              ec2-user@10.20.30.40 sudo systemctl restart www.py

これはssh サーバ コマンドというシンタックスで、 この形式を使えば、 ssh でログインしてsudo systemctl restart www.py コマンドを実行することができます。

TIPS

どうせ何度も実行するのだから、 この2行を書いたスクリプト(たとえばtest.sh)を準備しておいて、 それを実行する(sh test.sh)と便利ですよ。

#!/bin/sh

ec2ip=10.20.30.40

scp -i labsuser.pem www-devel.py ec2-user@${ec2ip}:/var/www/libexec/www.py
ssh -i labsuser.pem              ec2-user@${ec2ip} sudo systemctl restart www.py

これが IaaC の原始的バージョンとも考えられますよね。

ちなみに、われわれは、こういうのを Makefile に書いておくのが好きですけど… 話が脱線するので、 その話(make コマンドの使い方と Makefile に何でも手順を書いておく流儀)は省略します。 また、scp ではなく rsync 使う方が普通だと思うんだけどなぁ…なども省略します。 話はじめると、いろいろあるんですけどね…

コラム: SSH について

SSH (Secure SHell)プロトコルでアクセスするのは、 この30年くらいの運用ではデファクトスタンダードです。 普通 openssh がインストールされていますが、 openssh は次の3つのソフトウエアを提供しています

  • ssh という遠隔でログインして操作するソフトウエア (シェルのネットワーク版)
  • scp という遠隔でコピーをするソフトウエア (cp コマンドのネットワーク版)
  • sftp というSSH プロトコルの上でファイルを転送するソフトウエア (ftp コマンドのセキュア版)

sftp も CLI が基本ですが、 いくつか SFTP が利用できる GUI (いわゆる Filer、Windowsのエクスプローラ)もあるので、 どうしてもコマンドラインがダメという人は、 それらを使ってください

Last updated on 9 Dec 2021
Published on 9 Dec 2021
Copyright (C) 2021-2022 Ken'ichi Fukamachi, All rights reserved. CC BY-NC-SA 4.0
We appreciate AWS Academy Japan for the offer of the learning environment.

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.