2
2

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 Elastic BeanstalkでPythonアプリをデプロイしてみた

Posted at

この記事は何?

初学者向けにElastic Beanstalkでデプロイする方法を共有します!

SEにカテゴリーされる仕事を雰囲気でこなしている私が興味でwebアプリ制作からデプロイまで実施し、一番苦労したデプロイ方法を共有します。
デプロイしたサイト:https://sushi1000yen.click/

Elastic Beanstalk?

AWS提供の楽なデプロイ方法

とりあえずローカルで動くプログラムを作れたら、あとはAWSがなんとかしてwebに公開してくれます。
VMやストレージはもちろんIAMロールとかセキュリティ設定とかもやってくれます。(よくわからないけどすごい!)

では、やっていきます!

まずは作ったプログラムをzipファイルにします

ここで注意ですが親ディレクトリを含めてはだめです。ファイルのみをzip化しましょう。
こんな感じでzipファイルを開いたら各ファイルがある階層ならOKです!
image.png

awsでデプロイ権限を作ります

「aws-elasticbeanstalk-ec2-role」という名前で以下のポリシーを持つIAMロールを作りましょう。
・AWSElasticBeanstalkWebTier
・AWSElasticBeanstalkWorkerTier
・AWSElasticBeanstalkMulticontainerDocker
image.png
昔は自動で作られていたらしいですが今は手動らしいです。。(ここで数時間詰まった。。)
参考:https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/concepts-roles-instance.html

ここまで来たらついにデプロイ!

Elastic Beanstalkの画面に移動して「環境を作成」に進みます。
基本的にはデフォルトの設定で入力項目は以下の通り!
・アプリケーション:好きなお名前
・環境名:好きなお名前
・プラットフォーム:使ったプログラム名とバージョンを選択。
・アプリケーションコード:画像参考にzipファイルを選択
image.png
ここまで入力したら「次へ」に進みます。
ロールを選ぶ画面で作ったロールをしっかり選んであげましょう。
image.png
あとは基本デフォルトで進めて作成に進みます!

デプロイどうでしょうか?

何分か待つと完了するはずです。ヘルスの状態が「ok」になっており、ドメインにアクセスできれば成功です。おめでとうございます!!
image.png

エラーが出てしまった方へ

大丈夫です。AWSは解決策も提示してくれます。
まずはログ画面に進み、「リクエストログ」から「フル」を選択しエラーログを取得しましょう。
image.png
ダウンロードしましたら色々ファイルがあると思いますが、ver → log → eb-engineに進みエラー内容を見ます。詳しい方はたぶんこちらで解決できます。
私と同様に知識のない方は、ログ内容をすべてchatGPTに投げましょう。その際に作ったコード内容とディレクトリ構造なども同時に伝えてあげましょう。
何度かGPT → 修正 → デプロイの流れを繰り返すと成功すると思います。(解決しない場合は他のエラーログも見てみましょう。)

まとめ

デプロイ出来ましたでしょうか?
AWSでのデプロイを考えたときに色々調べましたがコマンドラインでの実装が多く、知識のない私には難しかったので同じような方の助けになればと思い始めて投稿しました。少しでも参考になればうれしいです。

以降、Elastic Beanstalk以外の私用のまとめになります

  1. この取り組みについて
    友達と何か作ってみたいとなり、1週間に1度15分ほどの成果報告会を開き数か月かけて完成させました。
  2. 開発環境とツール
    利用技術
    フロントエンド: HTML, CSS, JavaScript
    バックエンド: Python (Flask)
    デプロイ: AWS Elastic Beanstal
    ドメイン管理: AWS Route 53
    その他: チャットGPTを活用しながら進行
  3. デプロイ手順
    ローカルでアプリの作成
    →ほとんどGPTです。
    Elastic Beanstalkでのデプロイ
  4. HTTPS対応
    Route 53でドメインを購入
    SSL証明書の取得と適用
  5. 振り返り
    お互い非エンジニアながら時代の進化(GPTやAWS Elastic Beanstalk)に助けられ何とかデプロイまで達成出来ました。
    今更ですが、1000円以内で寿司ネタを選んでくれるというサイトを作りました。
    1年間はドメインを購入しておりwebに公開しているのでぜひ一度試してもらえたらうれしいです。(ネタが更新されないなど問題だらけですが、、(笑))

URL:https://sushi1000yen.click/

ここまで、読んでくださりありがとうございます!

image.png

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?