事前にpythonpipインストールする必要があります。

有れば、ただ以下を実行するだけです。

pip install awscli
#
# Collecting awscli
#   Downloading # https://files.pythonhosted.org/packages/27/b9/58853ad71a7fc44deb1ea48e0055f9b516398d9fce# 86845b9bb737b56b64/awscli-1.16.220-py2.py3-none-any.whl (1.9MB)
#     100% |████████████████████████████████| 1.9MB 509kB/s 
# ...

EC2で色々やっていたところ容量が足りないと言われたので、確認すると9x%になっていたので容量を増やして見ることにしました。

現状

$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
# ...
/dev/xvda1      10188068 xxxxxxx   1626996  9x% /

容量を上げる

まずEC2のページへ行って、左サイドバーのボリュームを選択します。

そして、アクションの中のボリュームの変更をクリックします。

希望するサイズを適当に入力して変更をクリックします。

そうしたらマシンをrebootなりで再起動したら反映されているはずです。

Cloud9と新規Ec2マシンを同時に建てた場合のときの話です。

最新の NodeJS を入れる

nvmは使えるのでこれを使います。

nvm install stable
# Downloading https://nodejs.org/dist/v11.6.0/node-v11.6.0-linux-x64.tar.xz...
# ######################################################################## 100.0%
# Now using node v11.6.0 (npm v6.5.0-next.0)

このときはv11.6.0が入りました。今後ログインした時にこれがデフォルトで使えるようにします。

nvm alias default v11.6.0

他のユーザーでも使えるように

nを使う方法がおすすめです。以下で他のユーザーでは/usr/local/bin/nodeを見るような形にできます。

yarn global add n
sudo ~/.yarn/bin/n 11

最新の Yarn を入れる

yarnはこれだけです。

curl -o- -L https://yarnpkg.com/install.sh | bash

これはユーザー毎に実行する必要があります。ログで出たようにパスだけ通す必要があります。

export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"

fishユーザーはこっちで。

set -x PATH $HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin $PATH

2019-02時点だとデフォルトで入っている NodeJS のバージョンはv6.16.0で少し古いです。これを現時点での最新のv11.9.0を使えるようにする方法です。

Cloud9のデフォルトアカウントでは、.bash_profilenvmの設定が読み込まれているので、最初からnvmコマンドを使うことができます。

nvm とは「Node Version Manager」 の略です。コマンド1つで最新バージョンにアップグレードしたり、あるバージョンにダウングレードすることができます。これ系には、npmで入れることができるnなどもあります。

最新 NodeJS のインストール

nvmで最新を入れるには以下のコマンドを実行します。

ec2-user:~/environment $ nvm install stable
# Downloading https://nodejs.org/dist/v11.9.0/node-v11.9.0-linux-x64.tar.xz...
# ######################################################################## 100.0%
# Now using node v11.9.0 (npm v6.5.0)

今回はv11.9.0が入ったというログがでます。

Cloud9 にログインした時に最新バージョンで使えるように

今のままだとログインした時のバージョンは最初のv6.16.0になってしまうので、デフォルトで今入れた最新バージョンを使うようにします。それは以下のようなコマンドでできます。バージョン部分には先程のインストール時に出力されたバージョンをコピペします。

ec2-user:~/environment $ nvm alias default v11.9.0
# default -> v11.9.0

一度ターミナルを閉じて、再度開いてバージョンを確認します。この時に先程コピペしたバージョンと同じなら完了です。

ec2-user:~/environment $ node -v
# v11.9.0

デフォルトユーザーのec2-userをそのまま使います。(カスタムユーザーを作ると接続できなくなる…)

Linuxbrew をインストール

Mac の Homebrew の Linux 版です。(でもv2.0.0で合体した?)1コマンドで色々インストールできて便利なツールです。
以下で入れれます。

sudo yum groupinstall 'Development Tools' -y
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

Fish をインストール

インストールは以下でできます。

/home/linuxbrew/.linuxbrew/bin/brew install fish

そして、一番最初の行にfishを使うというコマンドを追加します。

vim ~/.bash_profile

以下を追加。

/home/linuxbrew/.linuxbrew/bin/fish

これでターミナルを開いたとき勝手にfishが実行されてfishシェルな状態で始めることができます。

ちなみに以下の方法でターミナルを開いた時にデフォルトシェルな状態で始めれるかなと思ったのですが、何故かec2-userでは効きませんでした。

