SSHでAWS Cloud9をConoHaVPSに接続した開発環境を構築する。

Cloud9 今年いっぱいでサービスを終了(実際は2019年6月末でほぼ使えなくなる)という事で、以前noteで書いた記事【ConoHaVPSにcloud9環境を作成してBOTを動かせるようにしてみた。】の環境を作成しなおす事になりました。

AWSCloud9も無料期間1年が切れる(仮想通貨界隈のBOT利用者は特に)って人も多いだろうから丁度良いなって思ったので、割と分かりやすく書いたつもりです^^

VPSを使えばAWSCloud9で課金が発生する事も無いらしい(2019年6月現在)ので、使い慣れた環境をVPSでも使いたいですもんね♪

結構めんどくさかったので、忘れた時の為にも自分の為のメモも兼ねて環境構築手順を簡単に残していきたいと思います!!!

前提条件

ここから先は、 AWS Cloud9 のアカウント作成が終わっている事を前提に進めていきますので、まだの方は先に作成しておいて下さい。(IAMユーザー推奨)
アカウント作成についてはこちらの記事が参考になりそうですので紹介させて頂きます。
https://skillhub.jp/courses/134/lessons/771

また、ConoHaVPSも必要です。
こちらの【ConoHaVPSにcloud9環境を作成してBOTを動かせるようにしてみた。】の記事内『ConoHaアカウントとVPSの作成』で解説していますので、参考にして下さい。
この時、SSHでログイン出来る状態にしておきましょう。

今回コノハVPSで作成する環境のOS等は以下。

  • ubuntu
  • 18.04(64bit)
  • SSH Key 設定済
01ConoHa-AWScloud9

TeraTerm を使って公開鍵認証を設定したVPSへのログイン方法は下記のConoHaのサポートページに解説がありますのでこちらを参考にして下さい。

https://support.conoha.jp/v/vps_sshkey/?btn_id=v-vps_ssh-related_v-vps_sshkey

02ConoHa-AWScloud9

ここまでの準備が出来ましたら、次は TeraTerm を使っていきます。

ConoHaのVPSに AWS Cloud9 を設定する為にrootアカウントで準備作業。

ここからはひたすらコマンドを打ち込んでいきます。
コピペをする場合、普段はControl+cでコピー・Control+vで貼り付けをしている方が多いかと思いますが、TeraTermのようなターミナルでのコピペは【Alt+c】でコピー・【Alt+v】で貼り付けといったショートカットキーになりますのでご注意ください。

以降はこのページからコピーする時は【Control+c】で、ターミナルに張り付ける時は【Alt+v】を使っていきます。
( TeraTerm への貼り付けはマウス右クリック)
(頭に#や$がついてますがコピペをするのはその後ろのコマンドのみですのでご注意を。)

// オペレーティングシステムを最新バージョンへアップグレード

$ sudo apt update
$ sudo apt dist-upgrade
$ sudo apt autoremove

sudo apt-get update

gcc, make などの開発ツールをインストール

$ sudo apt-get install build-essential

Do you want to continue? [Y/n] とでたら Y でエンター。

//Node.jsインストール

$ sudo apt install nodejs

Do you want to continue? [Y/n] Y

//version確認

$ node -v

v8.10.0 等と出ていれば問題ないかと思います。(これは2019/06/20時点でのバージョンです)

//npmインストール

$ sudo apt install npm

Do you want to continue? [Y/n] Y

//tmuxインストール

$ sudo apt install tmux

//デフォルトのpython,pipの状態

$ python --version

Python 2.7.15rc1 等と表示されます。

$ which python
/usr/bin/python 

$ readlink -f /usr/bin/python
/usr/bin/python2.7 

$ sudo apt install python-pip

Do you want to continue? [Y/n] Y

ここで TeraTerm に以下のような表示が出る。

03ConoHa-AWScloud9

Google翻訳にかけると

再起動が必要なサービスがシステムにインストールされています
libpam、libc、libsslなどの特定のライブラリがアップグレードされたとき。
これらの再起動はシステムのサービスを中断させる可能性があるので、
通常は、アップグレードごとにサービスのリストの入力を求められます
再起動します。 あなたがそうであることを避けるためにこのオプションを選ぶことができます
指示された。 代わりに、必要なすべての再起動があなたのために行われます
各図書館で質問されるのを避けるために自動的に
アップグレードしてください。
                                                                            
質問なしでパッケージのアップグレード中にサービスを再開しますか?

うん。多分大丈夫。
って事でキーボードの矢印キーで左の<Yes>にカーソル移動させてEnter。

04ConoHa-AWScloud9
$ pip --version
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7) 

