Ubuntu Weekly Recipe

第547回Amazon LightsailでUbuntuサーバーを構築する

誰もが持っている自分用サーバー。自宅内で鼻毛を生やすのが流行ったのも今は昔。置き場所、電気代、ネットワークといったことを考えると、インターネット上にVPSをレンタルするのが昨今のスタンダードではないでしょうか。今回はAWSのサービスのひとつであるLightsailを使ってUbuntuサーバーを立ててみましょう。

Lightsailとは

LightsailはAmazon Web Service(AWS)のサービスのひとつです。Amazon EC2がいわゆる「クラウド」のコンピューティングインスタンスを起動するサービスであるのに対し、LightsailはVPSを構築するためのサービスになります。

クラウドとVPSの違いは色々ありますが、単なるサーバーとして見た場合の違いは「コスト感」「運用の手軽さ」ではないでしょうか。クラウドのインスタンスはすばやく増減が可能な反面、時間あたりの単価が割高で、さらに従量課金制で最大コストが読みにくいという問題があります。VPSは月額いくらの契約で時間単価は安いものの、台数の増減がしづらかったり、また契約時に初期費用がかかる場合もあります。

LightsailはEC2と同じような感覚で使えるVPSサービスです。時間単位で課金され、かつ初期費用もかからないため、EC2と同様に「ちょっと試しに使ってすぐ捨てる」が気軽にできます。それにくわえてプランごとの月額上限価格も設定されているため、24時間365日がっつり利用しても、決まった以上にはコストがかからない※1※2というVPSならではの安心感もあります。このような理由から、これからVPSを立てるのであれば第一候補に上がるサービスではないかと筆者は考えています※3※4⁠。

インスタンスを作る

それでは早速VPSのインスタンスを作りましょう。まずはAWSコンソールにログインして、サービスからLightsailのダッシュボードを開きます。

図1 ⁠サービス⁠⁠→⁠コンピューティング⁠⁠→⁠Lightsail」を選択する
画像

「インスタンスの作成」をクリックしてください。インスタンス作成画面では、インスタンスを起動するロケーションやベースとなるイメージ、インスタンスのサイズなどを設定します。

図2 Lightsailのダッシュボードには稼働中のインスタンスの一覧が表示される。初期状態では当然何も表示されないので「インスタンスの作成」からインスタンスを作成する
画像

まずはロケーションですが、東京を選択しましょう。アベイラビリティゾーン(AZ)はA、C、Dの3つの中から選択できますが、どこを選択しても構いません[5]⁠。

図3 インスタンスロケーションを選択する。日本から使うのであれば東京を選択するとよい
画像

続いてインスタンスイメージの選択です。当然ですがプラットフォームはLinuxを選択します。ベースとなるイメージは、様々なアプリがプリインストールされている「アプリ+OS」と、⁠OSのみ」が用意されています。今回はプレーンなUbuntu 18.04 LTSから自分でサーバーを構築していきたいので「OSのみ⁠⁠→⁠Ubuntu 18.04 LTS」を選択してください。

図4 インスタンスイメージの選択。⁠アプリ+OS」にはWordPressやGitLab、Redmineなどがインストール済みのイメージも用意されているため、これらのサービスを素早く立ち上げたい場合に便利だ
画像

「起動スクリプトの追加」をクリックすると、インスタンスの初回起動時にroot権限で実行されるスクリプトを設定できます。初回起動時に自動で行いたい初期化処理を記述するのに適しています。

作成したインスタンスへは、SSHでログインして操作を行うことになります。この際パスワードログインはできませんので、インスタンス作成時にSSH公開鍵を送り込む必要があります。⁠SSHキーペアの変更」をクリックして、SSHキーペアマネージャーを表示させてください。デフォルトではLightsailが用意した鍵が使われるように設定されています。この鍵をそのまま使うのであれば、⁠ダウンロード」をクリックして秘密鍵を手元のPCにダウンロードしてください。⁠多くの場合そうであると思いますが)普段自分が使っている鍵を使いたい場合は、⁠今すぐアップロード」をクリックして、公開鍵ファイルをアップロードしてください。

図5 SSHキーペアマネージャーでインスタンスへのログインに使う鍵を選択する。これは筆者が普段使っている鍵をアップロードした状態
画像

最後にインスタンスプランを選択します。料金とスペックを比較して、お好みのプランを選択してください。最小の512MBプランは750時間まで無料で使えるので、これを利用してみるのもよいでしょう。なおこの無料期間は、1台のインスタンスを750時間使うだけでなく、10台のインスタンスを75時間使うような使い方もできます。

図6 インスタンスプランの選択と名前の指定。プランはアップグレードできるがダウングレードはできないため、最初は小さめのプランから試すとよい
画像

最後にインスタンスの名前を入力して「インスタンスの作成」をクリックします。これでインスタンスが起動します。

静的IPアドレスを取得する

LightsailインスタンスにはAWSリソース間の通信に利用できるプライベートIPアドレスと、インターネットから到達可能なグローバルIPアドレスが自動的に付与されます。このグローバルIPアドレスをそのまま使ってもよいのですが、せっかくですので静的IPアドレスを取得しておきましょう。

ダッシュボードから「ネットワーク」を選択し、⁠静的IPの作成」をクリックします。静的IPのロケーションはLightsailインスタンスを起動したのと同一のリージョンを選択してください。⁠インスタンスへのアタッチ」では先ほど起動したインスタンスを選択します。最後にIPに管理用の名前をつけて「作成」をクリックしてください。これでインスタンスの動的なグローバルIPアドレスが静的IPアドレスに置き換えられます。お使いのDNSサーバーにレコードを登録しておくとよいでしょう。

