内容
・趣旨目標
・使えるサービス
・参考サイト
・環境・EC2の作成、キーペアの作成
・SSH接続
・VSCodeから接続、ファイルなどの作成
趣旨目標
AWSを活用して簡単なWebアプリ(Hello World)をSSH通信でデプロイして、手を動かして学ぶ。
使えるサービス
EC2,Python,VSCode,Ubuntu
参考サイト:
環境
Windows11,Python,VSCode(これらはセットアップ済みとして進めます。)
EC2の作成、キーペアの作成
ここでキーペア作成、widowsなのでCドライブのユーザー直下の「ssh」に格納
HTTP,HTTPS,SSHでインバウンド許可
SSH接続
・powershellで接続
先程のSSHのアドレスを貼り付ける。以下デフォルトの状態
次の形式に修正
ssh -i "ここにキーファイルのパスを入れる" ubuntu@ec2-34-238-44-107.compute-1.amazonaws.com
修正済み(接続完了)
※恐らくEC2からコピーしたデフォルトのパスでもいけますね。試してませんが(;'∀')
メモ:ここでSSHタイムアウトが怖いので、一度ログアウト方法を記載
exit
・Pythonのバージョン確認して、デフォルトのバージョンを確認
python -v
デフォルトになっていないので、画像のとおりコマンドを打ってください。と記載されています。
そもそもPython3がインストールされているか確認
python3 --version
入っているので、以下のコマンドでデフォルトのPythonをPython3にする。
sudo apt install python-is-python3
これのインストールが走って、再び以下のコマンド実行
python -v
たっくさん設定が表示され、デフォルトで設定されたことが分かる。
対話モードを抜ける「Ctrl+D」
続いて、Pythonがサーバー上で動作するか確認
空ファイル作成
touch script.py
編集していく(vi)。
編集画面で例:print('こんにちわっす')と入力して保存で閉じる。
vi script.py
Pythonを実行
python script.py
VSCodeから接続、ファイルなどの作成
拡張機能を入れて、EC2にあったキー(powershellにも入力した文字)を再び入力して接続する。
接続完了
コードを編集して、サーバーに繋がったターミナルから確認できるか
できています。
・パッケージを最新へ
sudo apt update
pipをインストール
sudo apt install python3-pip
・Flaskをインストール
sudo pip install flask
「flaskr」というフォルダを作成し、「templates」というフォルダ作成。
「templates」に新たなファイル「index.html」を作成。
動画で紹介されるHTMLコード(自己流に編集しましょう。)
<!DOCTYPE html>
<html lange="ja">
<head>
<meta charset="UTF-8">
<title>EC2にHPデプロイ!</title>
</head>
<body>
<h1>けいじのホームページ</h1>
<span>VScode使ってSSH接続でEC2上にWebサイト構築したもの。</span>
</body>
次に「flaskr」直下に「main.py」を作成
htmlデータが表示されるアプリを作ります。
from flaskr import app
from flask import render_template
@app.route('/')
def index():
return render_template(
'index.html',
)
次に「flaskr」の中に、「init.py」ファイルを作成する。
今こんな感じ
__init__py
from flask import Flask
app = Flask(__name__)
import flaskr.main
アプリに通ずるPythonのフォルダだよーと認識させる。これで繋がることができる。
考えてみたら、サーバーサーバーと言うけど、実際はPCだし、アプリはフォルダに入ったデータでしかない(p_-)なので、このフォルダはPython用でアプリに繋がっている大事なフォルダだよーと認識させないといけない。つまりinitファイルが大事(´▽`)
Pythonを実行
sudo flask --app flaskr run --port 80 --host 0.0.0.0
改めてハンズオンを行った結果、半年前の理解度とエラー対処の行動が少し変わった気がします。経験だけを頼って仕事することは危険ですが、困ったときの対応方法に経験が活かされる気がします。精進いたします。