ทดลอง Deploy Laravel ด้วย Elastic Beanstalk และลองเชื่อมต่อกับ RDS

เราสามารถ Deploy Project Laravel ขึ้นไปแสดงบนเว็บไซต์ด้วย Elastic Beanstalk ได้ง่ายๆ ซึ่งในบทความครั้งนี้ผมจะแนะนำวิธี Deploy Project Laravel ด้วย Elastic Beanstalk และการ Run Command ใน Amazon Linux 2 เพื่อย้ายข้อมูลไปยัง Database ของ RDS และแสดงหน้าเว็บไซต์หลัก (Home) ของ Laravel ครับ

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ครั้งนี้ผมจะมาแนะนำการ ทดลอง Deploy Laravel ด้วย Elastic Beanstalk และลองเชื่อมต่อกับ RDS ครับ

เป้าหมายในการทำ

ผมจะสร้าง Applications และ Environments ใน Elastic Beanstalk โดยใช้ Platform PHP และ Deploy Project Laravel ด้วย Environments จากนั้นทำการ Run Command ใน Amazon Linux 2 เพื่อย้ายข้อมูลไปยัง Database ของ RDS และแสดงหน้าเว็บไซต์หลัก (Home) ของ Laravel ครับ

สร้าง Key Pairs และ Security Groups เพื่อใช้สำหรับ Elastic Beanstalk

ขั้นตอนนี้ผมจะสร้าง Key Pairs เตรียมไว้เพื่อใช้กับ Instance ที่จะสร้างใน Environments ของ Elastic Beanstalk และสร้าง Security Groups เพื่อใช้สำหรับ Elastic Beanstalk

สร้าง Key Pairs เพื่อใช้กับ Instance ที่สร้างจาก Elastic Beanstalk

ดูตัวอย่างที่นี่เฉพาะหัวข้อนี้: การ Create Key Pair

ตัวอย่างตั้งค่าการสร้าง Key Pairs ในบทความนี้
※Create Key pairs
Name:tinnakorn-test
Private key file format:.ppk


สร้าง Security Groups เพื่อใช้สำหรับ Elastic Beanstalk

ขั้นตอนนี้เป็นการสร้าง Security Group โดยใช้ชื่อว่าtinnakorn-test-eb

เข้ามาที่ Service Amazon EC2 มาที่เมนูด้านซ้ายหัวข้อ ▼ Network & Security แล้วคลิกSecurity Groups

คลิกCreate security group

เมื่อเข้ามาหน้า Create security group แล้วให้ตั้งค่า Basic details:
» Security group name:tinnakorn-test-eb(ชื่ออะไรก็ได้)
» Description:tinnakorn-test-eb(ใส่อะไรก็ได้)

จากนั้นเลื่อนลงมาด้านล่างสุด คลิกปุ่มCreate security group

การสร้าง Security Groups เพื่อใช้สำหรับ Elastic Beanstalk ก็เสร็จเรียบร้อยแล้วครับ ให้ทำขั้นตอนถัดไปได้เลยครับ

วิธีการสร้าง RDS

ให้ทำการสร้าง RDS ตามลิงก์ด้านล่างนี้ได้เลยครับ (ทำเฉพาะหัวข้อที่ระบุไว้ด้านล่างนี้เท่านั้นครับ)

ตัวอย่างตั้งค่าการสร้าง RDS และเชื่อมต่อจาก EC2 บน AWS ในบทความนี้

Create security group
※Basic details
» Security group name:tinnakorn-test-rds
» Description:tinnakorn-test-rds

※Inbound rules
Inbound:MySQL/Aurora| Source:tinnakorn-test-eb(เลือก Security Group ของ tinnakorn-test-eb ที่สร้างขึ้นเมื่อสักครู่นี้)

Create database
※Engine options
» Engine type: ◉MySQL
» Edition: ◉MySQL Community
» Version:MySQL 8.0.28

※Templates
»Production

