Cấu tạo của mẫu AWS CloudFormation

Sử dụng dịch vụ vé hỗ trợ làm giải pháp SaaS mẫu của tôi, tôi đã trình bày cách mọi người có thể tận dụng các công cụ được cung cấp bởi Amazon Web Services để đưa ý tưởng của bạn từ kế hoạch kinh doanh sang sản phẩm có sẵn cho khách hàng của bạn qua đám mây. Cho đến nay, chúng tôi đã làm việc thông qua việc cân nhắc lập kế hoạch và thiết kế, xây dựng lớp IaaS và sử dụng các mẫu AWS CloudFormation để tạo ra một cụm khả dụng cao. Bây giờ chúng tôi đã sẵn sàng để bắt đầu đánh bóng ứng dụng.

Bước tiếp theo là thay đổi mẫu AWS CloudFormation để tự động hóa việc xây dựng dịch vụ vé hỗ trợ của tôi. Tôi có một cụm khả dụng cao, Drupal, cơ sở dữ liệu RDS, quy tắc tường lửa, bộ cân bằng tải, v.v. Đó là một điều tuyệt vời để đạt được với giao diện người dùng web và một vài cú click chuột.

Nhưng nó không đủ tuyệt vời. Tôi phải chỉnh sửa mẫu CloudFormation, để đưa nó đến gần hơn với nhu cầu của mình, nhưng trước tiên tôi phải biết những gì trong đó và nơi tôi cần thực hiện các sửa đổi cần thiết. Dưới đây, tôi sẽ cung cấp cho bạn một cái nhìn tổng quan về tất cả các phần.

Đánh bóng dịch vụ của tôi có nghĩa là vào lãnh thổ nhà phát triển

Dịch vụ được cung cấp bởi mẫu Drupal AWS CloudFormation không phải là điều tôi muốn. Tôi sẽ điều chỉnh mẫu đó ở đây để thực hiện các thay đổi cần thiết. Thật không may, điều này có nghĩa là vượt qua lãnh thổ nhà phát triển. Tôi sẽ không thực hiện toàn bộ hành trình, bởi vì lãnh thổ của nhà phát triển là một vùng đất hoang vắng, khó chịu khi đến thăm. Tôi sẽ che đủ để thắp sáng con đường.

Một sự kết hợp của các mô-đun Drupal

Các công ty SaaS xây dựng dịch vụ của họ. Họ không lấy hàng nhãn trắng và dán huy hiệu của họ lên. Tôi sẽ xây dựng dịch vụ vé hỗ trợ của mình bằng bộ công cụ Drupal Core CMS, một loạt các tính năng bổ sung tùy chọn và rất nhiều thời gian phát triển.

Tuy nhiên, có rất nhiều mô-đun tùy chọn cho Drupal mà tôi có thể kết hợp với nhau để cắt giảm thời gian phát triển.

  • Dịch vụ vé hỗ trợ đến từ mô-đun Hỗ trợ. Mô-đun Hỗ trợ cung cấp kết thúc kinh doanh dịch vụ của tôi.
  • Cơ chế kiếm tiền đến từ một tập hợp các mô-đun Thương mại . Những người này xử lý các bên thương mại điện tử. Drupal Commerce là một bộ sưu tập lớn, với gần hai mươi mô-đun để cài đặt và nhiều mô-đun hỗ trợ khác. Chúng cung cấp khuôn khổ để giao dịch với khách hàng, thuế, chi tiết đơn hàng, thanh toán, sản phẩm, v.v.
  • Việc kiểm soát nội dung cao cấp này được quản lý bởi mô-đun Content Access và những thứ khác, chẳng hạn như cơ chế kiểm soát truy cập Vai trò . Các mô-đun dính các bộ phận thương mại và hỗ trợ vé với nhau.

Có gì trong mẫu CloudFormation AWS

Tôi có thể chỉnh sửa tệp mẫu AWS CloudFormation cho phù hợp với nhu cầu của mình.

Nhấn vào đây để phóng to.

Đầu tiên tôi phải hiểu mẫu là gì. Đây là một tổng quan ngắn gọn. Để biết mô tả chi tiết hơn, hãy xem Hướng dẫn AWS Ứng dụng Bootstrapping thông qua AWS CloudFormation.

Các gremlins nhỏ tự động xây dựng CloudFormation lấy hướng dẫn của họ từ một tệp cấu hình trông hơi giống thế này.

 { 
 "AWSTemplateFormatVersion": "ngày phiên bản", 
 "Mô tả": "Chuỗi JSON hợp lệ lên tới 4K", 
 "Thông số" : { 
 khóa và giá trị 
 }, 
 "Ánh xạ": { 
 khóa và giá trị 
 }, 
 "Tài nguyên" : { 
 khóa và giá trị 
 }, 
 "Đầu ra": { 
 khóa và giá trị 
 } 
 } 

