Mình đã tạo một website Wordpress dùng AWS như thế nào? - huuphongnguyen.com

Mình đã tạo một website WordPress dùng AWS như thế nào?

Thời gian đọc: 19 phút

Mình đã tạo một website WordPress dùng AWS như thế nào? Mình sẽ chia sẻ điều này trong bài viết này để giúp những bạn nào đang có ý định thử triển khai một website WordPress trên một hệ thống Cloud rất nổi tiếng là Amazon Web Services (AWS). Bài viết này mình sẽ hướng dẫn có phần “Step-by-step” những gì mình đã làm cho chính website hiện tại này của mình.

Giới thiệu – Luyên thuyên

Lời đầu tiên mình muốn giới thiệu là mình không phải dân kỹ thuật 😆Mình đang làm Business và cũng đang theo học HR (Quản trị nhân sự) nên những gì mình chia sẻ có thể có những khoảnh khoắc hơi “ngộ nghĩnh”. Mình nghĩ điều này cũng tốt bởi nó sẽ giúp những người có cách tiếp cận không chuyên dễ dàng thực hiện hơn. Một điều nữa, nếu có bạn (anh/chị) nào chuyên về mảng này hoặc nắm trong tay [AWS Solution Architecture Certification] thì hy vọng góp ý cho mình những thiếu xót hoặc chí ít đừng “ném đá” 😅 tội nghiệp em. Okey luyên thuyên về bản thân đủ rồi, kế tiếp mình sẽ giới thiệu qua những gì mình lựa chọn.

Đây là những yếu tố mà mình lựa chọn để thực hiện điều trên, tất nhiên bạn có thể sử dụng những giải pháp tương tự. Mình thấy đa phần các dịch vụ cạnh tranh hiện tại đều gần như tương tự nhau về phần cốt lõi. 👐🏻

  • Mã nguồn xây dựng Website: WordPress – Tất nhiên rồi 😂vì mình đang xây dựng một website WordPress mà. Tóm tắt thì đây là mã nguồn xây dựng website phổ biến nhất trên thế giới, gần 30% website hiện đại đang chạy trên mã nguồn này (bá đạo không 😃). Điểm mạnh nhất của WordPress chính là hệ thống Plugin với hàng trăm nghìn Plugin phục vụ gần như mọi thứ chúng ta cần. WAIT… Hình như mình đang quảng cáo cho họ 🤔
  • Amazon Web Services (AWS): Đây là hệ thống điện toán đám mây được coi là SÂU và RỘNG nhất thế giới hiện nay với hàng tá dịch vụ 🤣Nếu bạn muốn biết AWS mạnh mẽ ra sao? Hãy nhớ rằng website Amazon.com đang được vận hành bởi AWS và nó “chịu lực” tốt ra sao. Mặc dù hàng tá dịch vụ nhưng mình chỉ chọn 2 trong số này là Lightsail (Dịch vụ VPS mới của họ) và S3 (Simple Storage Service). Tất nhiên, bạn có thể thay thế Lightsail bằng các dịch vụ VPS khác như Digital Ocean, Vultr,… S3 thì bạn có thể thay thế bởi Storage của Digital Ocean, vân vân mây mây…
  • Domain Provider (Nhà cung cấp tên miền): Mình chọn Godady. Cái này thì tùy mỗi người bởi nó không quan trọng lắm. 😅
  • CDN (Content Delivery Network – Mạng truyền tải nội dung 😆Mình dịch hơi ngáo do thường không dịch nó sang Tiếng Việt): Mình chọn Cloudflare. Mình không rành nhiều về nó nhưng theo mình hiểu thì nó là một hệ thống truyền tải thông tin dựa vào hệ thống máy chủ có sẵn trên toàn cầu, nó cơ bản giúp website của mình không phải truyền tải đi quá xa. Nếu bạn nào không muốn dùng Cloudflare thì có thể chọn Cloudfront của AWS luôn, mà nó tốn phí đấy nha và hình như phải dùng thêm 1 dịch vụ của Amazon nữa là Route53 để tối ưu. Mình có thử nhưng không hợp lắm 🍃