※Availability and durability
» Deployment options: ◉Single DB instance

※Settings
» DB instance identifier:tinnakorn-test-rds

▼ Credentials Settings
» Master username:admin
» Master password:PassW0rd
» Confirm password:PassW0rd

※Instance configuration
» DB instance class: ◉ Burstable classes (includes t classes)
[db.t3.micro ▼]

※Storage
» Storage type:General Purpose SSD (gp2)
» Allocated storage:20GiB

※Connectivity
» Public access: ◉No
» Existing VPC security groups:tinnakorn-test-rds

※Database authentication
» Database authentication options: ◉Password authentication

※Additional configuration
Database options
» Initial database name:laravel(ให้ตั้งชื่อตามนี้)

การสร้าง RDS ก็เสร็จเรียบร้อยแล้วครับ ให้ทำขั้นตอนถัดไปได้เลยครับ

ดาวน์โหลดไฟล์สำหรับ Deploy ใน Elastic Beanstalk

ขั้นตอนนี้ให้ดาวโหลดไฟล์โปรเจกต์ Laravel เพื่อใช้สำหรับ Deploy ใน Elastic Beanstalk ตามลิงก์ด้านล่างนี้ครับ

Link Download Laravel9: laravel9-sample.zip

ดาวน์โหลดlaravel9-sample.zipจากลิงก์นี้ เมื่อแตกไฟล์แล้วก็จะสามารถดูไฟล์ที่จะ Deploy ได้ครับ

การสร้าง Application ใน Elastic Beanstalk

ขั้นตอนนี้ผมจะลองสร้าง Application โดยใช้ Platform PHP ในการรัน Server ครับ

เข้ามาที่ Service Elastic Beanstalk โดยค้นหาElastic Beanstalkและคลิกเข้ามาที่Elastic Beanstalk

สำหรับผู้ที่ยังไม่เคยใช้งานให้ดูที่ด้านขวาตรงหัวข้อ Get started และคลิกที่Create Application

เมื่อเข้ามาที่หน้า Create a web app แล้ว มาที่หัวข้อ Application information แล้วตั้งค่าดังนี้:
» Application name:tinnakorn-test(ชื่ออะไรก็ได้)

ขั้นตอนต่อไปนี้คือการอธิบายสำหรับคนที่ยังไม่เคยสร้าง Application ด้วย Elastic Beanstalk
กรณีที่ยังไม่ได้สร้าง Application ด้วย Elastic Beanstalk ตอนสร้างจะแสดงหน้าจอแบบนี้

※สิ่งที่ต้องทำ
・การสร้าง Appilcation + การสร้าง Environments:Sample
・ลบ Environments:Sample
・สร้าง Environments ใหม่ขึ้นมา

กรณีที่มีการสร้าง Application ด้วย Elastic Beanstalk มาก่อนแล้ว ตอนสร้างจะแสดงหน้าจอแบบนี้

※สิ่งที่ต้องทำ
・สร้าง Appilcation
・สร้าง Environments

ดังนั้นสำหรับคนที่เคยสร้าง Application มาก่อนแล้ว กดให้ข้ามไปเฉพาะส่วนของ 「 การสร้าง Environments:Sample และ การ Terminate Environments:Sample 」 เท่านั้น โดยกดข้ามไปที่หัวข้อ การสร้าง Environment ใน Elastic Beanstalk ได้เลยครับ

การตั้งค่าในหัวข้อ Platform:
» การสาธิตในครั้งนี้ผมจะใช้ Platform:PHP
» Platform branch จะถูกเลือกให้อัตโนมัติ
» Platform version ก็จะถูกเลือกให้อัตโนมัติเหมือนกัน (Platform version จะมีการอัปเดตเวอร์ชันใหม่มาเรื่อยๆ ดังนั้นแนะนำให้ใช้เวอร์ชันที่มี (Recommended) ครับ)

ถัดมาหัวข้อ Application code ผมจะใช้เป็น ◉Sample application
เมื่อตั้งค่าหน้านี้เสร็จแล้ว คลิกที่ปุ่มCreate application

