Amazon EC2 cho phép các cá nhân triển khai nhiều ứng dụng khác nhau. Sử dụng Amazon EC2, bạn có thể khởi chạy nhiều hay ít máy chủ ảo tùy theo hoàn cảnh nhất định. Do đó, trong blog này, tôi sẽ thảo luận về việc triển khai một ứng dụng PHP bằng cách sử dụng phiên bản Amazon EC2
Hướng dẫn này hướng dẫn bạn quy trình khởi chạy phiên bản RDS DB bên ngoài AWS Elastic Beanstalk và định cấu hình môi trường có độ sẵn sàng cao chạy ứng dụng PHP để kết nối với nó. Việc chạy một phiên bản CSDL bên ngoài Elastic Beanstalk sẽ tách cơ sở dữ liệu khỏi vòng đời của môi trường của bạn. Điều này cho phép bạn kết nối với cùng một cơ sở dữ liệu từ nhiều môi trường, trao đổi cơ sở dữ liệu này với cơ sở dữ liệu khác hoặc thực hiện triển khai xanh lam/xanh lá cây mà không ảnh hưởng đến cơ sở dữ liệu của bạn
Hướng dẫn sử dụng một ứng dụng PHP mẫu sử dụng cơ sở dữ liệu MySQL để lưu trữ dữ liệu văn bản do người dùng cung cấp. Ứng dụng mẫu sử dụng các tệp cấu hình để định cấu hình cài đặt PHP và để tạo bảng trong cơ sở dữ liệu cho ứng dụng sử dụng. Nó cũng chỉ ra cách sử dụng tệp Trình soạn thảo để cài đặt các gói trong quá trình triển khai
điều kiện tiên quyết
Trước khi bạn bắt đầu, hãy tải xuống gói nguồn ứng dụng mẫu từ GitHub. eb-demo-php-simple-app-1. 3. khóa kéo
Các quy trình trong hướng dẫn này dành cho các tác vụ Amazon Relational Database Service [Amazon RDS] giả định rằng bạn đang khởi chạy tài nguyên trong Amazon Virtual Private Cloud [Amazon VPC] mặc định. Tất cả các tài khoản mới bao gồm một VPC mặc định ở mỗi khu vực. Nếu bạn không có VPC mặc định, quy trình sẽ thay đổi. Xem Sử dụng Elastic Beanstalk với Amazon RDS để biết hướng dẫn về nền tảng EC2-Classic và VPC tùy chỉnh
Khởi chạy một phiên bản CSDL trong Amazon RDS
Để sử dụng cơ sở dữ liệu bên ngoài với ứng dụng đang chạy trong Elastic Beanstalk, trước tiên hãy khởi chạy phiên bản CSDL với Amazon RDS. Khi bạn khởi chạy một phiên bản với Amazon RDS, phiên bản đó hoàn toàn độc lập với Elastic Beanstalk và môi trường Elastic Beanstalk của bạn, đồng thời sẽ không bị Elastic Beanstalk chấm dứt hoặc theo dõi
Sử dụng bảng điều khiển Amazon RDS để khởi chạy phiên bản CSDL MySQL Multi-AZ. Việc chọn triển khai Multi-AZ đảm bảo rằng cơ sở dữ liệu của bạn sẽ chuyển đổi dự phòng và tiếp tục khả dụng nếu phiên bản CSDL nguồn ngừng hoạt động
Để khởi chạy phiên bản RDS DB trong VPC mặc định
Mở bảng điều khiển RDS
Trong ngăn điều hướng, chọn Cơ sở dữ liệu
Chọn Tạo cơ sở dữ liệu
Chọn Chuẩn Tạo
Không chọn Easy Create. Nếu bạn chọn nó, bạn không thể định cấu hình các cài đặt cần thiết để khởi chạy RDS DB này
Trong Cấu hình bổ sung, đối với Tên cơ sở dữ liệu ban đầu, nhập
ebdb
Xem lại cài đặt mặc định và điều chỉnh các cài đặt này theo yêu cầu cụ thể của bạn. Hãy chú ý đến các tùy chọn sau
Lớp phiên bản CSDL – Chọn kích thước phiên bản có dung lượng bộ nhớ và sức mạnh CPU phù hợp với khối lượng công việc của bạn
Triển khai Multi-AZ – Để có tính sẵn sàng cao, hãy đặt tùy chọn này thành Tạo nút Bản sao/Bộ đọc Aurora trong một AZ khác
Tên người dùng chính và Mật khẩu chính – Tên người dùng và mật khẩu cơ sở dữ liệu. Ghi lại các cài đặt này vì bạn sẽ sử dụng chúng sau này
Xác minh cài đặt mặc định cho các tùy chọn còn lại, sau đó chọn Tạo cơ sở dữ liệu
Tiếp theo, hãy sửa đổi nhóm bảo mật được đính kèm với phiên bản CSDL của bạn để cho phép lưu lượng truy cập vào trên cổng thích hợp. Đây cũng chính là nhóm bảo mật mà bạn sẽ đính kèm vào môi trường Elastic Beanstalk của mình sau này, vì vậy quy tắc mà bạn thêm vào sẽ cấp quyền truy cập cho các tài nguyên khác trong cùng một nhóm bảo mật
Để sửa đổi các quy tắc gửi đến trên nhóm bảo mật được đính kèm với phiên bản RDS của bạn
Mở bảng điều khiển Amazon RDS
Chọn cơ sở dữ liệu
Chọn tên phiên bản CSDL của bạn để xem thông tin chi tiết
Trong phần Kết nối, hãy ghi lại các Mạng con, Nhóm bảo mật và Điểm cuối được hiển thị trên trang này. Điều này là để bạn có thể sử dụng thông tin này sau
Trong Bảo mật, bạn có thể thấy nhóm bảo mật được liên kết với phiên bản CSDL. Mở liên kết để xem nhóm bảo mật trong bảng điều khiển Amazon EC2
Trong chi tiết nhóm bảo mật, chọn Inbound
Chọn Chỉnh sửa
Chọn Thêm quy tắc
Đối với Loại, hãy chọn công cụ DB mà ứng dụng của bạn sử dụng
Đối với Nguồn, hãy nhập
sg-
để xem danh sách các nhóm bảo mật khả dụng. Chọn nhóm bảo mật được liên kết với nhóm Auto Scaling được sử dụng với môi trường Elastic Beanstalk của bạn. Điều này là để các phiên bản Amazon EC2 trong môi trường có thể truy cập vào cơ sở dữ liệuChọn Lưu
Tạo phiên bản CSDL mất khoảng 10 phút. Trong thời gian chờ đợi, hãy tạo môi trường Elastic Beanstalk của bạn
Tạo môi trường Elastic Beanstalk
Sử dụng bảng điều khiển Elastic Beanstalk để tạo môi trường Elastic Beanstalk. Chọn nền tảng PHP và chấp nhận cài đặt mặc định và mã mẫu. Sau khi khởi chạy môi trường, bạn có thể định cấu hình môi trường để kết nối với cơ sở dữ liệu, sau đó triển khai ứng dụng mẫu mà bạn đã tải xuống từ GitHub
Để khởi chạy một môi trường [bảng điều khiển]Quá trình tạo môi trường mất khoảng 5 phút và tạo các tài nguyên sau
Phiên bản EC2 – Máy ảo Amazon Elastic Compute Cloud [Amazon EC2] được định cấu hình để chạy các ứng dụng web trên nền tảng mà bạn chọn
Mỗi nền tảng chạy một bộ phần mềm, tệp cấu hình và tập lệnh cụ thể để hỗ trợ một phiên bản ngôn ngữ, khung, bộ chứa web cụ thể hoặc sự kết hợp của những thứ này. Hầu hết các nền tảng sử dụng Apache hoặc NGINX làm proxy ngược đặt trước ứng dụng web của bạn, chuyển tiếp các yêu cầu tới ứng dụng đó, cung cấp nội dung tĩnh và tạo nhật ký truy cập và lỗi
Nhóm bảo mật phiên bản – Nhóm bảo mật Amazon EC2 được định cấu hình để cho phép lưu lượng truy cập vào trên cổng 80. Tài nguyên này cho phép lưu lượng HTTP từ bộ cân bằng tải đến phiên bản EC2 đang chạy ứng dụng web của bạn. Theo mặc định, lưu lượng truy cập không được phép trên các cổng khác
Bộ cân bằng tải – Bộ cân bằng tải Cân bằng tải đàn hồi được định cấu hình để phân phối các yêu cầu đến các phiên bản đang chạy ứng dụng của bạn. Bộ cân bằng tải cũng loại bỏ nhu cầu hiển thị trực tiếp các phiên bản của bạn với internet
Nhóm bảo mật cân bằng tải – Nhóm bảo mật Amazon EC2 được định cấu hình để cho phép lưu lượng truy cập vào trên cổng 80. Tài nguyên này cho phép lưu lượng HTTP từ internet đến bộ cân bằng tải. Theo mặc định, lưu lượng truy cập không được phép trên các cổng khác
Auto Scaling group – Nhóm Auto Scaling được định cấu hình để thay thế một phiên bản nếu phiên bản đó bị chấm dứt hoặc không khả dụng
Bộ chứa Amazon S3 – Một vị trí lưu trữ mã nguồn, nhật ký và các thành phần tạo tác phẩm khác được tạo khi bạn sử dụng Elastic Beanstalk
Cảnh báo Amazon CloudWatch – Hai cảnh báo CloudWatch theo dõi tải trên các phiên bản trong môi trường của bạn và được kích hoạt nếu tải quá cao hoặc quá thấp. Khi báo thức được kích hoạt, nhóm Auto Scaling của bạn sẽ tăng hoặc giảm tỷ lệ để phản hồi
Ngăn xếp AWS CloudFormation – Bean Beanalk đàn hồi sử dụng AWS CloudFormation để khởi chạy tài nguyên trong môi trường của bạn và phổ biến các thay đổi cấu hình. Các tài nguyên được xác định trong một mẫu mà bạn có thể xem trong bảng điều khiển AWS CloudFormation
Tên miền – Một tên miền định tuyến đến ứng dụng web của bạn ở dạng
subdomain
.region
. đàn hồi. com
Tất cả các tài nguyên này được quản lý bởi Elastic Beanstalk. Khi bạn chấm dứt môi trường của mình, Elastic Beanstalk sẽ chấm dứt tất cả các tài nguyên chứa trong đó. Phiên bản RDS DB mà bạn đã khởi chạy nằm ngoài môi trường của bạn, vì vậy bạn chịu trách nhiệm quản lý vòng đời của nó
Bộ chứa Amazon S3 mà Elastic Beanstalk tạo được chia sẻ giữa các môi trường và không bị xóa trong quá trình chấm dứt môi trường. Để biết thêm thông tin, xem Sử dụng Elastic Beanstalk với Amazon S3
Định cấu hình nhóm bảo mật, thuộc tính môi trường và chia tỷ lệ
Thêm nhóm bảo mật của phiên bản CSDL vào môi trường đang chạy của bạn. Quy trình này khiến Bean Beanalk cung cấp lại tất cả các phiên bản trong môi trường của bạn với nhóm bảo mật bổ sung được đính kèm
Để thêm một nhóm bảo mật vào môi trường của bạn
làm một điều trong số sau đây
Để thêm một nhóm bảo mật bằng bảng điều khiển Elastic Beanstalk
Mở bảng điều khiển Elastic Beanstalk và trong danh sách Khu vực, hãy chọn Khu vực AWS của bạn
Trong ngăn điều hướng, chọn Môi trường rồi chọn tên môi trường của bạn từ danh sách
Nếu bạn có nhiều môi trường, hãy sử dụng thanh tìm kiếm để lọc danh sách môi trường
Trong ngăn điều hướng, chọn Cấu hình
Trong danh mục Cấu hình phiên bản, chọn Chỉnh sửa
Trong nhóm bảo mật EC2, chọn nhóm bảo mật để đính kèm vào phiên bản, ngoài nhóm bảo mật phiên bản mà Elastic Beanstalk tạo
Chọn Áp dụng ở cuối trang
Đọc cảnh báo rồi chọn Xác nhận
Để thêm nhóm bảo mật bằng tệp cấu hình, hãy sử dụng tệp
securitygroup-addexisting.config
example
Tiếp theo, hãy sử dụng thuộc tính môi trường để chuyển thông tin kết nối đến môi trường của bạn. Ứng dụng mẫu sử dụng một bộ thuộc tính mặc định khớp với những thuộc tính mà Elastic Beanstalk định cấu hình khi bạn cung cấp cơ sở dữ liệu trong môi trường của mình
Để định cấu hình thuộc tính môi trường cho phiên bản Amazon RDS DB
Mở bảng điều khiển Elastic Beanstalk và trong danh sách Khu vực, hãy chọn Khu vực AWS của bạn
Trong ngăn điều hướng, chọn Môi trường rồi chọn tên môi trường của bạn từ danh sách
Nếu bạn có nhiều môi trường, hãy sử dụng thanh tìm kiếm để lọc danh sách môi trường
Trong ngăn điều hướng, chọn Cấu hình
Trong danh mục Cấu hình phần mềm, chọn Chỉnh sửa
Trong phần Thuộc tính môi trường, hãy xác định các biến mà ứng dụng của bạn đọc để tạo chuỗi kết nối. Để tương thích với các môi trường có phiên bản RDS DB tích hợp, hãy sử dụng các tên và giá trị sau. Bạn có thể tìm thấy tất cả các giá trị, ngoại trừ mật khẩu của mình, trong bảng điều khiển RDS
Tên thuộc tính Mô tả Giá trị thuộc tính
RDS_HOSTNAME
Tên máy chủ của phiên bản CSDL
Trên tab Kết nối & bảo mật trên bảng điều khiển Amazon RDS. điểm cuối
RDS_PORT
Cổng nơi phiên bản CSDL chấp nhận kết nối. Giá trị mặc định khác nhau giữa các công cụ DB
Trên tab Kết nối & bảo mật trên bảng điều khiển Amazon RDS. Hải cảng
RDS_DB_NAME
Tên cơ sở dữ liệu,
ebdb
Trên tab Cấu hình trên bảng điều khiển Amazon RDS. Tên cơ sở dữ liệu
RDS_USERNAME
Tên người dùng mà bạn đã định cấu hình cho cơ sở dữ liệu của mình
Trên tab Cấu hình trên bảng điều khiển Amazon RDS. tên người dùng chính
sg-
0Mật khẩu mà bạn đã cấu hình cho cơ sở dữ liệu của mình
Không có sẵn để tham khảo trong bảng điều khiển Amazon RDS
Chọn Áp dụng ở cuối trang
Cuối cùng, định cấu hình nhóm Auto Scaling trong môi trường của bạn với số lượng phiên bản tối thiểu cao hơn. Luôn chạy ít nhất hai phiên bản để ngăn các máy chủ web trong môi trường của bạn trở thành một điểm lỗi duy nhất và để cho phép bạn triển khai các thay đổi mà không cần ngừng cung cấp dịch vụ cho trang web của mình
Để định cấu hình nhóm Auto Scaling trong môi trường của bạn để có tính sẵn sàng cao
Mở bảng điều khiển Elastic Beanstalk và trong danh sách Khu vực, hãy chọn Khu vực AWS của bạn
Trong ngăn điều hướng, chọn Môi trường rồi chọn tên môi trường của bạn từ danh sách
Nếu bạn có nhiều môi trường, hãy sử dụng thanh tìm kiếm để lọc danh sách môi trường
Trong ngăn điều hướng, chọn Cấu hình
Trong danh mục Cấu hình dung lượng, chọn Chỉnh sửa
Trong phần nhóm Auto Scaling, đặt Phiên bản tối thiểu thành
sg-
1Chọn Áp dụng ở cuối trang
Triển khai ứng dụng mẫu
Bây giờ, môi trường của bạn đã sẵn sàng để chạy ứng dụng mẫu và kết nối với Amazon RDS. Triển khai ứng dụng mẫu vào môi trường của bạn
Tải xuống gói nguồn từ GitHub, nếu bạn chưa có. eb-demo-php-simple-app-1. 3. khóa kéo
Để triển khai gói nguồn
Mở bảng điều khiển Elastic Beanstalk và trong danh sách Khu vực, hãy chọn Khu vực AWS của bạn
Trong ngăn điều hướng, chọn Môi trường rồi chọn tên môi trường của bạn từ danh sách
Nếu bạn có nhiều môi trường, hãy sử dụng thanh tìm kiếm để lọc danh sách môi trường
Trên trang tổng quan về môi trường, chọn Tải lên và triển khai
Sử dụng hộp thoại trên màn hình để tải gói nguồn lên
Chọn triển khai
Khi quá trình triển khai hoàn tất, bạn có thể chọn URL trang web để mở trang web của mình trong tab mới
Trang web thu thập nhận xét của người dùng và sử dụng cơ sở dữ liệu MySQL để lưu trữ dữ liệu. Để thêm nhận xét, hãy chọn Chia sẻ suy nghĩ của bạn, nhập nhận xét rồi chọn Gửi suy nghĩ của bạn. Ứng dụng web ghi nhận xét vào cơ sở dữ liệu để bất kỳ phiên bản nào trong môi trường đều có thể đọc được và nó sẽ không bị mất nếu các phiên bản ngừng hoạt động
Dọn dẹp
Khi hoàn thành công việc với Elastic Beanstalk, bạn có thể chấm dứt môi trường của mình. Elastic Beanstalk chấm dứt tất cả các tài nguyên AWS được liên kết với môi trường của bạn, chẳng hạn như phiên bản Amazon EC2, phiên bản cơ sở dữ liệu, bộ cân bằng tải, nhóm bảo mật và cảnh báo
Để chấm dứt môi trường Elastic Beanstalk của bạn
Mở bảng điều khiển Elastic Beanstalk và trong danh sách Khu vực, hãy chọn Khu vực AWS của bạn
Trong ngăn điều hướng, chọn Môi trường rồi chọn tên môi trường của bạn từ danh sách
Nếu bạn có nhiều môi trường, hãy sử dụng thanh tìm kiếm để lọc danh sách môi trường
Chọn Hành động rồi chọn Chấm dứt môi trường
Sử dụng hộp thoại trên màn hình để xác nhận chấm dứt môi trường
Với Elastic Beanstalk, bạn có thể dễ dàng tạo môi trường mới cho ứng dụng của mình bất kỳ lúc nào
Ngoài ra, bạn có thể chấm dứt các tài nguyên cơ sở dữ liệu mà bạn đã tạo bên ngoài môi trường Elastic Beanstalk của mình. Khi chấm dứt một phiên bản Amazon RDS DB, bạn có thể chụp nhanh và khôi phục dữ liệu về một phiên bản khác sau
Để chấm dứt phiên bản RDS DB của bạn
Mở bảng điều khiển Amazon RDS
Chọn cơ sở dữ liệu
Chọn phiên bản CSDL của bạn
Chọn Hành động, rồi chọn Xóa
Chọn có tạo ảnh tức thời hay không rồi chọn Xóa
Bước tiếp theo
Khi bạn tiếp tục phát triển ứng dụng của mình, có thể bạn sẽ muốn có một cách để quản lý môi trường và triển khai ứng dụng của mình mà không cần tạo thủ công một ứng dụng. zip và tải nó lên bảng điều khiển Elastic Beanstalk. Giao diện dòng lệnh đàn hồi Beanstalk [EB CLI] cung cấp các lệnh dễ sử dụng để tạo, định cấu hình và triển khai các ứng dụng cho môi trường đàn hồi Beanstalk từ dòng lệnh
Ứng dụng mẫu sử dụng tệp cấu hình để định cấu hình cài đặt PHP và tạo bảng trong cơ sở dữ liệu nếu nó chưa tồn tại. Bạn cũng có thể sử dụng tệp cấu hình để định cấu hình cài đặt nhóm bảo mật cho các phiên bản của mình trong quá trình tạo môi trường để tránh cập nhật cấu hình tốn thời gian. Xem Tùy chỉnh môi trường nâng cao với các tệp cấu hình [. ebextensions] để biết thêm thông tin
Để phát triển và thử nghiệm, bạn có thể muốn sử dụng chức năng Elastic Beanstalk để thêm trực tiếp một phiên bản CSDL được quản lý vào môi trường của mình. Để biết hướng dẫn về cách thiết lập cơ sở dữ liệu bên trong môi trường của bạn, hãy xem Thêm cơ sở dữ liệu vào môi trường Elastic Beanstalk của bạn
Nếu bạn cần cơ sở dữ liệu hiệu năng cao, hãy cân nhắc sử dụng Amazon Aurora. Amazon Aurora là một công cụ cơ sở dữ liệu tương thích với MySQL cung cấp các tính năng cơ sở dữ liệu thương mại với chi phí thấp. Để kết nối ứng dụng của bạn với một cơ sở dữ liệu khác, hãy lặp lại các bước cấu hình nhóm bảo mật và cập nhật các thuộc tính môi trường liên quan đến RDS
Cuối cùng, nếu bạn dự định sử dụng ứng dụng của mình trong môi trường sản xuất, bạn sẽ muốn định cấu hình tên miền tùy chỉnh cho môi trường của mình và bật HTTPS cho các kết nối an toàn