Văn bản này, với sự rắc rối tự do của dấu ngoặc nhọn, dấu ngoặc kép và dấu hai chấm, là JSON (Ký hiệu đối tượng JavaScript). JSON phổ biến với các nhà phát triển, những người không muốn sự minh mẫn của XML nhưng không đủ hấp dẫn cho YAML.

Các dòng khóa và giá trị trong ví dụ trên sẽ trông giống như thế này trong một tệp mẫu thực.

 "S3Bucket": { 
 "Loại": "AWS :: S3 :: Xô", 
 "Tính chất" : { 
 "AccessControl": "PublicRead", 
 "Cấu hình trang web": { 
 "IndexDocument": "index.html", 
 "ErrorDocument": "error.html" 
 } 
 } 
 } 

Tất cả những thứ được thụt lề là một tải các cặp khóa / giá trị lồng nhau. Nó phức tạp, và nó chỉ là phần nổi của tảng băng chìm. Tập tin mẫu là thiên đường mọt sách.

Cấu hình khởi chạy

Phần Tài nguyên của tệp mẫu chứa một phần phụ có tên LaunchConfig . Phần này bắt đầu với dòng này.

"LaunchConfig": {

Phần LaunchConfig là 200 dòng thông minh. Nó có một danh sách các tập tin để cài đặt, tải xuống và tạo. Nó cũng có toàn bộ tập lệnh bash được nhúng trong đó.

Tôi sử dụng mẫu Drupal cụm. Bạn có thể thấy nó ở đây: Máy chủ web khả dụng cao với phiên bản cơ sở dữ liệu Multi-AZ Amazon RDS và sử dụng S3 để lưu trữ nội dung tệp.

Sau đó, tôi sẽ thực hiện một vài thay đổi cho phần LaunchConfig của mẫu này và tạo một cụm.

Tập lệnh bash nhúng

Tập lệnh bash trong phần LaunchConfig nằm ở dưới cùng của tệp. Kịch bản dài khoảng 60 dòng và trông như thế này.

"UserData" : { "Fn::Base64" : { "Fn::Join" : "",  
  "#!/bin/bash -v\n",  
  "yum update -y aws-cfn-bootstrap\n",  
 ... 
 ... 
 ... 
  "# All is well so signal success\n",  
  "/opt/aws/bin/cfn-signal -e 0 -r \"Drupal setup complete\" '", { "Ref" : "WaitHandle" }, "'\n" 
 
  }} 

Công việc của mã mẫu trông đáng lo ngại này là đặt tất cả các dòng đó vào một tập lệnh bash.

Kịch bản bash là một tập hợp các lệnh thực hiện tất cả các loại cho hệ thống. Quản trị hệ thống đã viết kịch bản trong nhiều thập kỷ. Tập lệnh bash thông minh này chỉnh sửa cấu hình máy chủ web Apache, liệt kê tất cả các máy EC2 mới, thiết lập trang web Drupal cơ bản, v.v.

Tập lệnh này được sao chép vào mỗi máy ảo EC2 mới. Nó kết thúc trong thư mục / var / lib / cloud / data / scripts / . Tất cả các thông điệp mà nó tạo ra kết thúc bằng /var/log/cloud-init.log .

Các tập tin và thư mục của máy EC2

Phân phối một ứng dụng trên nhiều máy chủ là khó khăn. Bạn phải biết những gì được sao chép, những gì được chia sẻ và nơi tất cả nên đi.

Rất nhiều tập tin được sao chép trên các máy. Tất cả mã chung (Drupal Core) được sao chép vào thư mục trang web trên mỗi máy chủ mới (nó nằm trong / var / www / html ).

Xô S3

Một số tệp được chia sẻ giữa các máy. Một bit của hệ thống tệp thực sự là một nhóm AWS S3 (Dịch vụ lưu trữ đơn giản). Khu vực chia sẻ này được gắn trên cả ba máy chủ (trên / var / www / html / site / default / files ). Một số tệp Drupal sẽ nằm trong nhóm S3 này.

Các thùng S3 thường được sử dụng cho nội dung tĩnh của trang web, thay vì các tệp thực thi, nhật ký và các tệp khó khăn khác. Nhóm S3 này sẽ giữ tệp tải lên của khách hàng. Một khách hàng tải lên một tệp một lần, sau đó tất cả các máy chủ web có thể đáp ứng yêu cầu cho tệp này.

Sao lưu mẫu

Đừng bận tâm lưu trữ mẫu mới của bạn trên web. Bạn có thể cung cấp cho CloudFormation một URL để lấy tệp mẫu của mình, nhưng nó chỉ hoạt động với AWS S3 (Dịch vụ lưu trữ đơn giản). Đó là nơi AWS lưu trữ các mẫu của nó. Đó là nơi mẫu tải lên của bạn được lưu trữ. Các nhà phát triển sử dụng kho lưu trữ mã như Github hoặc Gitorious đã hết may mắn.

© Copyright 2020 | mobilegn.com