รอการเริ่มต้นระบบสักครู่

เมื่อเสร็จแล้วจะแสดงหน้าจอแบบนี้

Terminate environment ที่ถูกสร้างขึ้นอัตโนมัติ

ขั้นตอนนี้ให้ทำการ Terminate environment ที่ถูกสร้างขึ้นใน Applications โดยอัตโนมัติทิ้งไป
เพราะว่าเราไม่ได้ใช้ environment:[Yourname]-env นี้ในการ Deploy PHP ครับ

มาที่มุมขวาบน คลิกปุ่มActionsและเลือกTerminate environment

ยืนยันการ Terminate โดยคัดลอกชื่อ environment ของเรามาใส่ช่องด้านล่าง และกดปุ่มTerminate

รอการ Terminate environment สักครู่ครับ

เมื่อ Terminate environment เสร็จแล้ว จะแสดงหน้าจอแบบนี้
จากนั้นให้คลิกที่ Application name ของเรา เช่นtinnakorn-test

เมื่อเข้ามาที่ Application ของเราแล้วจะแสดงหน้าจอแบบนี้

การสร้าง Environment ใน Elastic Beanstalk

ขั้นตอนนี้ผมจะทำการสร้าง Environment ที่ใช้สำหรับการ Deploy Laravel ครับ

มาที่ด้านบนขวา คลิกปุ่มCreate a new environment

การตั้งค่าในหัวข้อ Select environment tier:
» ◉ Web server environment
» คลิกปุ่มSelect

การตั้งค่าในหัวข้อ Environment information:
» Environment name:tinnakorn-test-laravel(ชื่ออะไรก็ได้)
» Domain:tinnakorn-test-laravel
» กดปุ่มCheck availability

ถ้าขึ้นสถานะ [ ✅ tinnakorn-test-laravel.ap-southeast-1.elasticbeanstalk.com is available. ] แบบนี้ก็คือเราสามารถใช้ได้ (ถ้าชื่อซ้ำกับคนอื่นก็จะขึ้น Error เพราะไม่สามารถใช้ชื่อซ้ำกันได้)

การตั้งค่าในหัวข้อ Platform:
» ◉ Managed platform
» Platform:PHP
» Platform branch จะถูกเลือกให้อัตโนมัติ
» Platform version ก็จะถูกเลือกให้อัตโนมัติเหมือนกัน (Platform version จะมีการอัปเดตเวอร์ชันใหม่มาเรื่อยๆ ดังนั้นแนะนำให้ใช้เวอร์ชันที่มี (Recommended) ครับ)

การตั้งค่าในหัวข้อ Application code:
» เลือก ◉ Upload your code
» Version label:20220711_1131(แนะนำให้ใส่ชื่อเป็นวันที่และเวลาปัจจุบัน)
» Source code origin: ◉ Local file
» คลิกปุ่มChoose fileแล้วเลือกไฟล์โปรเจกต์ Laravel ที่ดาวน์โหลดมาก่อนหน้านี้

เมื่ออัปโหลดไฟล์เสร็จแล้วจะมี [ File name : laravel9-sample.zip ] แสดงขึ้นมา
และจะแสดงสถานะ [ ✅ File successfully uploaded ] แบบนี้
จากนั้นคลิกปุ่มConfigure more options


※หน้า Configure [Your_name_env]
เมื่อคลิกปุ่ม Configure more options แล้วจะเข้ามาหน้า Configure [Your_name_env] แล้วจะแสดงหน้าจอแบบนี้
จากนั้นทำการตั้งค่าในขั้นตอนถัดไปได้เลยครับ

การตั้งค่าหน้า Modify software

มาที่หัวข้อ Software คลิกที่Edit

มาที่หัวข้อ Container Options ในส่วนของ Document root ให้ใส่/public

