Triển khai Amazon S3 cho blog WordPress

amazon s3 wordpress

Lưu ý: Kể từ khi viết bài này, chúng tôi đã chuyển sang tay lái máy bay với một Mạng Phân phối Nội dung được cung cấp bởi StackPath CDN, một CDN nhanh hơn nhiều so với Amazon.378

Trừ khi bạn đang sử dụng nền tảng lưu trữ doanh nghiệp cao cấp, còn không thì rất khó để đạt được hiệu suất doanh nghiệp với một CMS như WordPress. Chia sẻ tải, sao lưu, dự phòng, sao chép và phân phối nội dung không hề rẻ.

Nhiều đại diện CNTT xem các nền tảng như WordPress và sử dụng chúng vì chúng tự do. Miễn phí là tương đối, mặc dù. Đặt WordPress trên một cơ sở hạ tầng lưu trữ điển hình và một vài trăm người dùng đồng thời có thể đưa trang web của bạn tạm dừng. Để hỗ trợ hiệu suất blog của tôi, tuần này tôi đã sửa đổi cài đặt WordPress đẩy tất cả đồ họa từ Amazon S3 (Amazon Simple Storage Service). Điều này khiến máy chủ của tôi chỉ cần đẩy HTML qua PHP / MySQL.

Amazon S3 cung cấp một giao diện dịch vụ web đơn giản có thể được sử dụng để lưu trữ và truy xuất bất kỳ lượng dữ liệu nào, bất kỳ lúc nào, từ bất kỳ đâu trên web. Nó cung cấp cho bất kỳ nhà phát triển nào quyền truy cập vào cùng một cơ sở hạ tầng lưu trữ dữ liệu có khả năng mở rộng cao, đáng tin cậy, nhanh chóng, không tốn kém mà Amazon sử dụng để điều hành mạng lưới các trang web toàn cầu của riêng mình. Dịch vụ nhằm tối đa hóa lợi ích theo quy mô và chuyển những lợi ích đó cho các nhà phát triển.

Để chuyển đổi trang web cho Amazon S3 mất một chút công việc, nhưng đây là những điều cơ bản:

  1. Đăng ký Amazon Web Services.
  2. Tải Tiện ích bổ sung Firefox cho S3. Điều này cung cấp cho bạn một giao diện tuyệt vời để quản lý nội dung trong S3.
  3. Thêm một , trong trường hợp này tôi đã thêm www.martech.zone.
  4. Thêm CNAME vào Công ty đăng ký miền của bạn để trỏ miền phụ từ trang web của bạn tới Amazon S3 để lưu trữ ảo.
  5. Tải xuống và cài đặt plugin WordPress cho Amazon S3.
  6. Đặt ID khóa truy cập AWS và Khóa bí mật của bạn và nhấp vào cập nhật.
  7. Chọn miền phụ / nhóm bạn đã tạo ở trên cho Sử dụng thùng này thiết lập.

wp-amazon-s3-settings.png

Các bước tiếp theo là một phần thú vị! Tôi không muốn chỉ phân phát nội dung trong tương lai từ S3, tôi muốn phân phát tất cả nội dung, bao gồm quảng cáo, chủ đề và các tệp phương tiện trong quá khứ.

  1. Tôi đã tạo các thư mục cho quảng cáo, chủ đềUpload trong nhóm của tôi trên S3.
  2. Tôi đã sao lưu tất cả nội dung hiện tại của mình (tệp hình ảnh và phương tiện) vào các thư mục thích hợp.
  3. Tôi đã sửa đổi tệp CSS trong chủ đề của mình để lấy tất cả hình ảnh từ www.martech.zone/themes.
  4. Tôi đã làm một Tìm kiếm và thay thế MySQL và cập nhật mọi tham chiếu đến nội dung đa phương tiện sẽ được hiển thị từ miền phụ S3.
  5. Tôi đã cập nhật tất cả các tham chiếu hình ảnh để quảng cáo được hiển thị từ thư mục quảng cáo trên miền phụ S3.

