Amazon LightsailのインスタンスにCloud 9をインストールする

Cloud 9のインストール条件、改善されないかな。。。

最近、AWSのサービスの一つである「Amazon Lightsail」を使ってRedmineサーバを構築しました。
構築しましたなんて言ってますが、マネージメントコンソール上でポチポチとクリックするだけで、Redmineがインストールされた環境があっけなく立ち上がります。
楽。ホント楽。
私ほとんど何もしてない。。。

このAmazon Lightsailですが、インスタンス作成時にOSも選択できます。
今回は「Amazon Linux 2018.03.0.20200602.1」を選択しました。
そのLightsailのインスタンスに対し、SSHが使えるようになっています。
(Redmineサービス立ち上げ後、SSHでインスタンスに入って、パスワード確認が必要となる。)

ふと、「OSがAmazon LinuxでSSHも使えるなら、Cloud 9もインストールして使えるのでは?」
と思いました。

Cloud9はブラウザで動作するIDEですが、EC2インスタンスをはじめ、Linux環境にインストールすることで利用できます。
Amazon Lightsailを、Redmine立ち上げましただけで終わらすのはもったいない(?)と思ったので、Cloud9がインストールできるかを試してみます。

結論

インストールできました。
ただし、ちょっとだけ面倒でした。

Amazon LightsailインスタンスへのCloud 9のインストール

2020年7月時点に試した内容になります。

Cloud 9をインストールするには、
・Python2.7系
・Node.js
がインストールされている必要があります。

それに対し、立ち上げたインスタンスには、
・Python 3.5.2
・Node.js v14.5.0
がインストールされています。

Python3のままでインストールできるか試してみたのですが、どうにも怒られてしまうので、インストールするための環境を整えます。

Amazon LightsailインスタンスへのCloud 9インストールの流れ

ここからは、Lightsailで構築したインスタンスに接続し、操作していきます。

1.Python2.7のインストール
まずはPython2.7系のインストールです。私はPython2.7.8をインストールしました。

Pythonのダウンロード

curl -O https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz

解凍

tar zxf Python-2.7.8.tgz

Pythonのインストール
(インスタンス立ち上げ時にRedmineのインストールを選択している場合、bitnamiユーザーが作成されているため、opt配下もbitnamiに変更します。)

cd Python-2.7.8
./configure --prefix=/opt/bitnami
sudo make && sudo make altinstall

pipのインストール

sudo apt install python-pip

2.nodejs-legacyのインストール
すでにNode.jsがインストールされていると記載しましたが、バージョンがだめというわけではなく、nodeコマンドが使えないのがダメなようです。
そこでnode-legacyをインストールします。

sudo apt install nodejs-legacy

これで、LightsailのインスタンスにCloud 9をインストールする準備が整いました。
後は、AWSの公式サイトの手順に従ってインストールを進めるだけです。

この手順が不要になる日が来るといいな。。。

補足

Cloud 9のインストールをして起動までは確認しましたが、GithubやCodeCommitなどのリポジトリサービスとの連携ができるかなど、開発環境として利用しやすいかまでは検証していません。
といっても、中身はAmazon Linuxなので、色々カスタマイズしてできる気がするのですが。
もう少しいじってみようと思います。