ต่อไปให้เลื่อนลงมาด้านล่างสุดและดูที่หัวข้อ Environment properties เราจะมาทำการตั้งค่าตรงนี้กันครับ
ให้ Copy ข้อมูลลงในช่อง Name กับ Value เรียงลงมาตามตารางที่เขียนไว้ด้านล่างนี้ครับ (ช่อง Value ที่ไม่มีข้อมูลก็ให้ปล่อยว่างได้เลยครับ)

ข้อควรระวัง:
・ห้ามพยายาม Copy ในส่วนที่เป็น [ ตัวหนังสือสีแดง กับ ลิงก์ ] ในตารางนี้ เพราะเป็นข้อมูลตัวอย่างของผู้เขียนเท่านั้น
・ในส่วนที่เป็นตัวหนังสือสีดำสามารถ Copy ได้
・ให้ผู้อ่านทำความเข้าใจในส่วนของ [ ตัวหนังสือสีแดง กับ ลิงก์ ] ในตารางและใส่ข้อมูลของตนเองลงไป
・ในช่อง Value ที่ไม่มีข้อมูลสามารถปล่อยว่างได้
・มี รูปภาพตัวอย่าง อยู่ด้านล่างตารางนี้

※Tric: ทริคการวางข้อมูลลงใน Environment properties ให้เปิดหน้าต่าง Console Environment properties และหน้าบทความขึ้นมา 2 หน้าต่าง แล้วครอบตัวหนังสือจากบทความ จากนั้นคลิกค้างไว้แล้วลากมาลงในช่องแต่ละช่องได้เลย ซึ่งในส่วนนี้จะต้องใส่ข้อมูลเยอะนิดหน่อย ! แต่ทางผู้เขียนขอเป็นกำลังใจให้นะครับ

Environment properties
Name Value
APP_NAME Laravel
APP_ENV local
APP_KEY base64:sVxmnJFIjiK8yQmu+ZnPbXZiI7+VWl67178FoVMdy9k=
APP_DEBUG false
APP_URL http://localhost
LOG_CHANNEL stack
LOG_DEPRECATIONS_CHANNEL null
LOG_LEVEL debug
DB_CONNECTION mysql
DB_HOST tinnakorn-test-rds.xxxxxxxxxxxx.ap-southeast-1.rds.amazonaws.com (ใส่ Endpoint RDS ของคุณ): Endpoint RDS
DB_PORT 3306
DB_DATABASE laravel (นี่คือ Initial database name ที่สร้างใน RDS): Initial database name
DB_USERNAME admin (ใส่ Master username ที่สร้างใน RDS ของคุณ): Master username
DB_PASSWORD PassW0rd (ใส่ Master password ที่สร้างใน RDS ของคุณ): Master password
BROADCAST_DRIVER log
CACHE_DRIVER file
FILESYSTEM_DISK local
QUEUE_CONNECTION sync
SESSION_DRIVER file
SESSION_LIFETIME 120
MEMCACHED_HOST 127.0.0.1
REDIS_HOST 127.0.0.1
REDIS_PASSWORD null
REDIS_PORT 6379
MAIL_MAILER smtp
MAIL_HOST mailhog
MAIL_PORT 1025
MAIL_USERNAME null
MAIL_PASSWORD null
MAIL_ENCRYPTION null
MAIL_FROM_ADDRESS "hello@example.com"
MAIL_FROM_NAME "${APP_NAME}"
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION us-east-1
AWS_BUCKET
AWS_USE_PATH_STYLE_ENDPOINT false
PUSHER_APP_ID
PUSHER_APP_KEY
PUSHER_APP_SECRET
PUSHER_HOST
PUSHER_PORT 443
PUSHER_SCHEME https
PUSHER_APP_CLUSTER mt1
VITE_PUSHER_APP_KEY "${PUSHER_APP_KEY}"
VITE_PUSHER_HOST "${PUSHER_HOST}"
VITE_PUSHER_PORT "${PUSHER_PORT}"
VITE_PUSHER_SCHEME "${PUSHER_SCHEME}"
VITE_PUSHER_APP_CLUSTER "${PUSHER_APP_CLUSTER}"

ข้อควรระวัง: เราต้องทำการเปลี่ยน APP_DEBUG ให้เป็นfalseเพราะว่าถ้าเผยแพร่เป็น APP_DEBUG = true ก็จะทำให้เป็น Security Hole ซึ่งจะทำให้เว็บไซต์เกิดช่องโหว่และไม่ปลอดภัยนั่นเอง ดังนั้นเราควรใส่เป็น [APP_DEBUG = false] ครับ


ถ้าตั้งค่าในส่วนของ Modify software เสร็จแล้วแนะนำให้ตรวจสอบอีกครั้ง จากนั้นเลื่อนลงมาด้านล่างสุดคลิกปุ่มSaveครับ

การตั้งค่าหน้า Modify instances

มาที่หัวข้อ Instances คลิกที่Edit

การตั้งค่าหน้า Modify instances หัวข้อ Root volume (boot device):
» Root volume type:General Purpose (SSD)
» Size:8GB (ใส่ตามจำนวนที่ต้องการใช้งาน)

ถัดมาหัวข้อ EC2 security groups:
» Group name: ติ๊กtinnakorn-test-eb (เลือก Security groups ที่สร้างไว้สำหรับ Elastic Beanstalk)
» คลิกปุ่มSave

การตั้งค่าหน้า Modify capacity

มาที่หัวข้อ Capacity คลิกที่Edit

การตั้งค่าหน้า Modify capacity หัวข้อ Auto scaling group:
» เลื่อนลงมาข้างล่างที่ Instance types แล้วคลิกที่ t2.micro และ t2.small ออกไป

จากนั้นพิมพ์ค้นหาและเลือก Instance types ที่เราต้องการ เช่นt3a.nano

เมื่อตั้งค่าเสร็จแล้ว เลื่อนลงมาด้านล่างขวาสุด คลิกปุ่มSave

การตั้งค่าหน้า Modify security

มาที่หัวข้อ Security คลิกที่Edit

การตั้งค่า Modify security:
※Service role
» Service role จะถูกเลือกโดยอัตโนมัติ

※Virtual machine permissions
» EC2 key pair:tinnakorn-test(เลือก Key Pair ที่เราสร้างไว้ตอนแรก)
» IAM instance profile จะถูกเลือกโดยอัตโนมัติ
» เมื่อตั้งค่าเสร็จแล้ว คลิกปุ่มSave

การตั้งค่าหน้า Managed Updates

มาที่หัวข้อ Managed Updates คลิกที่Edit

การตั้งค่าหน้า Modify managed updates หัวข้อ Managed platform updates:
» Managed updates: ติ๊ก ✅ ออกให้เป็น □ Enabled (เพื่อไม่ให้มีการอัปเดต)
» คลิกปุ่มSave

เมื่อตั้งค่าในหน้า Configure [Your_name_env] เสร็จแล้ว เลื่อนลงมาด้านล่างสุด คลิกปุ่มCreate environmentครับ

จากนั้นรอการเริ่มต้นระบบสักครู่

เมื่อเสร็จแล้วจะแสดงหน้าจอแบบนี้

การเชื่อมต่อกับ EC2 ที่สร้างจาก Elastic Beanstalk ด้วย PuTTY

ในขั้นตอนนี้ให้ทำการเชื่อมต่อกับ EC2 ที่สร้างจาก Environments ใน Elastic Beanstalk ด้วย PuTTY

ดูตัวอย่างที่นี่เฉพาะหัวข้อหลักนี้: การ Connect to EC2 by PuTTY

ตัวอย่างตั้งค่าการเชื่อมต่อกับ EC2 ที่สร้างใน Elastic Beanstalk ด้วย PuTTY

※Session:
Host Name:Your Public IPv4 address (EC2 Instance)
Saved Sessions:tinnakorn-test-eb(ชื่ออะไรก็ได้)