Từ đây trở đi, tôi chỉ cần tải phương tiện lên S3 hơn là sử dụng hộp thoại tải lên hình ảnh mặc định cho WordPress. Plugin thực hiện một công việc tuyệt vời trong việc đặt biểu tượng S3 vào cùng vị trí của các biểu tượng Tải lên / Chèn trong quản trị viên WordPress.

Việc di chuyển tất cả dữ liệu và chạy trên S3 trong một vài ngày đã dẫn đến phí S0.12 là 3 đô la, vì vậy tôi không lo lắng về các khoản phí liên quan - có lẽ vài đô la một tháng là giá của nó. Về mặt tích cực, nếu tôi nhận được rất nhiều khách truy cập, tôi sẽ có thể xử lý nhiều hơn các tay cầm nền tảng hiện tại. Trang web của tôi đang tải trang chủ trong khoảng 40% thời gian mà nó đã từng, vì vậy tôi khá hài lòng với việc di chuyển này!

Điều tuyệt vời nhất về động thái này là nó thực sự không yêu cầu bất kỳ sự phát triển nào!

28 Comments

  1. 1

    Chào,

    Tôi có một tài khoản Amazon S3, nhưng sau khi cố gắng tìm hiểu mọi thứ, tôi đã bỏ nó đi vì nó quá khó. Addin firefox cho S3 có làm cho nó dễ dàng hơn rất nhiều không?

  2. 3

    Tôi nên nói thêm, bạn sẽ cần trỏ CNAME của mình đến your_unique_cloudfront_distribution_name.cloudfront.net thay vì tới your_unique_subdomain.s3.amazonaws.com. Nhưng sau đó, bạn đối xử với nó giống như một thùng S3 bình thường.

    Sẽ tốn nhiều tiền hơn khi sử dụng tùy chọn CloudFront tốc độ cao hơn / độ trễ thấp. Nếu bạn quyết định muốn chuyển về phiên bản S3 tiêu chuẩn, chỉ cần chuyển CNAME của bạn để trỏ về s3.amazonaws.com.

    Khoảng một năm trước, tôi đã viếthttp://www.carltonbale.com/tag/amazon-s3/"a một số bài đăng blog trên Amaon S3 cho bất kỳ ai quan tâm.

  3. 4

    Nếu bạn đang muốn tăng tốc độ hơn nữa, hãy biến Nhóm Amazon S3 của bạn thành một nhóm Amazon CloudFront, tạo ra một Mạng phân phối nội dung đa máy chủ toàn cầu thực sự, có độ trễ thấp. Đây là một liên kết với tất cả các chi tiết: http://aws.amazon.com/cloudfront/faqs/

    Ngoài ra, plugin wp-supercache có thể tăng tốc độ đáng kể trên các trang web có lưu lượng truy cập cao vì nó giảm đáng kể tải CPU và các lệnh gọi cơ sở dữ liệu.

    • 5

      Rất tuyệt, Carlton! Vì vậy, nó rất giống một mạng phân tán, chẳng hạn như Akamai. Tôi đã không nhận ra rằng họ có sẵn đó! Tôi có thể tận dụng lợi thế sau khi thấy một số chi phí.

      Tôi đã từng kích hoạt bộ nhớ đệm với wp trước đây, nhưng tôi có một số nội dung động nên tôi thực sự phải vật lộn với nó vì đôi khi nó sẽ lưu vào bộ đệm nội dung mà tôi thực sự muốn tải theo thời gian thực.

      • 6

        Douglas,

        Từ mô tả của họ, có vẻ như Amazon đang làm một điều gì đó hoàn toàn khác, họ nói:

        “Amazon CloudFront sử dụng 14 địa điểm cạnh tranh tại các thị trường lớn trên toàn thế giới. Tám nơi ở Hoa Kỳ (Ashburn, VA; Dallas / Fort Worth, TX; Los Angeles, CA; Miami, FL; Newark, NJ; Palo Alto, CA; Seattle, WA; St. Louis, MO). Bốn là ở Châu Âu (Amsterdam; Dublin; Frankfurt; London). Hai là ở châu Á (Hồng Kông, Tokyo). ”

        Về cơ bản, họ tận dụng lợi thế của các trao đổi internet để tận dụng sự gần gũi của họ với người dùng cuối, nơi CDN như Akamai có máy chủ gần hơn nhiều với người dùng cuối thường trong mạng của ISP.

        Cách làm của Amazons rẻ hơn và hiệu quả hơn rất nhiều Akamai.

        Rogerio - http://www.itjuju.com/

  4. 7

    Tôi sẽ không nói rằng thật khó để “đạt được hiệu suất doanh nghiệp với một CMS như WordPress”.

    Tất cả là ở cách bạn thiết lập cơ sở hạ tầng của mình hoặc cách bạn lưu trữ CMS của mình.
    Cách thức mà bản thân CMS đã được mã hóa cũng có thể đóng một vai trò quan trọng trong hiệu suất của nó như Carlton đã chỉ ra khi sử dụng plugin wp-supercache.

    Sẽ tốt hơn nếu chức năng của plugin wp-supercache được tích hợp sẵn vào wordpress ngay từ đầu - nhưng điều đó sẽ yêu cầu viết lại giao diện người dùng. Đó là những gì lightpress.org đã làm.

    Tắt tải nội dung tĩnh sang một cái gì đó như S3 là một cách tốt để giảm tải quá trình xử lý và phân phối từ máy chủ chính. Đó là một cách dễ dàng và thuận tiện để khai thác vào cơ sở hạ tầng của Amazons để thực hiện công việc nặng nhọc nhưng một khi bạn đạt đến ngưỡng cretin, Amazon sẽ bắt đầu trở nên đắt đỏ và sẽ rẻ hơn nếu làm điều đó tại nhà và đi kèm với CDN.

    Rogerio - http://www.itjuju.com/

    ps
    Tôi đã suy nghĩ về tình huống đó một chút, nếu chỉ cần 100 người tập hợp lại và đóng góp mỗi tháng giá của một máy chủ tốt mà họ thường phải trả để có thể xây dựng / kết hợp cơ sở hạ tầng lưu trữ có thể xử lý hầu hết mọi thứ.

  5. 8

    0.12 đô la cho vài ngày đầu tiên sử dụng dịch vụ S3. Bạn sẽ truy cập lại chủ đề sau vài tháng và hiển thị một số thống kê về lưu lượng truy cập so với chi phí? Sẽ rất thú vị khi xem chi phí phân chia như thế nào đối với số lượng khách truy cập và so với chi phí quảng cáo hoặc các yếu tố đầu vào khác.

  6. 13
  7. 14

    Amazon S3 là một dịch vụ được đánh giá cao. Tôi chỉ đang trong quá trình tích hợp nó vào một CMS. Vấn đề duy nhất mà tôi gặp phải từ quan điểm phát triển, không phải quan điểm dịch vụ của Amazon, là nếu bạn muốn người dùng của mình tải tệp trực tiếp lên S3 một cách rõ ràng qua POST và bạn có một biểu mẫu nhiều phần kết hợp văn bản dành cho địa phương của bạn cơ sở dữ liệu, bạn đang gặp khó khăn. Bạn cần phải tách nó thành hai biểu mẫu hoặc thử sử dụng ajax để tải tệp lên trước, sau đó gửi dữ liệu cục bộ thành công.

    Nếu ai có giải pháp tốt hơn, vui lòng cho tôi biết: o)

    Tuy nhiên, việc tiết kiệm chi phí để lưu trữ các tệp có lưu lượng truy cập lớn đảm bảo sự phát triển của một hệ thống như vậy.

    Cấp

    Hệ thống quản lý danh sách đàn áp

  8. 15

    Chào,

    Viết lên tuyệt vời. Tôi đã bước qua như bạn mô tả, nhưng trong bảng quản trị nơi tôi tải hình ảnh lên, tôi không thấy nút S3. Tôi nhận thấy rằng hình ảnh của tôi, khi được tải lên thường kết thúc trên Amazon, điều này có nghĩa là bây giờ tôi có thể sao chép tất cả các hình ảnh hiện có của mình và xóa những hình ảnh đó trên máy chủ?

    Và tôi có cần sửa đổi hình ảnh của mình đến từ đâu hay plugin có thực hiện việc này không?

  9. 16

    Hi Scott,

    Bạn sẽ thấy một biểu tượng tìm kiếm cơ sở dữ liệu nhỏ ở bên phải biểu tượng điển hình của bạn. Đó là biểu tượng để bật lên cửa sổ Amazon. Tôi đã chuyển tất cả wp-content / upload lên Amazon và đảm bảo rằng tôi có cùng một đường dẫn… điểm khác biệt duy nhất là tên miền phụ. Họ đã ở http://www... và bây giờ họ đang ở images.marketingtechblog.com. Sau khi sao chép tất cả các hình ảnh sang Amazon, tôi đã sử dụng PHPMyAdmin và thực hiện tìm kiếm và thay thế cho src = ”http://martech.zone và thay thế nó bằng src =” images.marketingtechblog.com. (https://martech.zone/wordpress/mysql-search-replace/)

    Hy vọng rằng sẽ giúp! Nó không liền mạch, nhưng nó hoạt động.

    Doug

  10. 17

    Này Douglas, cảm ơn vì điều đó, tôi đã cập nhật DB để tất cả các hình ảnh đều trỏ đến hình ảnh., Nhưng tôi thấy một số ngón tay cái (khi nhìn qua thông tin trang) cho thấy iamge vẫn còn ở www.

    Đây là trang web (www.gamefreaks.co.nz) - a, có một số vấn đề lớn về bộ nhớ cho trang đầu, chỉ bắt đầu khi chúng tôi chuyển dịch vụ lưu trữ, do đó bây giờ tôi đang xem xét việc giảm tải một số áp lực lưu trữ sang S3. 😎

  11. 18
  12. 19
  13. 20
    • 21

      Nó tương thích với phiên bản mới nhất, nhưng tôi thực sự không thích cách nó hoạt động - bạn phải chuyển và tải tất cả hình ảnh sang S3 bằng một quy trình khác. Chúng tôi thực sự có thể xây dựng tích hợp CDN (Mạng phân phối nội dung) mạnh mẽ hơn với WP để đồng bộ hóa thay vì yêu cầu một quy trình khác.

  14. 22
  15. 23

    Bạn có biết liệu điều này có hoạt động với “Nhóm bên ngoài” không? Tôi muốn thiết lập điều này cho blog của một người bạn của tôi và để anh ấy sử dụng một nhóm trong tài khoản AWS của tôi (Tôi đã tạo tài khoản người dùng cho anh ấy và cấp cho anh ấy quyền truy cập vào một trong các nhóm của tôi bằng các công cụ Amazon IAM).

  16. 24
  17. 25
    • 26

      Celia, về nhà AWS http://aws.amazon.com/ và trong menu thả xuống “Tài khoản / Bảng điều khiển của tôi”, hãy chọn “Thông tin đăng nhập bảo mật”. Đăng nhập nếu bạn cần. Từ đó, cuộn xuống Thông tin đăng nhập Access và bạn sẽ thấy các ID Khóa truy cập của mình được liệt kê. Sao chép một trong những cái đó làm ID khóa cho plugin này, sau đó nhấp vào liên kết “Hiển thị” để xem Khóa truy cập bí mật dài hơn. Sao chép và dán nó vào cài đặt plugin. Bạn sẽ được hoàn thành sau đó!

  18. 27
  19. 28

Bạn nghĩ gì?

Trang web này sử dụng Akismet để giảm spam. Tìm hiểu cách xử lý dữ liệu nhận xét của bạn.