Đấy hết rồi, chỉ có vậy thôi, đơn giản mà đúng hông. Mà mình muốn nhắc lại là mình không rành về lĩnh vực này lắm nên bài viết sẽ hơi hơi “dân giã” 😅Nếu mấy bác rành có sai thì góp ý cho em nếu đọc được nha. Okeyy, chúng ta bắt đầu thôi.

Mua domain – Cài đặt Cloudflare

Đầu tiên, việc mình cần làm là mua tên miền. Đây là điều đầu tiên khi làm một website phải cần mà. 😆Nhà phải có địa chỉ chứ. Bản thân mình thì thích mua tên miền ở Godaddy bởi mình quen với giao diện có phần “hơi tệ” của họ, hiện tại mình đang có rất nhiều tên miền do họ quản lý nên chọn họ luôn. Bạn có thể mua ở bất kỳ nhà cung cấp nào cũng được, tất nhiên là mình khuyên bạn nên mua ở những nhà cung cấp lớn để tránh mất tên miền. Ngoài ra, nếu bạn muốn mua tên miền .VN thì cần phải mua các nhà cung cấp trong nước nha, những thằng này mặc dù “lớn nhất” nhưng không bán tên miền quốc gia.

Sau khi mua tên miền xong. Mình thường đi đến bước cài đặt Cloudflare. Bạn có thể lựa chọn những thằng CDN khác như ở trên mình đã chia sẻ hoặc không cần dùng những thằng này mà quản lý DNS trực tiếp trên giao diện của thằng cung cấp tên miền cho chúng ta. Godaddy khá ẹ + mình cần thêm nhiều chức năng như chống D-Dos, CDN nên mình chọn Cloudflare. 🚀

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com
Sau khi mình đăng ký một tài khoản Cloudflare. Mình sẽ tiến hành thêm tên miền của mình để cho Cloudflare quản lý.

Thường thì Cloudflare sẽ cho chúng ta 2 name server để chúng ta khai báo với bên quản lý tên miền. Sau bước này, mọi thứ chúng ta đều quản trị trên Cloudflare hết và bạn nên quên Godaddy đi. 🤣Nghĩa là quên thằng mà mình mua tên miền đi ấy TRỪ VIỆC GIA HẠN TÊN MIỀN.

Như vậy là xong bước đầu setup domain và cloudflare ban đầu rồi. Hãy để đấy!.

Cài đặt AWS Lightsail

Đăng ký và mua một instance Lightsail

Bước đầu tiên mà mình làm là tạo một tài khoản Amazon Web Service (AWS), tài khoản này sẽ giúp mình quản lý mọi thứ và xài tất cả dịch vụ của AWS. Một lời khuyên là không nên dùng chung tài khoản với Amazon.com nha.! 🦄

Sau khi đăng ký xong thì vào trang chủ aws.amazon.com để tìm Lightsail trong tab Product. hoặc bạn có thể truy cập thẳng vào aws.amazon.com/lightsail

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Sau đây là các bước lựa chọn và cài đặt Lightsail:

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Tại đây, bạn chọn Create Instance để tạo một Instance mới như hình. Hiện tại mình đang có 1 instance đang chạy rồi đó.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Bạn có thể chọn nơi đặt instance của mình, hiện tại thì Lightsail gần như phủ đầy trái đất rồi nên bạn yên tâm. Nơi gần nhất với chúng ta là server đặt tại Singapore, bạn có thể chọn những vùng xa hơn nhưng nó sẽ chậm hơn. Mặt khác, những server đặt tại châu Á Thái Bình Dương thường đắt hơn so với ở Châu Âu và Mỹ, không hiểu tại sao nữa nhưng chắc Amazon thích vậy 😃

