使用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界面佈署一次
做一些基本設定
發佈
將Laravel打包
zip ../web-laravel.zip -r * ".[^.]*" -x "vendor/*"
接著先手動上傳程式碼
開始建立
建立之後一段時間
AWS會陸續自動建立這些資源
- Load Balancer
- Target Groups
- EC2
- Security Groups
- Auto Scaling Groups
接著看EB的環境
可以看到已經建立出來的服務資訊
將document root設定為public
設定EC2 SSH Key Pair
設定好之後才能登入EC2
設定好之後就可以這樣登入該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