Help us understand the problem. What is going on with this article?

[AWS] 安価で簡単にRedmineの環境を作成・管理できるよ!そうLightsailならね

Redmine

今更説明する必要もありませんが、Webベースのプロジェクト管理ツールです。
AWSでは、DB(PostgreSQL、MySQL)や全文検索(Elasticsearch)、あるいはコンテナ管理(Kubernetes)など、様々なOSSがマネージドサービスとして提供されていますが、残念ながらプロジェクト管理や課題管理をしてくれるサービスがありません(2020年8月現在)。

これらのサービスを利用しようと思ったら、

  • EC2インスタンス上で起動
  • ECSでRedmineのコンテナを起動

少なくともAWS上で、ということを考えると、この辺がすぐに思い浮かぶと思います。

が、しかし、もっと簡単な方法があるのです。それも定額で。

Amazon Lightsail

AWSでの仮想サーバといえば、すぐに思い浮かぶのは、やはりEC2だと思います。
EC2は、多種多様なインスタンスやOSの選択ができる一方、課金がインスタンスの稼働時間に依存するため、気がつくと高額になっている、なんてことも実はない話ではありません。
しかし、Lightsailは、なんと定額利用できる、仮想サーバなのです。
EC2でもリザーブドインスタンスなどを利用すれば、かなりコストを抑えることができますが、それも及ばないほど、しかも定額で利用することができるのです。

価格

いくつか、インスタンスタイプが用意されています。
これはEC2と同様で、メモリ、CPUコア数、ディスク容量、データ転送量の組み合わせです。
あと、OSは、LinuxとWindowsが選択できますが、価格面ではWindowsの方がやや高い設定になっています。

  • Linux (Amazon Linux / Ubuntu / Debian / FreeBSD / OpenSUSE)
    • 3.5 USドル/月 - 160.0 USドル/月
  • Windows Server
    • 8.0 USドル/月 - 240.0 USドル/月

なお、データ転送量のみ、それぞれのプランの上限を超過した場合に、超過分のみの追加料金が発生します。

「Amazon Lightsail 料金表」

用意されているOSS

もう一つ特徴的なのが、いくつかのOSSが自動設定可能になっています。
そう、自分でインストールして初期設定して、といった作業が不要になるのです。
提供されているOSSは、以下の通りです。

  • WordPress
  • WordPress Multisite
  • LAMP
  • Node.js
  • Joomla!
  • Magento
  • MEAN
  • Drupal
  • GitLab CE
  • Remine
  • Nginx
  • Ghost
  • Django
  • Plesk
  • cPanel & WHM

Redmineを使えるようにするまで

Lightsailでのインスタンス作成

まず、サービス一覧より、Lightsailを選択します。

Lightsail1.png

ここで「インスタンスの作成」を押します。

次の画面で、

  • リージョン(アベイラビリティゾーン)
  • OS
  • OSS
  • インスタンスプラン

などを選択します。

lightsail2.png

今回は、東京リージョン上に、Linux+Redmineで、月額3.5$のインスタンス作成してます。
すると、下記のように「保留中」という状態になり、1分もしないうちに「実行中」に変わります。

Lightsail3.png

Lightsail4.png

これだけで、RedmineがセットアップされたLinux環境ができあがりました。

Redmineユーザの確認

まず、インスタンスに接続してみます。
インスタンスの枠の右上にあるメニューをクリックします。

Lightsail50.png

その中から「接続」を選択してください。

Lightsail5.png

ステータスが「実行中」になった直後だと、まだインスタンスに接続できないことがあります。
その場合は、1、2分経ってから接続してみてください。

接続できると、ブラウザで別のウィンドウが開き、コンソールが表示されます。

console1.png

どんなファイルがあるか、見てみましょう。

bitnami@ip-172-26-4-233:~$ ls -la
total 40
drwxr-xr-x 4 bitnami bitnami 4096 Aug  8 12:35 .
drwxr-xr-x 3 root    root    4096 Feb  6  2020 ..
lrwxrwxrwx 1 bitnami bitnami   17 Feb  6  2020 apps -> /opt/bitnami/apps
-rw-r--r-- 1 bitnami bitnami  220 Aug 31  2015 .bash_logout
-rw-r--r-- 1 bitnami bitnami 4139 Feb  6  2020 .bashrc
-rw------- 1 bitnami bitnami   13 Aug  8 12:35 bitnami_application_password
-r-------- 1 bitnami bitnami  422 Aug  8 12:35 bitnami_credentials
drwx------ 2 bitnami bitnami 4096 Feb  6  2020 .cache
lrwxrwxrwx 1 bitnami bitnami   27 Feb  6  2020 htdocs -> /opt/bitnami/apache2/htdocs
-rw-r--r-- 1 bitnami bitnami  655 Jul 12  2019 .profile
drwx------ 2 bitnami bitnami 4096 Aug  8 12:33 .ssh
lrwxrwxrwx 1 bitnami bitnami   12 Feb  6  2020 stack -> /opt/bitnami

はい、この中のbitnami_credentialsに、Redmineの管理用ログインIDとパスワードが記載されているのです。

console2.png

このファイルにある赤枠部分がログインID、青枠部分がパスワードになります。

Redmineに接続してみる

インスタンスに対してパブリックIPアドレスが割り当てられています。

address.png

上記例ですとhttp://54.92.33.40にアクセスしてみましょう。

Redmine.png