※Connection:
Seconds between keepalives (0 to turn off):60

※Connection → Data:
Auto-login username:ec2-user(บังคับให้ใส่ตามนี้เพราะว่าเป็น AMI: Amazon Linux 2)

※Connection → SSH → Auth:
Private key file for authentication: [Browse...]tinnakorn-test.ppk(เลือก key_pairs.ppk ของเรา)

※Session:
Saved Sessions:tinnakorn-test-eb[Save and Open]

Output (example)

root@ip-172-31-21-45:~

Using username "ec2-user".
Authenticating with public key "tinnakorn-test"
  _____ _           _   _      ____                       _        _ _
 | ____| | __   ___| |_(_) ___| __ )  ___  __ _ _ __  ___| |_ __ _| | | __
 |  _| | |/ _ \/ __| __| |/ __|  _ \ / _ \/ _\ | '_ \/ __| __/ _\ | | |/ /
 | |___| | (_| \__ \ |_| | (__| |_) |  __/ (_| | | | \__ \ || (_| | |   <
 |_____|_|\__,_|___/\__|_|\___|____/ \___|\__,_|_| |_|___/\__\__,_|_|_|\_\

 Amazon Linux 2 AMI

 This EC2 instance is managed by AWS Elastic Beanstalk. Changes made via SSH
 WILL BE LOST if the instance is replaced by auto-scaling. For more information
 on customizing your Elastic Beanstalk environment, see our documentation here:
 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

[ec2-user@ip-172-31-21-45 ~]$


รันคำสั่งนี้เพื่อเข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ root (ถ้ารันคำสั่งนี้แล้วข้ามขั้นตอนนี้ไปได้เลยครับ)

sudo su -

Output (example)

root@ip-172-31-21-45:~

[ec2-user@ip-172-31-21-45 ~]$ sudo su -
[root@ip-172-31-21-45 ~]#

การ Run Command ใน Amazon Linux 2

ขั้นตอนนี้ผมจะทำการรันคำสั่งใน Amazon Linux 2 ที่สร้างจาก Environments ใน Elastic Beanstalk

รันคำสั่งนี้เพื่อเข้าไปยัง/var/www/html/

cd /var/www/html/

Output (example)

root@ip-172-31-21-45:~

[root@ip-172-31-21-45 ~]# cd /var/www/html/
[root@ip-172-31-21-45 html]#


รันคำสั่งนี้พร้อมกันเลยครับ โดยมีจุดประสงค์ดังนี้:
・Line 1 เพื่อสร้างโฟล์เดอร์ logs ใน storage
・Line 2 เปิดโหมดขั้นสูงให้กับ logs ใน storage

mkdir -p storage/logs/
chmod 777 storage/logs/

Output (example)

root@ip-172-31-21-45:~

[root@ip-172-31-21-45 html]# mkdir -p storage/logs/
[root@ip-172-31-21-45 html]# chmod 777 storage/logs/
[root@ip-172-31-21-45 html]#


ทำการรันคำสั่งนี้เพื่อให้ข้อมูลที่เราตั้งค่าใน Elastic Beanstalk ก่อนหน้านี้ ถูกอ่านข้อมูลเป็นตัวแปรสภาพแวดล้อม

export $(cat /opt/elasticbeanstalk/deployment/env | grep -v ^# | xargs)

Output (example)

root@ip-172-31-21-45:~

[root@ip-172-31-21-45 html]# export $(cat /opt/elasticbeanstalk/deployment/env | grep -v ^# | xargs)
[root@ip-172-31-21-45 html]#


รันคำสั่งนี้เพื่อตรวจสอบข้อมูลที่เราตั้งค่าใน Elastic Beanstalk ก่อนหน้านี้

printenv | sort

Output (example)
ซึ่งตัวแปรสภาพแวดล้อมที่ได้ตั้งค่าไว้ก่อนหน้านี้ จะถูกใส่รวมอยู่ในนี้ทั้งหมด

root@ip-172-31-21-45:~

[root@ip-172-31-21-45 html]# printenv | sort
APP_DEBUG=true
APP_ENV=local
APP_KEY=base64:sVxmnJFIjiK8yQmu+ZnPbXZiI7+VWl67178FoVMdy9k=
APP_NAME=Laravel
APP_URL=http://localhost
AWS_ACCESS_KEY_ID=
AWS_BUCKET=
AWS_DEFAULT_REGION=us-east-1
AWS_SECRET_ACCESS_KEY=
AWS_USE_PATH_STYLE_ENDPOINT=false
BROADCAST_DRIVER=log
CACHE_DRIVER=file
CVS_RSH=ssh
DB_CONNECTION=mysql
DB_DATABASE=laravel
DB_HOST=tinnakorn-test-rds.chxwtgd2itcy.ap-southeast-1.rds.amazonaws.com
DB_PASSWORD=PassW0rd
DB_PORT=3306
DB_USERNAME=admin

"ตัดส่วนล่างออก"


รันคำสั่งนี้เพื่อย้ายข้อมูลไปยัง Database ใน RDS

php artisan migrate:fresh --seed

Output (example)

root@ip-172-31-21-45:~

[root@ip-172-31-21-45 html]# php artisan migrate:fresh --seed
Dropped all tables successfully.
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (62.78ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (39.61ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (48.87ms)
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated:  2019_12_14_000001_create_personal_access_tokens_table (63.50ms)
Database seeding completed successfully.
[root@ip-172-31-21-45 html]#

การตรวจสอบหน้าเว็บเบราว์เซอร์ Laravel

กลับมาที่หน้า Console Elastic Beanstalk และมาที่ Environments ของเรา จากนั้นคลิกลิงก์ตามรูปภาพได้เลยครับ

เมื่อแสดงหน้าจอแบบนี้แล้ว ก็ถือว่าการ Deploy Laravel ด้วย Elastic Beanstalk เสร็จสมบูรณ์ครับ

วิธีการลบ AWS Resource ที่สร้างขึ้นในบทความนี้

การลบฟังก์ชันที่ได้สร้างขึ้นใน Service ต่างๆ

ลบโดยเรียงตามขั้นตอนดังนี้:

  • RDS
    • Databases
  • Elastic Beanstalk
    • Environments (Terminate)
    • Applications
  • Amazon EC2
    • Key Pairs
    • Security Groups (RDS)
    • Security Groups (Elastic Beanstalk)

วิธีการลบ RDS

ในหัวข้อนี้คือการลบ RDS

ดูตัวอย่างที่นี่เฉพาะหัวข้อหลักนี้: วิธีการลบ RDS

การลบ Environments และ Applications ใน Elastic Beanstalk

ในหัวข้อนี้คือการลบ [ Environments, Applications ] ใน Elastic Beanstalk และลบ [ Key Pairs ] ใน Amazon EC2

ดูตัวอย่างที่นี่เฉพาะหัวข้อย่อยนี้: การลบ Environments และ Applications ใน Elastic Beanstalk

วิธีการลบ Security Groups ใน Amazon EC2

ในหัวข้อนี้คือการลบ Security Groups ของ RDS และ Elastic Beanstalk ใน Amazon EC2

ดูตัวอย่างที่นี่เฉพาะหัวข้อย่อยนี้: วิธีการลบ Security Groups ใน Amazon EC2

สรุป

การสาธิตนี้เป็นการ Deploy Project Laravel ขึ้นไปยัง Elastic Beanstalk จากนั้นทำการรันคำสั่งใน Amazon Linux 2 ที่ได้สร้างจาก Environments ใน Elastic Beanstalk และทำการตรวจสอบหน้าเว็บไซต์ Laravel ครับ

ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านที่สนใจ Deploy Project Laravel ขึ้นไปยัง Elastic Beanstalk นะครับ

บทความที่เกี่ยวข้อง