AWSを使ったことがない方には直感的でないかもしれませんが、静的IPは「インスタンスへアタッチ中は無料、確保だけしてアタッチしていない場合は課金される」という料金体系になっています。IPv4アドレスは限られた資源のため、不必要にプールされることを防ぐための処置です。使い終わった静的IPの開放を忘れて無駄に課金されることのないように気をつけてください。

図7 静的IPを作成する。インスタンスと別に静的IPを用意しておけば、インスタンスを入れ替えたくなった場合もIPアドレスを付け替えるだけで、DNSの変更なしに新サーバーへトラフィックを向けることが可能になる
画像

ファイアウォールを設定する

Lightsailにはファイアウォールが用意されています。デフォルトではSSHとHTTPのポートがパブリックに公開されています。設定を変更する場合は、ダッシュボードからインスタンス名をクリックしてインスタンスの設定画面に入り、⁠ネットワーク」を選択してください。

ルールを追加するには「追加」をクリックします。ルールは「HTTPS」⁠DNS」といったアプリケーション名か、ポート番号で指定する簡易的なものです。たとえばHTTPSでの通信を許可したいのであれば、アプリケーションのプルダウンから「HTTPS」を選択してください。プロトコル(TCP)とポート範囲(443)は自動的に入力されます。最後に「保存」をクリックすると、設定が反映されます。

図8 新しくHTTPSのポートを開けた例
画像

SSHのポートを全世界へ公開しておくのはあまり好ましくないのですが、残念ながらソースIPアドレスによる制限はできません。そこでポート番号を変更したいと考えるかもしれません。その場合は「ルールの編集」をクリックした上でアプリケーションを「カスタム」にし、任意のポート番号を入力してください[6]⁠。

SSHログインとサーバーの構築

ここまででサーバーの準備ができました。SSHでログインしてアプリケーションのインストール作業に移りましょう。Ubuntuベースのイメージから起動したインスタンスでは、初期ユーザー名は「ubuntu⁠⁠、作成時に設定したSSH鍵でのみログイン可能、パスワードなしでsudo可能という設定になっています。

VPSにSSHでログインする
$ ssh -i (インスタンスに登録したSSH鍵) ubuntu@(アタッチした静的IPアドレス)

例として、定番のNextCloudを動かしてみましょう。Ubuntu 18.04 LTSの場合であれば、snapパッケージを使うことで非常に手軽にNextCloudサーバーを構築できます。詳細は476回にあるとおりで、nextcloudパッケージをインストールするだけです[7]⁠。

nextcloudパッケージのインストール
$ sudo snap install nextcloud

WebブラウザーからVPSの静的IPアドレス(もしくはDNSに登録したURL)を開いてください。NextCloudの初期設定画面が表示されればインストールは成功です。

図9 Lightsail上で起動したNextCloudの初期画面
画像

Lightsailは完全なUbuntuサーバーとして利用できますので、NextCloud以外にもお好みのアプリケーションをインストールできます。もちろんLightsail内でDockerやLXDといったコンテナを運用することも可能です。たとえばLXDコンテナを使って、1台のインスタンスに複数のアプリケーションを集約して運用するのはよい考えです。もしもサーバーのスペックが不足してきたら、後述するスナップショットを使ってプランアップグレードするとよいでしょう。

スナップショットを活用する

Lightsailではインスタンスのスナップショット(VPS全体のバックアップイメージ)を手軽に取得できます。スナップショットを使えば、VPSをある瞬間の状態へ復元したり、インスタンスプランをアップグレードできます。

スナップショットを取りたいインスタンスの設定画面を開き、⁠スナップショット」をクリックしてください。スナップショットの名前を入力したら「スナップショットの作成」をクリックします※8※9⁠。

図10 ⁠スナップショットの作成」をクリックしてしばらく待つと、現時点のスナップショットが作成される
画像

作成したスナップショットから新規インスタンスを作成します[10]⁠。⁠最近のスナップショット」からベースにするスナップショットを選択し、⁠新規インスタンスの作成」をクリックしてください。先ほど新規インスタンスを作成した時と同様の画面が表示されます。異なる点は、インスタンスイメージのかわりにスナップショットソースが選択されている点です。ここでインスタンスプランを改めて選択できますが、ベースとなっているインスタンスよりも小さなプランは選択できません。

図11 ベースのインスタンスプラン($10)よりも小さなプラン($3、$5)はグレーアウトして選択できなくなっている
画像

新しいインスタンスができあがったら、静的IPアドレスを付け替えておきましょう。ダッシュボードから「ネットワーク」を開き、付け替えたい静的IPをクリックします。するとアタッチ中のインスタンスが表示されますので、⁠デタッチ」をクリックしてください。

図12 静的IPアドレスの付け替えを行う。IPアドレスをインスタンスとは独立して管理できることで、サーバーのメンテナンスや入れ替えがしやすいのもLightsailのメリットだ
画像

デタッチが完了した静的IPアドレスを、今度は新しいインスタンスにアタッチします。これで上位プランへのインスタンスの引越しは完了です[11]⁠。静的IPアドレスを付け替えているため、DNSを変更する必要もありません。

このように、Lightsailは安価にスモールスタートできるだけでなく、スナップショットによるスペックアップやバックアップもサポートした便利なVPSサービスです。これからUbuntuサーバーを立ててみようと考えている方は、利用を検討してみてはいかがでしょうか。

おすすめ記事

記事・ニュース一覧