Redmineの画面が出てきました!

管理者でログインする

では、bitnami_credentialsに記載されていた情報でログインしてみましょう。
画面右上にある「ログイン」をクリックします。

Redmine2.png

そして、ログインIDとパスワードを入力し、ログインします。

Redmine3.png

ログインできました!

Redmine5.png

あとは、「Administration」から、各種設定を行ってください。
初期状態は英語表示ですが、日本語表示も問題なく動作します。

ネットワークの設定を変更したい

実はLightsailのネットワークはVPCで構成されていません。
ある意味、これが管理を簡略化できる要因の一つだったりもしますが、例えば、IPアドレスはインスタンス起動ごとに変更になってしまうので固定したい、だとか、IPアドレスではなくホスト名(ドメイン名)でアクセスしたい、などといったことが、実は可能です。
その場合は、最初の画面にある「ネットワーキング」をクリックしてみましょう。

networking1.png

networking2.png

バックアップをとる

スナップショット

インスタンスに接続して所定の方法でバックアップを取得する方法もありますが、最も簡単なのはスナップショットをとってしまうことです。
インスタンスのメニューから「管理」を選択します。

Lightsail5.png

管理画面が表示されるので、この中から「スナップショット」を選択します。

manage1.png

今回は手動スナップショットを作成してみましょう。

snapshot1.png

スナップショットの名称を入力します。
今回はデフォルト設定のまま作成してみます。

snapshot2.png

間も無く「スナップショット作成中」の状態になります。

snapshot4.png

しばらくたつと、完成します。

snapshot6.png

今回は手動でスナップショットを取得しましたが、自動スナップショットの場合、定期的に取得してくれるようになります。

スナップショットの使い道

作成済みのスナップショットは、ホーム画面で確認することができます。
ホーム画面の「スナップショット」をクリックしてみましょう。

snapshot1.png

先ほど取得したスナップショットが確認できました。
では、スナップショットをどう使うかというと、スナップショットの右側にあるメニューを開いてみましょう。

snapshot8.png

snapshot9.png

スナップショットを使ってできることは

  • 新しくインスタンスを作成して、そこに復元する
  • 別のリージョンにスナップショットをコピーする
  • EC2にエクスポートする
  • スナップショットを削除する

です。RDSのスナップショットなどとできることはほぼ同じようなものですが、EC2にエクスポートできるのが特徴的です。

EC2にエクスポートしてみた

せっかくここまでやってみたので、EC2にエクスポートするとどうなるか見てみたいと思います。
メニューから選択すると、確認画面が表示されます。
ここで「はい、続行します」を選択します。

ec21.png

セキュリティの案内が出るので「承諾」。

ec22.png

なんか、歯車がクルクル回り出した!!

ec23.png

しばらく経つと、完了します。

ec25.png

EC2

EC2側での確認

では、どのような状態でエクスポートされているか、ですが、インスタンスとしてエクスポートされるわけではなく、EC2のスナップショットとして復元されます。
あと、カスタムAMIとしても作成されますが、今回は、スナップショットから復元する方法で進めてみようと思います。

まずは、EC2の管理画面より、EBSのスナップショットを確認してみましょう。

あったー!!

ebs1.png

では、せっかくなんで、ここからインスタンスとして復元してみましょう。

ebs2.png

「アクション」から「ボリュームの作成」を選択します。

ebs7.png

そのままの状態で「ボリュームの作成」ボタンを押します。

ebs9.png

少し経つと、ボリュームが出来上がります。

ebs10.png

EC2インスタンスに復元

ちょっと長くなったので、省略しますが、手順はオーソドックスです。

  1. EC2インスタンスを作成
    • Redmineに接続したいので、Public Subnetを割り当ててください
    • EBSの設定は適当でよいです(サイズもあってなくてよいです)
  2. インスタンスが起動したら停止(終了ではないですよ!)
    • この時、インスタンスのルートデバイス(/dev/xvdaなど)を確認しておいてください
  3. インスタンスのステータスが「stopping」から「stopped」になったら、ボリューム一覧の画面で、インスタンスからデタッチする。
  4. LightsailからエクスポートしたボリュームをEC2インスタンスにアタッチする
    • ルートデバイスをちゃんと指定しましょう
    • インスタンスのアベイラリティゾーンとあっていないとアタッチできないので、あっていない場合はボリューム作成時のアベイラリティゾーンをEC2インスタンスにあわせて作り直しましょう
  5. 停止中だったEC2インスタンスを開始する

ここまできたら、インスタンスのパブリックIPアドレスにブラウザでアクセスするだけです。

ec28.png

きたー!!!!
もちろん、Lightsailでアクセスした、管理者のログインIDとパスワードでログインもできます。
もしアクセスできない場合は、EC2インスタンスにアタッチされているセキュリティグループにHTTP(80)のポートをインバウンドルールに追加してみてください。

まとめ

ご覧のように、AWS上でOSSを安価にさくっと立ち上げる方法として、Lightsailという選択肢が有効であることがおわかりいただけたかと思います。
また、スケーリングの必要性などが出てきた場合は、EC2インスタンスとして移行することも、非常に簡単に行えることがわかったかと思います。
これまで、EC2やECSの影に隠れがちで、あまりメジャーな感じがしなかったLightsailですが、こんな簡単に導入できるのです。
結構おすすめです!

herohit-tool
アプリケーション寄りのコンサルタントをやっています。awsが好きです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした