使用AWS Elastic Beanstalk建立簡單的Laravel環境

2020/10/31

 

本篇參考官方文件

 

安裝Elastic Beanstalk CLI

參考連結:https://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/eb-cli3.html

Linux系統安裝AWS EB CLI需要python 3.7版本

sudo apt-get update -y
sudo apt-get install python3.7 -y

 

# 安裝pip
curl -O https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py --user

# 如果上一步安裝pip有錯誤再執行此行安裝缺少的套件
sudo apt-get install python3-distutils -y

# 確認pip安裝完成
pip --version

# 安裝eb cli
pip install awsebcli --upgrade --user

# 設定為可執行指令
sudo ln -s ~/.local/bin/eb /usr/local/bin/eb

# 確定EB CLI安裝完成
eb --version

 

設定IAM

使用EB CLI操做AWS需要Access Key

因此需要在IAM設定一組Access Key

並且擁有AWSElasticBeanstalkFullAccess權限

接著在~/.aws/config設定(或是執行eb init輸入Access Key)

[profile eb-cli]
aws_access_key_id = aws_access_key_id
aws_secret_access_key = aws_secret_access_key

 

建立應用程式

使用AWS界面佈署一次

做一些基本設定

Screenshot_20201031_121026.png

 

Screenshot_20201031_121052.png

 

發佈

將Laravel打包

zip ../web-laravel.zip -r * ".[^.]*" -x "vendor/*"

 

接著先手動上傳程式碼

upload.png

 

開始建立

建立之後一段時間

AWS會陸續自動建立這些資源

  • Load Balancer
  • Target Groups
  • EC2
  • Security Groups
  • Auto Scaling Groups

 

接著看EB的環境

可以看到已經建立出來的服務資訊

eb.png

 

將document root設定為public

Screenshot_20201031_122612.png

 

Screenshot_20201031_122742.png

 

設定EC2 SSH Key Pair

設定好之後才能登入EC2

Screenshot_20201031_123634.png

 

設定好之後就可以這樣登入該eb開出來的ec2

eb use demo-stage
eb ssh demo-stage

 

登入之後如果需要查看web的code

可以前往/var/www/html資料夾

 

刪除應用程式

刪除應用程式後

先前EB建立的相關資源

包含ELB、Security Group、Target groups、VPC、Auto Scaling Groups

全部都會被同時刪除

 

其他

AWS EB其實很多都是使用基於比較基礎的服務

像是儲存的設定檔、EB佈署的每個版本原始碼壓縮檔、各個環境檔案

其實都是存在S3

eb-s3.png