まえがき
毎度のことながら環境構築に四苦八苦しております。
今回もうんうん唸りながら構築しました。
sshログイン時にNode.jsのインストール、ログインせずnodebrewでのインストール、
の両方とも経験した(ただ失敗しただけ)ので、どちらも投稿します。
結局新たにEC2インスタンスを作成し、SSH環境では使用していないので、
ゴンがカッツォを助けたみたいに、どなたかの助けになれば、、
Cloud9を使用する際は、AD Blockなどの拡張機能の停止または削除してから実行しましょう。
不具合が発生する模様です。
※※ 2021/07/27に最下部に追記をいたしました。 ※※
動作環境
・MacBook Air (Retina, 13-inch, 2020)
・Big Sur11.4
・ターミナルシェル:zsh
前提
VPCやEC2インスタンスの作成、
あるいはElastic IPアドレスの取得等は事前に済んでいることとします。
Cloud9のリージョンは東京にしました。
1. Node.jsをインストール
Cloud9にはNode.jsが必要なので最初にインストールします。
(1)Amazon公式チュートリアルを参考にインストールしていきます
ターミナルにて、
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
※※ nvmのGitHubにて最新版のコードをコピペしてください ※※
(2)nvmを有効にします
. ~/.nvm/nvm.sh
(3)nvmを使用してNode.jsの安定版をインストールします
nvm install stable --latest-npm
(4)安定版をデフォルトに設定します
$ nvm alias default stable
(5)Cloud9で接続するディレクトリの権限を設定します 🔗 Amazon公式:SSH環境ホスト要件
sudo chmod u=rwx,g=rx,o=rx ~
(6)gccが必要なので、
🔗 AWS Cloud9 で既存の EC2 インスタンスに接続する
sudo yum -y gcc
(7)つづけて、
curl -L https://raw.githubusercontent.com/c9/install/master/install.sh | bash
(8)Node.jsが正しくインストールされ、実行されているかテストします
node -e "console.log('Running Node.js ' + process.version)"
-> 「Running Node.js VERSION」 と表示されればNode.jsのインストール、設定は完了です。
ec2-user@ip-○○○ $ node -e "console.log('Running Node.js ' + process.version)"
Running Node.js v14.17.3
2. 既存インスタンスのセキュリティグループを変更する
(1)AWSコンソールにログインします
EC2 -> 左メニューのセキュリティグループ
-> EC2に割り当てているセキュリティグループを選択
(2)インバウンドルールに下記を追加し保存します
タイプ | プロトコル | ポート番号 | ソース | 説明 |
---|---|---|---|---|
SSH | TCP | 18.179.48.128/27 | 22 | Cloud9 |
SSH | TCP | 18.179.48.96/27 | 22 | Cloud9 |
※※ コピー用 ※※ 説明欄は省略可能です ※※
(3)正常に保存されました
3-1. Cloud9の環境構築
(1)Cloud9に戻り、入力していきます
Name:任意のお名前
Description:既存のEC2インスタンスに接続
Descriptionは省略可能ですが、分かりやすいように記述しました。
-> Next Stepをクリック
(2)既存のEC2インスタンスに接続するため、一番下にある、
🔘Connect and run in remote server (SSH)を選択します
User:ec2-user(インスタンスのユーザー名)
Host:パブリックIPアドレスまたはDNSホスト名※
※EC2インスタンスに記載されていますが、DNSホスト名が無効になっていると、
「 - 」と表示されているので有効にします。無効の方は3-2を参考になさってください。
(3)Copy key to clipbord をクリックして公開鍵をコピーします
Advanced settingsは空欄のままでOKです。
(4)ターミナルに戻り、
sudo vim ./. ssh/authrized-keys/
に移動し、さきほどCopy key to clipbordでコピーした鍵を貼り付け保存します。
(5)Cloud9に戻り、Next StepをクリックするとReviewが表示されます
確認後にCreate environmentをクリックするとCloud9が作成されます
わたしのようにsshログインせずインストールしてしまっていたら、
エラーメッセージが表示されます。
Could not execute node.js on あなたのIPアドレス #訳:ssh環境にNode.jsないで
ログインしてないと気付いたときにはゾッとしました。。
3-2. DNSホスト名が「無効」の方へ:DNSホスト名を有効にする
(1)VPCコンソール -> VPC -> 使用しているVPCを選択
(2)下タブのDNSホスト名:「無効」を見届ける
(3)選択したVPC -> アクション -> DNSホスト名の編集
-> DNSホスト名 ☑︎有効化 にチェックして保存
(4)「有効」になりました
(5)EC2コンソール -> EC2で再度確認すると、DNSホスト名が表示されているはずです
こちらをCloud9のHOSTに貼り付けます。
*1. nodebrewを使ったNode.jsのインストール
(1)homebrewでnodebrewをインストールしていきます
brew install nodebrew
(2)nodebrewがインストールされたか確認します
% nodebrew
v8.9.4
(3)Nodebrewをセットアップします
nodebrew setup
(4)PATHの設定を書き込みます
export PATH=$HOME/.nodebrew/current/bin:$PATH
が表示されているはずなので、vim ~/.zshrcに移動し、貼り付けてPATHを通します
:wq #保存
source =/.zshrc #反映
(5)同作確認を行います
nodebrew -help
ヘルプがブワァ〜と表示されればnodebrewのインストールは完了です。
*2. Node.jpをインストール
(1)Node.jsのインストール可能なバージョンを調べます
nodebrew ls-all
(2)今回は安定版(LTS)をインストールしました。2021/07/15時点で、v14.17.3でした
nodebrew install -binary stable
※※ 最新版をインストールしたい方はこちら↓
nodebrew install latest
※※ エラーが出てしまった方はこちら -> 🔗 MacにNode.jsをインストールする方法
(3)インストールしたNode.jsのバージョンを確認します
% nobebrew ls
v17.17.3
current:none
(4)バージョンが表示されましたが、cuurent(現在)がnoneになっているので、
使用するバージョンを選択し、currentに表示されるか確認しましょう
% nodebrew use v14.17.3
use v14.17.3
% nodebrew ls
v14.17.3
current: v14.17.3
(5)何度でも確認したいので、ターミナルを終了したあと、
再度ターミナルを開き、下記コマンドでもう一度バージョンを表示して確認します
node -v
(6)1の(8)と同じく、Cloud9の接続するディレクトリ権限を設定します
sudo chmod u=rwx,g=rx,o=rx ~
(7)gccが必要なので、①yumでgccをインストールし、
②curlでインストーラーをダウンロードして実行します
※※ gcc:さまざまなプログラミング言語のコンパイラ集のこと。🔗 IT用語辞典バイナリ
sudo yum -y gcc
curl -L https://raw.githubusercontent.com/c9/install/master/install.sh | bash
(8)本当にすごい量がブワァと表示されたのち、:Doneと表示されれば終了です!
おつかれさまでした!
ちなみになんですが、最後の
| bash
を省略してしまうと、
URL先に記述されているのコードがターミナル上に表示されるだけになります(経験者)。
あとがき
SSH接続だと、セキュリティの設定やrvmのインストール等、自力でしなくてはなりません。
ノートに「マジでできたやっと 17:27:10」と書き残してあるのですが、
1日かかったやないか。。と学習が追いついていないことに愕然します。
未知の環境に複数手を出してはいけないと痛感しました。
phpとPython、サーバー系をとことんがんばります!
2021/07/27 追記
既存のEC2ではなく、新たにEC2を作成した、と記述しましたが、
2021/07/22に確認してみると、EBSが100%になり無料枠を超えており、
10円程加算されていました。Cloud9と連携しているボリュームのため、
加算を止めるためにCloud9の環境を削除しました。Cloud9はほぼ触っていなかったのですが、
こんなにスナップショットが作成されているとは。。すでにEC2インスタンスを作成しており、
さらにCloud9でEC2を作成した方はお気をつけください。止めても1日$0.01加算されます。
先月と値段が異なる理由はRDSを再作成したからです。作成手順を投稿しました。