この記事は何?
初学者向けにElastic Beanstalkでデプロイする方法を共有します!
SEにカテゴリーされる仕事を雰囲気でこなしている私が興味でwebアプリ制作からデプロイまで実施し、一番苦労したデプロイ方法を共有します。
デプロイしたサイト:https://sushi1000yen.click/
Elastic Beanstalk?
AWS提供の楽なデプロイ方法
とりあえずローカルで動くプログラムを作れたら、あとはAWSがなんとかしてwebに公開してくれます。
VMやストレージはもちろんIAMロールとかセキュリティ設定とかもやってくれます。(よくわからないけどすごい!)
では、やっていきます!
まずは作ったプログラムをzipファイルにします
ここで注意ですが親ディレクトリを含めてはだめです。ファイルのみをzip化しましょう。
こんな感じでzipファイルを開いたら各ファイルがある階層ならOKです!
awsでデプロイ権限を作ります
「aws-elasticbeanstalk-ec2-role」という名前で以下のポリシーを持つIAMロールを作りましょう。
・AWSElasticBeanstalkWebTier
・AWSElasticBeanstalkWorkerTier
・AWSElasticBeanstalkMulticontainerDocker
昔は自動で作られていたらしいですが今は手動らしいです。。(ここで数時間詰まった。。)
参考:https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/concepts-roles-instance.html
ここまで来たらついにデプロイ!
Elastic Beanstalkの画面に移動して「環境を作成」に進みます。
基本的にはデフォルトの設定で入力項目は以下の通り!
・アプリケーション:好きなお名前
・環境名:好きなお名前
・プラットフォーム:使ったプログラム名とバージョンを選択。
・アプリケーションコード:画像参考にzipファイルを選択
ここまで入力したら「次へ」に進みます。
ロールを選ぶ画面で作ったロールをしっかり選んであげましょう。
あとは基本デフォルトで進めて作成に進みます!
デプロイどうでしょうか?
何分か待つと完了するはずです。ヘルスの状態が「ok」になっており、ドメインにアクセスできれば成功です。おめでとうございます!!
エラーが出てしまった方へ
大丈夫です。AWSは解決策も提示してくれます。
まずはログ画面に進み、「リクエストログ」から「フル」を選択しエラーログを取得しましょう。
ダウンロードしましたら色々ファイルがあると思いますが、ver → log → eb-engineに進みエラー内容を見ます。詳しい方はたぶんこちらで解決できます。
私と同様に知識のない方は、ログ内容をすべてchatGPTに投げましょう。その際に作ったコード内容とディレクトリ構造なども同時に伝えてあげましょう。
何度かGPT → 修正 → デプロイの流れを繰り返すと成功すると思います。(解決しない場合は他のエラーログも見てみましょう。)
まとめ
デプロイ出来ましたでしょうか?
AWSでのデプロイを考えたときに色々調べましたがコマンドラインでの実装が多く、知識のない私には難しかったので同じような方の助けになればと思い始めて投稿しました。少しでも参考になればうれしいです。
以降、Elastic Beanstalk以外の私用のまとめになります
- この取り組みについて
友達と何か作ってみたいとなり、1週間に1度15分ほどの成果報告会を開き数か月かけて完成させました。 - 開発環境とツール
利用技術
フロントエンド: HTML, CSS, JavaScript
バックエンド: Python (Flask)
デプロイ: AWS Elastic Beanstal
ドメイン管理: AWS Route 53
その他: チャットGPTを活用しながら進行 - デプロイ手順
ローカルでアプリの作成
→ほとんどGPTです。
Elastic Beanstalkでのデプロイ - HTTPS対応
Route 53でドメインを購入
SSL証明書の取得と適用 - 振り返り
お互い非エンジニアながら時代の進化(GPTやAWS Elastic Beanstalk)に助けられ何とかデプロイまで達成出来ました。
今更ですが、1000円以内で寿司ネタを選んでくれるというサイトを作りました。
1年間はドメインを購入しておりwebに公開しているのでぜひ一度試してもらえたらうれしいです。(ネタが更新されないなど問題だらけですが、、(笑))
URL:https://sushi1000yen.click/
ここまで、読んでくださりありがとうございます!