本日のお悩み
AWSのEC2へのデプロイ方法がわからない
アプリケーションの無料ホスト先がなくなってきたのでいよいよec2に手をつけます。
herokuの有料化やstreamlitやrenderが簡単で良かったのですが、無料枠が超えたのと、djangoがデプロイできなそうでした。awsのec2は実務でもシェア率が高いですし転職活動も有利に働くとの情報もありましたので勉強も兼ねて今回はec2でチャレンジしてみました。
アウトプットも兼ねて簡単に手順を記載していきます。
本日の処方箋
今回は尊敬しているPythonプログラミング VTuber サプーさんの動画を参考にして進めていきます。
今回の講義動画7分38秒くらいまでは動画を見ながら進めていけば大丈夫です。
awsへのssh接続手順(Mac)
ホームディレクトリに移動
-
cd ~
.sshディレクトリが存在しない場合、作成する
-
-p: もし親ディレクトリが存在しない場合、作成
mkdir -p ~/.ssh
~: は現在のユーザーのホームディレクトリを指すので、~/.ssh はユーザーのホームディレクトリに作成される
作成されたsshディレクトリはセキュリティで可視化されていないため作成したディレクトリに移動してからlsコマンドを入力して確認する
-
cd ~/.ssh ls
ダウンロードしたpemファイルに移動
-
cd ~/Downloads
次に、mvコマンドを使用して、pemファイルを.sshディレクトリに移動します。以下は例です(your-key.pemは実際のpemファイル名に置き換えてください)
-
mv your-key.pem ~/.ssh/
awsの秘密鍵のパーミッションを設定する(your-keyは自分のpemファイル名)
-
chmod 400 ~/.ssh/your-key.pem
秘密鍵を使ってEC2に接続する
-
ubuntuはmacosを選択していたらここはmacosとかに変わるかと思います。僕はubuntuを選びました。
ssh -i "~/.ssh/my-key.pem" ubuntu@example.compute.amazonaws.com
ec2のインスタンスに接続というところの画面の下にコピー例があるのでそこに **~/.ssh/**を追加してあげて場所を教えてあげればいけます。そのままコピーするとそんなファイルないよとエラーになります。
まとめるとこんな感じ
-
cd ~ mkdir -p ~/.ssh cd ~/Downloads mv my-key.pem ~/.ssh/ chmod 400 ~/.ssh/my-key.pem ssh -i "~/.ssh/my-key.pem" ubuntu@example.compute.amazonaws.com