VPS(バーチャル・プライベート・サーバー)
レンタルサーバーで使えるアプリケーションには制限があります。そこで登場したのがVPSです。
VPSには自由にアプリケーションをインストールすることができます。
ここでは、EC2 という VPS に HTTP サーバーと FTP サーバーを設定する方法を説明しています。
ローカルサーバーで実行されているアプリケーションは、自分のコンピューターでしか見ることができません。一方、グローバルなサーバーにアプリケーションを配置して、その実行を、多くの人から見てもらえるようにすることをデプロイメント (deployment) 、略してデプロイと言います。
VPS で一番有名なのが、AWS (アマゾンウェブサービス) の EC2 というサーバーです。1年間無料で使えます。
次のサイトの「Amazon EC2の使用を開始する」をクリックして、AWSのアカウントを作ります。アカウントの作成には、住所、電話番号、クレジットカード番号が必要です。AWSには有料サービスもあり、一応クレジットカードを登録しないと、無料サービスを受けられないみたいです。
Amazon EC2 (安全かつスケーラブルなクラウド上の仮想サーバーホスティング) | AWS
「Amazon Web Services」からメールが3通届けば、アカウントの作成は完了しています。上記のサイトの「コンソールへログイン」をクリックしてサーバーの作成を始めます。「コンソールにログイン」が表示されていなければ「無料サインアップ」か「Amazon EC2の使用を開始する」をクリックして、「既存の AWS アカウントでログイン」をクリックしてください。
.ssh
」に入れています。chmod 400 名前.pem
」と入力し、パーミッションを非公開に設定しますブラウザを起動して、URLフィールドに、先ほどメモした、パブリック DNS かパブリック IP を入力して実行します。「サーバーに接続できません」などのメッセージが表示されると思います。先ほど作成したサーバーに、まだ「HTTPサーバー」がインストールされていないからです。
ssh -i ~/.ssh/名前.pem ec2-user@18.105.203.220
」と入力してサーバーにアクセスします。「名前
」の部分はあなたのキーペアの名前にします。「18.105.203.220
」の部分は、あなたのパブリック IPにします。Are you sure you want to continue connecting (yes/no)?
」と表示されますので「yes
」と入力します。Run "sudo yum update" to apply all updates.
」と表示されれば、サーバーへのアクセスは完了しています。sudo yum update
」と入力して、「yum
」というパッケージ管理プログラムを更新します。sudo yum -y install httpd
」と入力して、HTTPサーバーをインストールします。sudo service httpd start
」と入力して、HTTPサーバーを起動します。sudo chkconfig httpd on
」と入力して、EC2サーバーが再起動した場合、HTTPサーバーも自動的に起動する設定にします。exit
」と入力します。ログアウトしても、EC2サーバーは稼働し続けています。先ほど表示されたページには「You may now add content to the directory /var/www/html/.」という記述がありました。意味は、「自分のページを表示するには、ファイルを /var/www/html/ ディレクトにアップロードしてください」ということです。ファイルをアップロードするために、EC2サーバーに、FTPサーバをインストールします。
ssh -i ~/.ssh/名前.pem ec2-user@番号
」と入力して、
EC2サーバーにログインします。「名前
」のところはキーペアの名前です。「番号
」のところは、あなたのパブリック IPです。sudo yum -y install vsftpd
」と入力し、FTPサーバーをインストールしてください。sudo service vsftpd start
」と入力して、FTPサーバーを起動します。sudo service vsftpd start
」と入力して、FTPサーバーも起動しなおします。「sudo chkconfig vsftpd on
」などと入力しても、FTPサーバーを自動的に起動する設定にすることはできません。sudo useradd ユーザー名
」と入力して、ユーザーを作成します。ユーザー名
は好きな名前にします。sudo passwd ユーザー名
」と入力して、パスワードを設定します。/home/ユーザー名
というディレクトリです。
「/var/www/html
」にアクセスできるように、まず「vsftpd.conf
」を書きなおします。
EC2サーバーにはデフォルトで「vi
」というテキストエディタがインストールされていますが、私は「sudo yum install emacs
」で、「Emacs
」をインストールしました。
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.copy
」で、「vsftpd.conf
」のバックアップを取っておきます。sudo emacs /etc/vsftpd/vsftpd.conf
」で「vsftpd.conf
」を開き、次のように書き換えます。なお、「pasv_address=
」はあなたのパブリック IPにします。
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=NO
xferlog_enable=YES
connect_from_port_20=NO
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=NO
pasv_enable=YES
pasv_addr_resolve=YES
pasv_address=18.105.203.220
pasv_min_port=60001
pasv_max_port=60010
use_localtime=YES
force_dot_files=YES
user_config_dir=/etc/vsftpd/user_conf
書き換えが終わりましたら、ファイルを保村して閉じます。sudo emacs /etc/vsftpd/chroot_list
」と入力して
「chroot_list
」という新規ファイルを開き、
あなたが決めたユーザ名を書き込みます。そしてファイルを保存して閉じます。sudo mkdir /etc/vsftpd/user_conf
」と入力して、
「user_conf
」というディレクトリを作成します。sudo emacs /etc/vsftpd/user_conf/ユーザー名
」
と入力して新規ファイルを開きます。「ユーザー名
」は、
あなたが決めた名前です。そしてそのファイルに、
「local_root=/var/www/html
」と書き込みます。ファイルを保存して閉じてください。
sudo chown ユーザー名 /var/www/html
」と入力して、
ユーザーを「/var/www/html
」のオーナーにします。
「ユーザー名
」はあなた決めた名前です。sudo chmod 755 /var/www/html
」と入力して、
「/var/www/html
」を書き込み可能にします。sudo reboot
」と入力して、EC2サーバーを一度再起動します。sudo service vsftpd restart
」
と入力してFTPサーバーを起動します。/etc/www/html
」にログインできていると思います。次のようなソースのファイルを「index.html
」として作ってください。
<html><head><title>app Design test site</tile></head>
<body>
<h1>Hello, app Design!<h1>
<p>This is app Design test site.</p>
</body>
</html>
「index.html
」をEC2サーバーの「/var/www/html/
」へアップロードします。
ブラウザを起動して、URLフィールドにパブリック DNSかパブリック IPを入力して実行します。 次のページが表示されれば成功です。
Ubuntu では「HTTPサーバの設定」と「FTPサーバーの設定」が、Amazon Linux 2 AMIの場合と少し違います。ここではEC2のUbuntu Server 16.04 LTSで話を進めて行きます。サーバーの作成方法は、Amaon Linux 2 AMIの場合と同じです。
ssh -i ~/.ssh/キーペアの名前.pem ubuntu@18.105.203.220
sudo apt install apache2
と入力してインストールします
sudo service apache2 start
と入力して、HTTPサーバーを起動します。sudo apt install vsftpd
と入力して、FTPサーバーをインストールします。sudo apt update
と入力して、apt
管理プログラムをアップデートします。sudo apt install emacs
」sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.copy
と入力して、
設定ファイルのバックアップを取っておきますsudo emacs /etc/vsftpd.conf
と入力して、設定ファイルを開きます。passiv_address
のところは、
あなたのパブリック IPにしてください。そしてファイルを保存して閉じます。
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=NO
xferlog_enable=YES
connect_from_port_20=NO
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=NO
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=NO
pasv_enable=YES
pasv_addr_resolve=YES
pasv_address=18.222.52.175
pasv_min_port=60001
pasv_max_port=60010
use_localtime=YES
force_dot_files=YES
user_config_dir=/etc/vsftpd/user_conf
local_root=/var/www/html
sudo emacs /etc/vsftpd.user_list
と入力して、新規ファイルを作ります。
そして何も記述せずにファイルを保存してから閉じます。sudo mkdir /etc/vsftpd
と入力して新規ディレクトリを作ります。sudo emacs /etc/vsftpd/chroot_list
と入力して、新規ファイルを作ります。
そしてそのファイルに「ubuntu
」と記述して、ファイルを保存して閉じます。sudo mkdir /etc/vsftpd/user_conf
と入力して、新規ディレクトリを作ります。sudo emacs /etc/vsftpd/user_conf/ubuntu
と入力し新規ファイルを作ります。
そしてそのファイルにlocal_root=/var/www/html
と記述してファイルを閉じます。sudo passwd ubuntu
と入力して、パスワードを設定します。sudo chown ubuntu /var/www/html
と入力して、「ubuntu」に /var/www/html
ディレクトリのオーナー権限を与えます。sudo chmod 755 /var/www/html
と入力して、/var/www/html
を書き込み可能にしますsudo service vsftpd restart
と入力して、FTPサーバーを再起動します。
/etc/www/html
に接続できると思います。