現在はPython2.7です。Python3を使いたいので張替え作業をします。
(Python2を使いたい方は飛ばして下さい)

python3へのリンク張替え

$ sudo mv /usr/bin/python /usr/bin/python2
$ sudo ln -s /usr/bin/python3 /usr/bin/python
$ sudo apt -y install python-pip
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo apt install python3-pip

Do you want to continue? [Y/n] Y

$ sudo apt install python3-setuptools
$ sudo python get-pip.py
$ sudo python3 get-pip.py
$ hash -r
$ sudo pip install ccxt
$ sudo pip install pandas

変更後のpython,pipの状態

$ python --version
Python 3.6.8

$ readlink -f /usr/bin/python
/usr/bin/python3.6 

$ pip --version
pip 19.1.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)

以上でPython3に張替えられていることが確認できました。

Python3.7 をインストール。

Python3.7を入れたい方は追加で以下を順に実行してください。
必要ない方は次の【AWSCloud9を設定していく。】まで飛ばしてください。

(3.7にする事により不具合が出る可能性もありますので、どうしてもしなければならない理由がある場合以外は3.6でいいと思います。)

2019/07/01現在、
ModuleNotFoundError: No module named ‘ccxt’
等のモジュール系エラーが出てるので、自力で解決できる方以外はこの手順はとばしてください(^▽^;

//インストール可能なパッケージの確認

$ sudo apt search python3.7-*

//python3.7をインストール

$ sudo apt install python3.7 python3.7-dev

Do you want to continue? [Y/n] Y

//バージョン確認

$ python3.7 -V
Python 3.7.3

//pipをインストール

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3.7 get-pip.py
# pip3.7 -V
pip 19.1.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)

//リンク張替え

$ sudo mv /usr/bin/python /usr/bin/python3
$ sudo ln -s /usr/bin/python3.7 /usr/bin/python

//バージョン確認

$ python --version
Python 3.7.3

$ readlink -f /usr/bin/python
/usr/bin/python3.7

$ pip --version
pip 19.1.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)

以上でPython3.7に張替えられていることが確認できました。

AWSCloud9を設定していく。

ここからはAWS Cloud9での作業にうつります。
( TeraTerm は後に SSHキーを authorized_keys に張り付ける際に必要なのでまだ閉じないでください。 )

AWS Cloud9 の environment を作成する。

AWS マネジメントコンソールにログインするしてサービス検索欄に【Cloud9】と打ち込み、Enter。

05ConoHa-AWScloud9

以下のように AWS Cloud9 の画面に入れますので、右上のリージョン選択から【東京】を選ぶ。(理由があって他のリージョンにしたい場合はそこを選ぶ)

06ConoHa-AWScloud9

次に【Create environment】をクリック。

07ConoHa-AWScloud9

自分に分かりやすいように名前と説明を入れる。(ConoHa等)
【Next step】をクリック。

08ConoHa-AWScloud9

【 Connect and run in remote server (SSH) 】にチェックを入れて、【User】にroot【Host】にConoHaVPSのIPアドレスをそれぞれ入力し、【Copy key to clipboard】から SSH key をクリップボードにコピー。

09ConoHa-AWScloud9

SSHキーをauthorized_keysに貼り付け保存 する。

TeraTerm に以下のコマンドをコピペしvimを開く。

$ sudo vim /root/.ssh/authorized_keys
10ConoHa-AWScloud9

上図のような画面が出たら、キーボードの【i】キーを押すと編集モードに入れます。
今回は先にsshキーが登録されていて、その後ろに追加したいので【a】キーを押してください。
これで、今記入されている文字の最後尾にカーソルが来ます。
【Enter】キーで改行し、先ほどコピーした public SSH key を張り付けします。

11ConoHa-AWScloud9

Escキーを押した後、【:wq】をキーボドで打ち込めば保存完了です。

AWS Cloud9のenvironment作成を完了する。

【Next step】をクリックで設定内容を確認し、 【Create environment】をクリック。

12ConoHa-AWScloud9

作成中にこの様な画面が出ますがそのまま【Next】で大丈夫です。

最後に【Finish】。

以下図のような画面が出れば終了です!

後は自分の使用する用途によって設定などをすればOKですね♪

18ConoHa-AWScloud9

ちなみに今の状態をざっくり見てみると

$ date
$ python3 --version
$ python --version
$ pip --version
$ readlink -f /usr/bin/python
19ConoHa-AWScloud9

日本時間ですね^^
Pythonも3.6.8になっています。(3.7を入れた場合は3.7になってます。)

お疲れさまでした^^