0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSでWebアプリケーションを公開

Last updated at Posted at 2025-09-03

以前作ったアプリがあるので、お試しでAWSで公開してみようと思いました。
サーバー構成は、nginxをリバースプロキシとして使用し、バックエンドはPythonのgunicornで動かします。

※今回は事前にバックエンド、フロントエンドのソースコードは用意できている前提で進めます。

EC2の設定

AWSにサインインし、EC2>インスタンスと進んでいくと「インスタンスを起動」が表示されるため、それを押します。
最低限、設定が必要なところは「キーペア」と「ネットワーク設定」なのでそこの解説をします。

※インスタンスタイプはt2.microが無料枠対象なのでこだわりなければおすすめ

キーペア

今回は新しくキーペアを作成、設定はそのままでいいのでキーペア名を入力し、「キーペアを作成」
作成するとpem(あるいはppk)ファイルが保存されます。

image.png

image.png

ネットワーク設定

セキュリティグループをルールを編集し、22(SSH)と80(HTTP)ポートにアクセスを可能とします。
※今回はテスト環境のため、任意の場所からのアクセス許可とします。

image.png

以上を設定し「インスタンスを起動」で設定完了。
インスタンス概要からパブリックipアドレスを控えてきます。

スクリーンショット 2025-08-31 165431.png

アプリケーションの公開設定

EC2への接続

まずは、先ほど起動したEC2にsshで接続します(ここで鍵が必要になってきます)。
今回はTeraTermを使用しますが、sshで接続できるのであればなんでも問題ないです。

特に設定していなければ、ユーザは「ec2-user」、パスワードはなしで大丈夫です。

スクリーンショット 2025-08-31 170508.png

接続後にscp、gitなどを用いてサーバを立てるのに必要なファイル群をEC2内に用意します。

linuxの場合

ssh -i 〇.pem ec2-user@パブリックIP

nginxの設定

下記コマンド実行でnginxをインストールします。

sudo yum update -y
sudo yum install nginx -y

成功したのち、設定ファイルの編集を行います。

sudo vi /etc/nginx/nginx.conf

設定ファイルを開き、httpのserver箇所を以下のように編集してください。

    server {
        listen 80;

        server_name 〇.〇.〇.〇; # あなたのパブリックIPアドレス

        location / {
                root /home/ec2-user/build; # ビルドファイルのパス
                try_files $uri /index.html;
        }

        location /api/ {
                proxy_pass http://127.0.0.1:5000;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
        }
     }

その後、nginxを起動します。

sudo systemctl start nginx

バックエンドの設定

pythonのインストールを行います。

sudo yum install python3 python3-pip -y

その後、必要なパッケージのインストールを行います。下は一例ですので、それぞれ必要に応じてパッケージを入れます。

pip install flask flask-cors gunicorn

サーバー起動のスクリプトが記載されているファイル(app.pyなど)があるディレクトリまで移動し、以下のコマンドでサーバを起動します。

nohup gunicorn -w 4 -b 127.0.0.1:5000 app:app &

バックエンドの設定がうまくいっていれば、サーバが起動します。

image.png

動作確認

http://パブリックIPでアクセスします。
成功していた場合、作成したアプリが立ち上がります。
※もし、接続に失敗していた場合はgunicorn、nginxのログなどで原因を探してみてください。

スクリーンショット 2025-08-31 173042.png

バックエンド側も動作していました。

スクリーンショット 2025-08-31 173347.png

image.png

まとめ

AWSを使ってWEBアプリケージョンを公開までやってみました。
今回はお試しということでセキュリティ面には考慮してませんが、次はそのあたりも考慮してやってみたいです。

余談

今回公開したアプリでフロントエンド側で使用したライブラリです。
blocly

チュートリアルなどもあるため、ビジュアルプログラミングに触ってみたい人も入りやすいと思います。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?