AWS EC2 ubuntu環境にNextcloudをインストールしてオンライン・ファイル共有システムを構築する

適当なAWS環境を用意します。

左上の「Services」にマウスを合わせ、「EC2」を選択します。

青い「インスタンスの作成」ボタンをクリックします。

CentOSにインストールしてもよいのですが、今回はUbuntuへのインストールに挑戦してみたいと思います。

Ubuntuと入力し、Enterキーを押します。

一番上のもの(最新のバージョンのもの)の、青い「選択」ボタンをクリックします。

今回は「無料利用枠の対象」の「t2.micro」タイプでインスタンスを作成します。

青い「確認と作成」ボタンをクリックします。

HTTPアクセス、HTTPSアクセスを許可するため、右側の「セキュリティグループの編集」をクリックします。

白い「ルールの追加」をクリックし、セレクトボックスの中から「HTTP」「HTTPS」をそれぞれ選択し、追加します。

青い「確認と作成」ボタンをクリックします。

右下の青い「起動」ボタンをクリックします。

キーペアを選択する画面では、キーペアを新規作成・保存するか、あるいは今までのものを使用するかを選択します。

ここでは、「example.pem」をダウンロードし、適切な場所へ保存しました。次へ進みます。

「初期化しています」の表示が「2/2 のチェックに合格しました」に変わったら、左のメニューから「Elastic IP」を選択します。

青い「新しいIPの割り当て」ボタンをクリックします。

青い「割り当て」のボタンをクリックします。

一部情報はセキュリティ上の理由により変更しています。

ここで得たIPアドレスは記録しておきます。

右クリックから、「アドレスの関連付け」を選択します。

アドレスを関連付けるインスタンスが、先程作成したものであることを確認します。

青い「関連付け」ボタンをクリックします。

青い「閉じる」ボタンをクリックします。

DNSを設定する

今回設定したいURL「storage.example.net」のAレコードに先程得られたElastic IP「123.45.67.89」を設定します。

SSH接続

環境に合わせたSSHクライアントをダウンロードします。

ここでは、Windows用の「Rlogin」を使用して進めていきます。

「ファイル」-「サーバに接続」-「新規」

ここで、Server Addressに先程のElastic IP、Usernameは「ubuntu」、Passwordは空欄、「SSH Identity Key」から先程のexample(任意).pemを選択します。

「このホストの公開鍵を信頼して接続しますか?」の確認に、「この公開鍵を信頼するリストに保存する」のチェックボックスをONにし、接続を行います。

ubuntu@ip-172-31-44-195:~$

SSH接続が完了しました。

NextCloudをインストールする前に、インスタンスを最新の状態にアップデートしておきます。

下記のコマンドを入力し、Enterキーを押します。

sudo apt-get update && sudo apt-get upgrade -y

待つこと少々。

ダイアログが出ますが、ここはそのままEnterで問題ありません。

アップデートが終わったら、次にUbuntuのファイアウォールにHTTP、HTTPS、SSHの接続を許可します。

sudo ufw enable
ubuntu@ip-172-31-44-195:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
ubuntu@ip-172-31-44-195:~$

次に、インスタンスへのOpenSSHアクセスを許可します。

sudo ufw allow OpenSSH
ubuntu@ip-172-31-44-195:~$ sudo ufw allow OpenSSH
Rule added
Rule added (v6)
ubuntu@ip-172-31-44-195:~$

次に、インスタンスへのHTTP、HTTPS接続を許可します。

sudo ufw allow 80,443/tcp
ubuntu@ip-172-31-44-195:~$ sudo ufw allow 80,443/tcp
Rule added
Rule added (v6)
ubuntu@ip-172-31-44-195:~$

最後に、Ubuntuのファイアウォール・ルールのサマリーを確認します。

sudo ufw status
ubuntu@ip-172-31-44-195:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
80,443/tcp                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
80,443/tcp (v6)            ALLOW       Anywhere (v6)             

ubuntu@ip-172-31-44-195:~$

上記のようであれば問題ありません。

Ubuntuファイアウォールの設定が整ったので、Nextcloudをインストール・設定していきます。

sudo snap install nextcloud
ubuntu@ip-172-31-44-195:~$ sudo snap install nextcloud
nextcloud 15.0.4snap1 from Nextcloud✓ installed

インストールが完了したら、今回設定したいURLへアクセスしてみます。

Elastic IPアドレス、あるいはそのIPをAレコードに設定したドメインへアクセスします。

無事表示されたことを確認します。

インストラクションに従い、管理者アカウントを作成します。

十分にセキュアな、長いランダムなパスワードを生成し、設定します。

最後に、Let’s encryptにてSSL化を進めます。

sudo nextcloud.enable-https lets-encrypt
ubuntu@ip-172-31-44-195:~$ sudo nextcloud.enable-https lets-encrypt
In order for Let's Encrypt to verify that you actually own the
domain(s) for which you're requesting a certificate, there are a
number of requirements of which you need to be aware:

1. In order to register with the Let's Encrypt ACME server, you must
   agree to the currently-in-effect Subscriber Agreement located
   here:

       https://letsencrypt.org/repository/

   By continuing to use this tool you agree to these terms. Please
   cancel now if otherwise.

2. You must have the domain name(s) for which you want certificates
   pointing at the external IP address of this machine.

3. Both ports 80 and 443 on the external IP address of this machine
   must point to this machine (e.g. port forwarding might need to be
   setup on your router).

Have you met these requirements? (y/n) y

次に、EmailとURL(FQDN = Fully Qualified Domain Name)を入力します。

Have you met these requirements? (y/n) y 
Please enter an email address (for urgent notices or key recovery): yourname@example.net
Please enter your domain name(s) (space-separated): storage.example.net
Attempting to obtain certificates... done
Restarting apache... done
ubuntu@ip-172-31-44-195:~$

httpからhttpsへと自動的にリダイレクトされるようになったことを確認します。

2019-03-23T10:30:30+09:002019/02/23|カテゴリーなし|