Lightsail có rất nhiều lựa chọn, nó là vũ khí mới của Amazon trong cuộc chiến VPS dành cho cá nhân với các Cloud Service khác. Chính vì điều này nên Lightsail tập trung nhiều vào việc hỗ trợ triển khai WordPress trên các máy chủ Linux và Unix. Ngoài WordPress thì chúng ta có thể dùng cho những việc khác nữa. Cơ bản theo mình hiểu Lightsail giống như là một phiên bản con của EC2 (dịch vụ máy ảo nổi nhất của AWS) và phù hợp hơn trong việc tạo website nhỏ và vừa.

Trong trường hợp này, bạn hãy chọn Linux/Unix và chọn WordPress (cái Multisite là khi bạn muốn chạy nhiều website WordPress trên 1 instance Lightsail *Nghe đồn là nó cùi lắm 🤣)

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Sau đó, chúng ta sẽ đến phần chọn giá và gói phù hợp. Gói rẻ nhất hiện tại là $3.50 tiền và miễn phí tháng đầu nên nếu không an tâm thì bạn cứ thử trước, Amazon cho thử hết và thậm chí là 1 năm cơ. Mình đang dùng gói nhỏ nhất vì nó tiết kiệm và website bạn nếu traffic không quá cao thì hoàn toàn ổn. Thực ra giá này đã giảm đi rất nhiều so với hồi Lightsail mới ra, giá này hợp lý và cạnh tranh hơn. 🤔Chắc Amazon lỗ vốn nên giảm giá đấy mà.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Kéo xuống thì bạn sẽ được hỏi về số lượng Identify cho Instance. Cái này thì x1 là đủ rồi. Sau đó bấm Create Instance để tạo

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Sau khi tạo, bạn sẽ thấy một Badge mới hiển thị và màu xám đi với chữ “Pending“, cái này là do Amazon đang khởi tạo nên chúng ta phải chờ thôi, thường thì nhanh lắm tầm 1-2 phút à.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Sau khi khởi tạo xong, Badge sẽ hiển thị là “Running“, lúcc này chúng ta đã có thể sử dụng rồi. Phần mình che mờ đi là Public IP của máy chủ nha, mỗi người một cái, mỗi instance một cái nên đừng quan tâm nó 😅

Vậy là xong bước khởi tạo Instance Lightsail rồi đó.

Kết nối SSH Lightsail với Terminal trên MacOS

Trong bước này, mình sẽ kết nối SSH của Lightsail với Terminal trên MacOS. Thật ra bạn có thể kết nối SSH với Lightsail bằng nút CAM giống bên dưới, nhưng mình thấy nó khá lag và trải nghiệm không tốt lắm (Copy Paste lằng nhằng 🙃)

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com
Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com
Giao diện khi bạn dùng Online nè. Nếu bạn không rành như mình thì đừng lo lắng khi thấy nó. Không có gì khó hết đâu 😂

Chính vì lý do nó lằng nhằng nên mình mới kết nối nó với với Terminal trên MacOS để dùng tiện và thơm hơn. Và đây là các bước:

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Bấm vào Instance đó, kéo xuống cuối cùng bạn sẽ thấy phần này, bạn chọn Account Page để chuyển đến một trang khác cho phép bạn tải về Key pair (cái này cực quan trọng và nó là một file .pem. File này bạn có thể lưu ở đâu cũng được trên máy. Mình thường sẽ lưu nó vào Documents trên Mac vì nó đồng bộ và backup trên iCloud của mình.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com
Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Bạn chọn Download cái Singapore (ap-southeast-1) về nha. Đó là Key pair cho instance Lightsail mình vừa tạo.

Sau khi tải về vào lưu vào Documents trên Mac, mình tiến hành mở Terminal. Nó là một cái ứng dụng command line trên Mac.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Đầu tiên mình tiến hành gõ ls để xem mình đang ở đâu. Theo hình là nó đang ở nơi tận cùng của MacOS đó. Yên tâm là khi mới mở Terminal nó luôn ở đây, mình chỉ bấm ls kiểm tra theo thói quen thôi.

Sau đó, chúng ta phải tiến hành truy cập vào nơi để file .pem mà hồi nãy mình tải về. Tất nhiên, chúng ta phải dùng câu lệnh thôi, nó giống việc bạn click mở thư mục vậy nên yên tâm là không khó và bạn hoàn toàn có thể copy code bên dưới, mình cũng copy chứ không nhớ đâu.

Truy cập vào nơi chưa file .pem là Documents mà mình đã lưu, mình dùng câu lệnh dưới:

cd Documents/

Nếu vào sai thư mục thì bạn có thể quay lại (giống bấm back) bằng câu lệnh sau:

cd -

hoặc quay trở về nơi bắt đầu bằng câu lệnh sau:

cd --

Nếu bạn không chắc mình đang ở đâu cứ bấm ls như lúc đầu thì nó sẽ liệt kê hết file trong thư mục mà mình đang đứng ra, nếu thấy file .pem mà mình tải tức là mình đang ở trong nơi chứa đó rồi đó. Sau đó, bạn gõ câu lệnh dưới đây để chạy file .pem mà mình tải về, nhớ chú ý tên file phải giống nha:

chmod 600 LightsailDefaultKey-ap-southeast-1.pem

Sau đó sẽ vẫn chưa có gì xảy ra cả, mình sẽ dùng câu lệnh để kết nối với usernamePublic IP. Username thì mặc định là bitnami (bạn cứ ghi y như vậy) và Public IP là chỗ mà hồi nãy mình nó mình tô mờ đó, bạn vào instance xem lại sẽ thấy Public IP và Private IP. Câu lệnh là:

ssh -i LightsailDefaultKey-ap-southeast-1.pem [email protected]
Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Bấm Enter…. 🎉

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Đấy giờ thì Terminal đã được kết nối với Lightsail rồi, bạn sẽ thấy chữ Bitnami to đùng luôn, nhìn y chang cái cửa sổ đen đen khi dùng Online đúng hông. Vậy là xong việc kết nối SSH Lightsail với Terminal trên MacOS rồi đó. 🎉

Kết nối SSH Lightsail với một ứng dụng thông qua FTP

FTP (File Transfer Protocol) là một phương thức truyền tải tập tin thông qua mạng truyền thông. Nếu bạn đã từng dùng hosting thông qua giao diện cPanel, bạn sẽ thấy bạn có thể upload, download, kéo thả, di chuyển tập tin mà bạn đang chưa trên hosting đó. Tuy nhiên, với VPS thì nó không có cPanel cho chúng ta điều khiển, chúng ta phải kết nối thông qua một ứng dụng hỗ trợ FTP để kéo thả file hoặc quản lý file đang lưu trên VPS. Trong trường hợp của mình, mình sẽ dùng Transmit 5 để kết nối với Lightsail thông qua FTP bởi nó có giao diện đẹp và nhanh, bạn có thể dùng những thằng khác như FileZilla, bla.bla.bla 😂(mình biết thằng này à, bạn search nha).

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Đây là giao diện của Transmit 5. Mình sẽ kết nối với instance Lightsail của mình thông qua SFTP hoặc FPT gì cũng được.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Mình sẽ điền những thông tin cần thiết giống như bước trước mình đã kết nối instance Lightsail với Terminal vậy. Lúc nãy mình phải dùng câu lệnh, giờ thì có giao diện nên dễ hơn nhiều. 😆

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Sau khi bấm Save và kết nối. Transmit 5 sẽ chuyển đến đây, tại đây sẽ có 2 bên, một bên là các file đang lưu trên máy Mac của mình, bên kia là các file đang lưu trên instance Lightsail đặt tại Singapore. Bạn có thể kéo thả qua lại giữa hai thằng một cách dễ dàng.

Toàn bộ mã nguồn của WordPress đã được Lightsail khởi tạo và bạn không cần phải tải mã nguồn trên WordPress.org giống như khi dùng Shared Hosting đâu. Như vậy là chúng ta đã xong bước kết nối Lightsail để quản lý file thông qua FTP rồi đó.

Trỏ tên miền từ Cloudflare về server Ligthsail

Để trỏ tên miền từ Cloudflare về server Lightsail, bạn cần truy cập vào tài khoản Cloudflare lúc nảy và chọn vào phần tên miền mà mình đã thêm, sau đó vào tab DNS để quản lý DNS giống như hình bên dưới.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Tại đây bạn sẽ thêm một thẻ A với name là tên miền IPv4 Address chính là Public IP của instance Lightsail mà mình đã tạo.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Chọn đám mây Cloudflare cho mọi truy cập đều thông qua Cloudflare, cái này sẽ giúp Cloudflare tính toán và bảo vệ chúng ta khi có D-Dos xảy ra (D-Dos dễ hiểu là có một lượng lớn truy cập ảo vào website trong cùng một lúc, cái này thường được dùng và nó khiến website bạn sập).

Sau khi đó Add Record, và CHỜ 😆 thường thì vài tiếng, chậm chì 24 tiếng nha. Cái này phải chịu rồi. Bạn cứ vào địa chỉ [Tên miền]/wp-admin để kiểm tra, khi nào nó ra cửa sổ đăng nhập WordPress là ok rồi đó.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Lúc này, mình vui lắm… NHƯNG

Tuy nhiên tới đây, bạn sẽ tự hỏi 🤔Nhập cái gì bây giờ? Thường thì khi mua shared hosting bạn sẽ được cung cấp thông tin để truy cập hoặc tự đăng ký thông tin đăng nhập được. Nhưng VPS thì nó chuyển hẳn tới đây mà không cho đăng ký. Vậy nhập gì bây giờ? Mò…. Vâng mình từng mò đó, 😂 nhưng luôn sai.

Thật ra, Username or Email Address chính là user (bạn cứ nhập user thôi là ok nha, cái này mặc định). Password là gì nhỉ? Bạn mở Terminal lên khi nó đã kết nối với Binami trong bước trước đó, và bạn gõ câu lệnh:

cat bitnami_application_password
Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Đấy nó sẽ hiện ra password cho bạn và bạn chỉ cần copy sau đó paste nó vào WordPress thôi. Đây cũng là lí do mình dùng Terminal bởi nó copy dễ dàng, bạn mà dùng cái command line đen đen ban đầu thì copy lằng nhằng lắm 🙃À mà thấy nó khó nhớ và dài đúng hông, yên tâm nha khi vào trong WordPress, bạn tạo user mới thông tin tùy ý ( cùng quyền quản trị là ADMINISTRATION) và sau đó xóa cái user này đi.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Lúc này bạn truy cập tên miền thì sẽ ra thế này rồi, vậy là website WordPress của bạn đã triển khai thành công trên Lightsail.

Cài đặt chứng chỉ SSL cho website WordPress

Làm thế nào để cài đặt chứng chỉ SSL cho website WordPress chạy trên AWS Ligthsail? (SSL là cái khóa xanh xanh chứng minh website bạn đã mã hóa và an toàn hơn). Mình đã đặt câu hỏi này cho bản thân trong những ngày đầu tìm hiểu, search cũng nhiều lắm do mình không rành về mấy cái kỹ thuật này 😂Nhưng cuối cùng mình cũng tìm ra được link hướng dẫn chi tiết và dễ dàng, các bạn chỉ cần copy code paste vào Terminal thôi là ok, cái này bạn vào link dưới đây sẽ dễ dàng hơn.

Cái này do chính đội ngũ của AWS Lightsail viết nên được update thường xuyên và dễ hiểu, chắc họ cũng muốn chỉ chi tiết cho những người như mình:

https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-using-lets-encrypt-certificates-with-wordpress

Khi làm y chang, chúng ta sẽ có cái này. 🎉

Tắt đi banner Bitnami trên trang WordPress

Khi mình vào website của mình sau khi tạo, mình thấy mọi thứ đều ổn trừ cái logo Bitnami. Thật ra cái này được mặc định bật khi bạn cài WordPress, tất nhiên chúng ta có thể tắt nó đi nếu không muốn để. Đây là nó ở dưới góc phải:

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Và bạn biết đấy, khi nhìn thấy thì 96,69% mọi ngươi đều tắt đi cả.

Để tắt cái này đi, bạn vào Terminal đã kết nối với Bitnami, nếu lỡ tắt Terminal đi rồi thì bạn làm giống bước trên để kết nối lại nha. Bạn nhập câu lệnh dưới đây:

sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1

Sau đó bạn restart lại server bằng câu lệnh dưới đây sau khi Enter dòng lệnh trên:

sudo /opt/bitnami/ctlscript.sh restart apache

Và, vậy là nó biến mất rồi. 🎉

Làm thế nào để truy cập vào phpMyAdmin của website WordPress khi chạy trên AWS Lightsail?

Làm thế nào để truy cập vào phpMyAdmin của website WordPress khi chạy trên AWS Lightsail? Đây là một câu hỏi có thể bạn sẽ gặp phải khi lần đầu truy cập vào đường dẫn [Tên miền]/phpmyadmin bởi bạn sẽ nhận được thông bố như thế này:

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Vì lý do bảo mật mà mặc định thì website WordPress khi cài đặt thông qua Lightsail sẽ chặn truy cập vào phpMyAdmin, bạn vẫn sẽ có thể truy cập dưới dạng localhost. Để truy cập như bình thường, bạn mở Transmit 5 (ứng dụng kết nốt FTP lên) và vào đường dẫn sau:

Apps -> phpmyadmin -> conf -> Bạn sẽ thấy file tên: httpd-app.conf

Mở nó lên và chỉnh sửa theo dạng sau:

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Sau khi chỉnh sửa xong thì bấm tổ hợp phím: CMD (Ctrl) + S để Save lại. Sau đó, bạn vẫn chưa thể truy cập vào phpMyAdmin đâu mà cần phải làm thêm 1 bước nữa là restart lại apache bằng cách truy cập vào Terminal và kết nối với Bitnami, sau đó dùng câu lệnh này:

sudo /opt/bitnami/ctlscript.sh restart apache

Vậy là bạn đã truy cập được vào phpMyAdmin rồi đó.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Nhưng…nét mặt bạn chắc cũng sẽ giống mình…

Username và Password là cái gì nhỉ? Vẫn giống như lúc đăng nhập vào WordPress, sẽ chẳng có bên nào cung cấp thông tin đăng nhập thông qua mail cho bạn đâu nhé 😆
Username phpMyAdmin mặc định là root
Password phpMyAdmin cũng chính là Password mà bạn lấy ban đầu từ Terminal để đăng nhập vào WordPress đó. Truy cập vào Terminal được kết nối Bitnami, gõ câu lệnh bên dưới và copy mật khẩu đó paste vào, bước làm tương tự như mục lấy password đăng nhập vào WordPress ở phần trên.

cat bitnami_application_password

Đấy, như vậy là bạn đã có thể truy cập vào phpMyAdmin giống như bình thường rồi. 🎉

Nếu bạn dùng Safari mà nhập Username/Password giống theo hướng dẫn vẫn bị sai thì đổi sang Chrome nha. Không hiểu sao có lỗi này luôn. 😆

Cài đặt AWS S3 (Simple Storage Service)

Thiết lập cài đặt AWS S3

Cũng giống như việc cài đặt AWS Lightsail, bạn cần truy cập vào đường dẫn:

https://aws.amazon.com/s3/

Sau khi đăng nhập tài khoản Amazon Web Services, bạn sẽ được chuyển đến trang điều khiển. Bạn tiến hành tạo Bucket S3, giải thích một chút thì Bucket là một phân vùng để chưa dữ liệu của bạn. Tốt nhất thì mỗi Website chỉ nên dùng 1 bucket mà thôi (đối với website vừa và nhỏ nha). Để đọc thêm về S3 bạn có thể xem tại đây – Đây là tài liệu chi tiết do Amazon viết nên khá dễ hiểu và đầy đủ.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com
Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Bạn bấm NEXT đển khi khởi tạo là xong. Ngoài ra, mình khuyên bạn nên đọc kỹ các lựa chọn trong các bước để lựa chọn phù hợp nha. Đối với người dùng bình thường kiểu như mình thì để mặc định hết là ổn rồi.

Như vậy bạn đã xong bước thiết lập và tạo bucket cho S3 🎉

Kết nối website WordPress với AWS S3

Làm sao để kết nối một website WordPress với AWS S3? Website WordPress lúc nãy mình tạo xong và chạy được chỉ mới được khởi tạo trên Lightsail thôi, cơ bản thì Lightsail có 20Gb SSD để bạn lưu trữ mọi dữ liệu, những hình ảnh – video – tài liệu mà mình upload và liên kết đều lưu trên SSD của Lightsail. Điều này cũng tốt vì khi hết 20Gb bạn có thể mua thêm và mua thêm, tuy nhiên nếu một lúc nào đó bạn quá nhiều dữ liệu và nâng cấp tốn quá nhiều chi phí thì thế nào? Lúc đó chúng ta phải đối mặt với một vấn đề nữa chính là quản lý dữ liệu đang có và phục hồi khi website bị tấn công hay thiệt hại, nó cũng giống như việc bạn bỏ hết trứng vào 1 giỏ ấy.

Mặc khác, đôi khi nó cũng sẽ khiến cho website WordPress bị tải chậm đi do liên tục gọi vào 1 tên miền (cái này mình học được khi thực tập SEO), chính vì điều này mà một vài Website lưu đường dẫn ảnh vào subdomain như kiểu img.tenwebsite.com hay hinhanh.mywebsite.com.


Lightsail là một VPS khá đặc biệt nên chúng ta không thể tạo subdomain dễ dàng để làm được điều này như share hosting. Mặt khác, khi sử dụng AWS S3 thì đường dẫn các hình ảnh và dữ liệu media đều từ S3 nên cũng gần như tương tự dùng subdomain rồi.

Quay trở lại với câu hỏi Làm sao để kết nối một website WordPress với AWS S3? Chúng ta sẽ sử dụng một Plugin để kết nối với S3, điểm mạnh của WordPress đó là mọi thứ đều có thể trở nên dễ dàng với Plugin. Bạn cài một plugin mang tên WP Offload Media Lite for Amazon S3 and DigitalOcean Spaces – được viết bởi Delicious Brains. Plugin này hiện tại đã được hơn 40.000 lượt kích hoạt và cập nhật thường xuyên.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Sau khi Active Plugin này. Bạn vào AWS – Offload Media bên cột trái giao diện WordPress. Chọn Storage mà bạn dùng, có 2 lựa chọn hiện tại là Amazon S3 và Digital Ocean Spaces. bạn chọn S3 và bấm Next.

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Tại đây, Plugin này hỏi bạn chọn Bucket nào? Bạn chọn Browse existing buckets để tìm Bucket đã tạo trong bước trước, bấm Save bucket Setting để lưu lại

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Tại đây bạn sẽ có rất nhiều lựa chọn, chúng được giải thích khá dễ hiểu và đa phần bạn sẽ bật lên hết nha. Lưu ý là phần Custom Domain (CNAME) phải giống với tên của Bucket, nếu không sẽ xảy ra lỗi (do Amazon quy định như vậy 😆)

Sau đó bạn bấm Save lại là xong rồi đó, việc kết nối S3 chỉ dễ dàng như vậy thôi thông qua Plugin trên WordPress.

À mà còn một bước nữa. Bạn phải vào Cloudflare để cấu hình thêm thẻ CNAME cho đường dẫn S3. 🚀

Phần Name sẽ là phần trước tên miền của bạn. Ví dụ của mình là: Content22.huuphongnguyen.com thì phần Name mình sẽ ghi là Content22

Phần Domain name sẽ là đường dẫn theo dạng dưới đây, trong trường hợp của mình sẽ là Content22.huuphongnguyen.com.s3.amazonaws.com

[Tên Bucket mà bạn đã tạo].s3.amazonaws.com
Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Bạn kiểm tra thành công chưa bằng cách upload thử một tấm hình và xem thông tin của tấm ảnh đó. Ở đây thì của mình đã thành công rồi. 🎉

Mình đã tạo một website WordPress dùng AWS như thế nào? - huuphongnguyen.com

Tuy nhiên, đôi khi mới kết nối, bạn sẽ bị lỗi là hình upload lên thì giống như vậy nhưng lỗi hiển thị và chỉ hiện dấu ?, hãy chờ một thời gian nha, mọi thứ sẽ bình thường lại. 💪

Everything’s great!! 🎉

Đấy, như vậy là mình đã trình bày xong một bài dài các quá trình và các bước mà mình đã tạo một website WordPress chạy trên nền tảng Amazon Web Services (AWS) rồi đó. Bài viết này dành cho:

  • Những người mới lần đầu tìm hiểu và sử dụng Lightsail – S3, tất nhiên đây chỉ là cơ bản và còn rất nhiều rất nhiều điều khác.
  • Những người không rành nhiều về kỹ thuật và có phần “ngoại đạo” như mình đây 😅
  • Dành cho chính bản thân của mình. ❤️

Bài viết này có thể sẽ có một vài sai xót trong chính tả (mình không chuyên về viết blog và là người thích viết theo văn nói nhiều hơn), cách diễn tả có thể hơi khó hiểu, sai xót về kiến thức chuyên môn – định nghĩa, và nó hơi dài. Hy vọng bạn/anh/chị/chú/bác/đồng chí ( người đang đọc tới đây) có thể góp ý bên dưới nếu có vấn đề xảy ra.

Cảm ơn vì đã đọc đến đây!!! 🎉

Nguồn tham khảo: (Viết theo chuẩn references Harvard luôn nha 😂)

  • Lightsail (2018) Tutorial: Using Let’s Encrypt SSL certificates with your WordPress instance in Amazon Lightsail, available at: https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-using-lets-encrypt-certificates-with-wordpress (Accessed: 31 December 2018)
  • Bitnami Document (2018) Remove the Bitnami Banner, available at: https://docs.bitnami.com/aws/how-to/bitnami-remove-banner/ (Accessed: 31 December 2018)
  • Rohit Falor (2017) How do I connect to a new Amazon Lightsail instance from my Mac? , available at: https://stackoverflow.com/questions/46028907/how-do-i-connect-to-a-new-amazon-lightsail-instance-from-my-mac (Accessed: 31 December 2018)
  • mmcglynn (2017) How can I login to PHPMyAdmin on AWS Lightsail?, available at: https://stackoverflow.com/questions/43524309/how-can-i-login-to-phpmyadmin-on-aws-lightsail/53977184#53977184 (Accessed: 31 December 2018)
  • S3 (2018) Amazon Simple Storage Service Documentation, available at: https://docs.aws.amazon.com/s3/index.html#lang/en_us (Accessed: 31 December 2018)

Bài viết bạn nên đọc thêm:

Đánh giá bài viết:

Twitter
Facebook
LinkedIn
Email
Print