# ec2-user のパスワードセット
sudo passwd ec2-user
sudo reboot

sudo vim /etc/shells
# /home/linuxbrew/.linuxbrew/bin/fish 追加

# ec2-user のシェルを変更(パスワード聞かれる)
chsh -s /home/linuxbrew/.linuxbrew/bin/fish

Fish の設定で brew へのパスを通しておく

fishの設定ファイルは~/.config/fish/config.fishですので、これにパスを通す設定を書きます。

mkdir -p ~/.config/fish
touch ~/.config/fish/config.fish
echo 'set -x PATH /home/linuxbrew/.linuxbrew/bin $PATH' > ~/.config/fish/config.fish

再度ターミナルを開いて、

$ brew --version
# Homebrew 2.0.0

のようにバージョンが出れば完了です。

nodebrew で NodeJS を入れる

ちょっとnvmがfishと相性悪かったので、nodebrewで NodeJS の最新を入れてみます。

brew install nodebrew
echo 'set -x $HOME/.nodebrew/current/bin $PATH' >> ~/.config/fish/config.fish
mkdir -p ~/.nodebrew/src # これしないとダメだった

ここでターミナルを開き直して、

nodebrew install stable
nodebrew use stable

今回はv10.15.1が入りました。

$ node -v
# v10.15.1

ついでに Yarn

curl -o- -L https://yarnpkg.com/install.sh | bash

前提

  1. useraddしてfooユーザーを作成

  2. su -l fooでチェンジ

  3. デフォルトユーザーのenvironmentの中でyarn create react-app hello-react-app

  4. その中でyarn start

  5. プレビュー

でもこんな感じの画面で見れません。

デフォルトユーザーとの違い

よく見ると作ったユーザーはポート3000で建ててるのに、デフォルトユーザーでは8080で建っています。どうやらデフォルトユーザーの環境変数には$PORT8080が登録されてて、これを見ている様子です。

# デフォルトユーザーで
echo $PORT # 8080

画像の注意書きにもそのような感じのことが書かれてますね。

package.json の編集

では、8080で立つように scriptsstartPORT=8080 react-scripts startとしてみましょう。そして再度yarn start

結果

無事プレビューできました!

aws cli でとあるユーザーを追加するには、

aws configure

でした。1ユーザーならいいのですが、複数ユーザー操作したい場合にこれだと不便です。

--profile オプション

その場合は--profileオプションを使って「このユーザーの設定ですよ」と明示できます。

aws --profile foo configure 

これでfooというユーザーの情報が登録できました。あとは他のすべてのコマンドで--profile fooと追加します。

aws --profile foo s3 sync images s3://hoge/images
aws --profile foo s3 ls hoge

こんなエラーです。

psql: could not connect to server: Operation timed out
        Is the server running on host "host" (x.x.x.x) and accepting
        TCP/IP connections on port 5432?

セキュリティグループの Inbound に Postgresql で使っているポートが許可されているか

psqlで接続するとき、デフォルトで5432ポートが使われます。以下の場所からそれが許可されているか確認します。

もし、5432に関する設定がなければ以下のように追加します。

接続できれば完了です。

対象のインスタンスが起動している場合はまず停止します。次にアクションから「インスタンスタイプの変更」をクリック。

好きなインスタンスを選択して「適用」します。

あとはインスタンスを再度起動するだけです。

--profile nju33が設定されているものとします。

停止

以下のようなコマンドを実行します。

aws --profile nju33 rds stop-db-instance --db-instance-identifier 

実行後うまくいくと「停止中」となり、しばらく待つと完全に「停止」します。

稼働

今度はrds start-db-instanceコマンドを使います。以下のようにです。

aws --profile nju33 rds start-db-instance --db-instance-identifier 

「停止」な状態のインスタンスにのみ使えます。「停止中」に実行すると以下のエラーになります。

An error occurred (InvalidDBInstanceState) when calling the StartDBInstance operation:
Instance *** is not stopped, cannot be started.

基本実行後 JSON が出力されれば成功のようです。停めれるのは最高で7日間のようなので、あまり使わない場合などはcronなどで自動で走るようにすると良さそうです。

JavaScript で飯食べたい歴約 8 年、 純( nju33 ) によるノートサイトです。

このサイトではドリンク代や奨学金返済の為、広告などを貼らせて頂いてますがご了承ください。

Change Log