HowTo

【AWSとMagento】クイックスタートするための構成

AWS上のMagento2

Amazon Web Services (AWS) はただのクラウドサーバーと勘違いされている方もいらっしゃいますが、テクノロジーソリューションの開発をより簡単かつ効率的にする複数のサービスを備えたプラットフォームです。

その成長と人気により、AWSは多くのストアオーナーによってMagentoサイトの展開の手段として選ばれています。

本記事はMagentoサイトの展開に使用できる各サービスの概要を簡単に説明することを目的としています。

最適なセットアップやカスタマイズの詳細については後編で説明していくと思います。

まず、以下の図をご覧ください。

従来のモデル従来のモデル

これは、私が過去に取り組んできたプロジェクトで一般的なMagentoの展開のモデルです。

Webサーバー(apache、nginx + php-fpm)、データベースサーバー(mysql)、検索エンジン(elastic search)、キャッシュサービス(redis、varnish cache)など、Magentoの運営に必要なすべてのサービスが同じサーバーにインストールされますので、これは従来のモデルと言えます。

サーバーの構成を選択することは難しい選択です。

Webサイトのユーザー数と各サービスの要件(多くのCPUリソースを必要とするサービスもあれば、多くのRAMリソースを必要とするサービスもあります)によってサーバーの構成も違いますが、選択者は予算が許す限り、強固な構成を策定します。

このような強力な構成でサーバーを維持するには、多額の費用が必要になります。ビジネスが良好な場合、Magentoサイトを使用するユーザーの数が増え、より強力なサーバー構成にアップグレードするという大きな課題に直面します。

この問題について弊社のような見地をもった会社に相談することができます。
より多くのサーバーに投資するようにアドバイスする人もいますが、この従来のモデルはすべてのサービスをサーバーに集中するため、セットアップには多くの費用がかかります。

この従来のモデルをAWSに展開しみましょう。

従来のサーバー(共有ホスティング/バーチャルプライベートサーバー/専用サーバー)を置き換えるのに2つのオプションがあります。それはAmazon Elastic Compute Cloud (Amazon EC2)とAmazon Elastic Block Store (Amazon EBS) の組み合わせ及びAmazon Elastic Container Service (Amazon ECS)です。

Amazon EC2は、バーチャルプライベートサーバー似ており、CPUタイプ、CPU速度、RAMの容量などのサーバー構成を選択できます。

Amazon EBSは、バーチャルプライベートサーバー上のディスクに似ており、容量、速度、HDD、またはSSDテクノロジーを選択できます。

Amazon ECSは、コンテナーテクノロジーを使用して、AmazonEC2でアプリケーションを実行します。

Amazon EC2 と Amazon EBSを直接使用するか、コンテナーテクノロジーを備えたAmazon ECSを介して使用するかは、ニーズと技術的理解のレベルによって異なります。

この段階でAWSに展開するための従来のモデルは次のとおりです。

AWSのモデル 1AWSのモデル 1

Amazon EC2 / Amazon ECSを使用する利点は、初期化の容易さ及びAWS管理画面を通して適切な構成を選択できることから費用を削減できることです。これにより、ビジネスの成長レベルに応じる新たなモデルの展開がより容易になります。

新たなモデルは各サービスを個別のAmazonEC2にインストールすることで展開されます。各サービスに適した各構成を選択して、運用コストを最適化できます。

AWSのモデル 2AWSのモデル 2

データベース、キャッシュなどの各サービスにシステムをインストールして最適化する機能に自信がない場合、または各サービスのAmazon EC2サーバーを運用するコストが非常に高い場合は、すでにAWSによって最適化されたサービスを使用できます。

これにより、必要な各サービスのインストールとセットアップが簡素化されます。

Amazon ElastiCacheはインストール及び最適化した設定を備えたキャッシュサーバーを提供してもらいます。自分のキャッシュサーバー(Redis)の代わりに使用できます。

データベース、キャッシュなどの各サービスにシステムをインストールして最適化する機能に自信がない場合、または各サービスのAmazon EC2サーバーを運用するコストが非常に高い場合は、すでにAWSによって最適化されたサービスを使用できます。

これにより、必要な各サービスのインストールとセットアップが簡素化されます。

・Amazon ElastiCacheはインストール及び最適化された設定を備えたキャッシュサーバーを提供してもらいます。自分のキャッシュサーバー(Redis)の代わりに使用できます。

・Amazon AuroraとAmazon RDSはどちらも、インストールかつ最適化した設定を備えた現在のほとんどのデータベースを対応しているデータベースサーバーを提供します。

運用コストを最適化するために、同じ目的のサービスを1つのAmazon EC2にグループ化できます。これにより、最適なCPUタイプ、CPU速度、およびRAM容量を簡単に選択できます。

この時点でのモデルは、次のように説明できます。

AWSのモデル 3AWSのモデル 3

現在のモデルではWebサーバーを実行しているAmazon EC2サーバーにMagentoをインストールでき、Magentoサイトを運用する他のサービスに接続する準備ができています。

ビジネスが成長するにつれて、私たちのシステムは多くの人々のニーズを満たす必要があります。現在のモデルでは、必要なサービスのためにさらに多くのAmazonEC2サーバーを作成するだけで済みます。ここでは、Webサーバー用にもう1つのAmazonEC2サーバーを作成します。

Web処理用のAmazonEC2サーバーが2つあります。これを組み合わせるには、3番目のAmazonEC2サーバーにLoad Balancerという追加サービスをインストールする必要があります。

この3番目のサーバーをAmazon Elastic Load Balancing (Amazon ELB)というAWSのサービスに置き換えることができます。

AWSのモデル 4AWSのモデル 4

現時点では、私たちのモデルは高負荷容量のMagentoサイトの運用に対応していますが、必要に応じてアップグレードして、Magentoサイトが常にスムーズに実行されるようにすることもできます。

しかし、それでももっとうまくいくことができます。

Magentoサイトはcss、jsファイルだけでなく、多くの画像ファイルとビデオファイルを使用します。これらのファイルを同じEC2サーバーに置くとサーバーのパフォーマンスに影響を与える可能性があります。その代わりに、Amazon Simple Storage Service (Amazon S3)を使用するのをおすすめします。

Amazon S3は速度の最適化及びバックアップ機能を保証しているファイルストレージサービスです。そのため、ファイルが常に安全で高速アクセスできます。

AWSのモデル 5AWSのモデル 5

Magentoサイトが世界の多くの地域のユーザーにサービスを提供している場合、Amazon Cloudfrontサービスを使用すると、世界のどの地域でもコンテンツにすばやくアクセスできるようになります。

Amazon Cloudfrontはコンテンツデリバリネットワーク(CDN)サービスであり、世界の至る所にあるサーバーにファイルを保存します。

AmazonCloudFrontとAmazon S3を組み合わせることで、世界のいかなる地域やユーザーでもファイルアクセス速度が常に保証されます。

AWSのモデル 6AWSのモデル 6

最後に、AWSの使用に興味がある場合は、ドメイン名の購入、ナビゲーションの設定、Secure Socket Layer証明書(SSL)の簡単な設定を可能にするドメインネームシステムサービスであるAmazon Route53を検討することをお勧めします。

さらに、Amazon Route 53は、他のAWSサービスと組み合わせて使用​​すると速度が最適化されます。

AWSのモデル 7AWSのモデル 7

本記事を通してAWS上のMagentoの実行の概要について把握出来れば幸いです。各AWSサービスの使用、インストール、セットアップの詳細については、次の記事で紹介していくと思います。

 


Amazon Web Services (AWS) là một nền tảng với nhiều dịch vụ giúp triển khai các giải pháp công nghệ dễ dàng và hiệu quả hơn. Với sự lớn mạnh đi cùng sự phổ biến của mình, AWS đang được nhiều chủ cửa hàng lựa chọn để triển khai trang Magento của mình. Bài viết hôm nay có mục tiêu để giúp bạn có một cái nhìn tổng quan về các dịch vụ có thể dùng để triển khai trang Magento của bạn. Mỗi dịch vụ sẽ được mô tả ngắn gọn thay vì đi sâu đến việc thiết lập hay tuỳ chỉnh tối ưu, những vấn đề đó sẽ được đề cập trong các bài viết sau. 

Đầu tiên, hãy xem mô hình mà tôi chuẩn bị sau đây:

Architect TraditionalArchitect Traditional

Đây là một mô hình triển khai Magento thường gặp ở các dự án tôi từng thực hiện. Có thể xem đây là một mô hình truyền thống khi tất cả các dịch vụ cần thiết để vận hành Magento như web server (apache, nginx + php-fpm), database server (mysql),  search engine (elastic search), cache service (redis, varnish cache) đều được cài đặt trên cùng một máy chủ. Để lựa chọn cấu hình cho máy chủ là công việc hết sức khó khăn, tuỳ thuộc vào số lượng người sử dụng website và yêu cầu của mỗi dịch vụ (có những dịch vụ cần tài nguyên CPU nhiều, cũng có những dịch vụ cần tại nguyên RAM nhiều) nên đa số đi đến quyết định cấu hình máy chủ ở mức mạnh nhất có thể. Để duy trì máy chủ với cấu hình mạnh như thế, bạn sẽ cần chi một khoản tiền lớn. Nếu việc kinh doanh của bạn thuận lợi, khi mà lượng người sử dụng trang Magento của ngày một tăng, bạn đối mặt với một thách thức lớn hơn phải nâng cấp cấu hình máy chủ mạnh hơn – điều mà sẽ khiến bạn tốn chi phí duy trì nhiều hơn. Bạn có thể nhờ các công ty kỹ thuật tư vấn, một số sẽ khuyên bạn nên đầu tư thêm nhiều máy chủ nhưng việc thiết lập sẽ tốn nhiều chi phí cho công ty do mô hình truyền thống này đang tập trung tất cả dịch vụ trên một máy chủ. 

Chúng ta sẽ thử triển khai mô hình truyền thống này trên AWS, để thay thế máy chủ truyền thống (shared hosting / virtual private server / dedicated server), chúng ta có 2 lựa chọn: Amazon Elastic Compute Cloud (Amazon EC2) kết hợp Amazon Elastic Block Store (Amazon EBS) và Amazon Elastic Container Service (Amazon ECS). 

Amazon EC2 tương tự như virtual private server, bạn có thể lựa chọn cấu hình máy chủ bạn muốn như loại CPU, tốc độ CPU, dung lượng RAM. 

Amazon EBS tương tự như ổ đĩa trên virtual private server, bạn có thể lựa chọn dung lượng, tốc độ, công nghệ HDD hay SSD.

Amazon ECS sử dụng công nghệ container để thực thị ứng dụng của bạn trên Amazon EC2. 

Việc lựa chọn sử dụng trực tiếp Amazon EC2 + Amazon EBS hay thông qua Amazon ECS với công nghệ container phụ thuộc vào nhu cầu cũng như mức độ hiểu biết kỹ thuật của bạn. 

Đây là mô hình truyền thống khi triển khai trên AWS ở giai đoạn này:

Architect AWS 1Architect AWS 1

Một điểm thuận lợi khi sử dụng Amazon EC2 / Amazon ECS là việc dễ dàng khởi tạo, đồng thời lựa chọn cấu hình phù hợp để tối ưu chi phí qua giao diện quản lý của AWS, điều này giúp bạn dễ dàng triển khai mô hình mới có thể đáp ứng theo mức độ phát triển kinh doanh của bạn. 

Mô hình mới triển khai bằng cách cài đặt mỗi dịch vụ trên từng Amazon EC2 riêng biệt. Chúng ta có thể lựa chọn từng cấu hình phù hợp với mỗi dịch vụ để tối ưu chi phí vận hành. 

Architect AWS 2Architect AWS 2

Nếu bạn không tự tin vào khả năng cài đặt, tối ưu hệ thống trên mỗi dịch vụ như database, cache hoặc chi phí để vận hành các máy chủ Amazon EC2 cho mỗi dịch vụ khá cao, bạn có sử dụng các dịch vụ được tối ưu sẵn bởi AWS, điều này sẽ giúp bạn đơn giản việc cài đặt thiết lập mỗi dịch vụ cần thiết. 

  • Amazon ElastiCache cung cấp cho bạn một cache server được cài đặt và thiết lập tối ưu sẵn, bạn có thể dùng để thay cache server (Redis) của mình.
  • Amazon Aurora  và Amazon RDS đều cung cấp cho bạn một database server được cài đặt, thiết lập tối ưu, hỗ trợ hầu hết các hệ cơ sở dữ liệu hiện nay (Mysql, PostgreSQL)

Để tối ưu chi phí vận hành, bạn có nhóm các dịch vụ có cùng mục đích vào một Amazon EC2, điều này giúp bạn dễ chọn loại CPU, tốc độ CPU, dung lượng RAM tối ưu nhất. Mô hình của chúng ta ở thời điểm này có thể minh họa như sau:

Architect AWS 3Architect AWS 3

Với mô hình hiện tại, chúng ta có thể cài đặt Magento lên máy chủ Amazon EC2 chạy webserver, các dịch vụ khác để vận hàng trang Magento đều đã sẵn sàng kết nối với nhau. 

Khi việc kinh doanh phát triển, hệ thống chúng ta cần đáp ứng được nhu cầu sử dụng của lượng lớn người. Với mô hình hiện tại chúng ta chỉ cần tạo thêm máy chủ Amazon EC2 cho những dịch cần thiết. Ở đây chúng ta sẽ tạo thêm 1 máy chủ Amazon EC2 cho webserver. Chúng ta có 2 máy chủ Amazon EC2 phục vụ cho việc xử lý web, để kết hợp với nhau cần cài đặt thêm một dịch vụ hay gọi là Load Balancer trên một máy chủ  Amazon EC2 thứ 3. Chúng ta có thể thay thế máy chủ thứ 3 này bằng một dịch vụ có sẵn của AWS là Amazon Elastic Load Balancing (Amazon ELB). 

Architect AWS 4Architect AWS 4

Ở thời điểm hiện tại, mô hình của chúng ta đã đáp ứng được việc vận hành trang Magento với khả năng chịu tải cao, khi cần thiết chúng ta vẫn có thể nâng cấp để luôn đảm bảo trang Magento vận hành mượt mà. Nhưng chúng ta vẫn có thể làm tốt hơn, trang Magento sử dụng rất nhiều file hình ảnh, video, cũng như các file css, js, việc để các file này chung máy chủ EC2 có thể khiến hiệu suất của máy chủ bị ảnh hưởng, thay vào đó hãy sử dụng dịch vụ lưu trữ file Amazon Simple Storage Service (Amazon S3). 

Amazon S3 là dịch vụ lưu trữ file, được tối ưu tốc độ cũng như đảm bảo các chức năng backup, bạn sẽ an tâm rằng file của mình luôn an toàn, truy xuất nhanh ở mọi thời điểm. 

Architect AWS 5Architect AWS 5

Trong trường hợp trang Magento của bạn phục vụ người dùng ở nhiều nơi trên thế giới, việc sử dụng dịch vụ Amazon Cloudfront sẽ giúp nội dung của bạn được truy xuất nhanh ở bất kỳ khu vực nào trên thế giới. Amazon Cloudfront là một dịch vụ Content Delivery Network (CDN), nó sẽ lưu trữ file của bạn ở những máy chủ khắp thế giới, kết hợp Amazon CloudFront với Amazon S3 là giải pháp giúp cho tốc độ truy cập file của bạn luôn đảm bảo nhanh với bất cứ người dùng nào ở bất kì khu vực nào trên thế giới.

Architect AWS 6Architect AWS 6

Sau cùng nếu bạn thấy hứng thú khi sử dụng AWS, có thể cân nhắc việc sử dụng Amazon Route 53, một dịch vụ Domain Name System cho phép bạn mua tên miền, thiết lập điều hướng, dễ dàng thiết lập chứng chỉ Secure Socket Layer (SSL), ngoài ra Amazon Route 53 được tối ưu hóa tốc độ khi sử dụng kết hợp với các dịch vụ khác của AWS. 

Architect AWS 7Architect AWS 7

Hi vọng bài viết hôm nay giúp bạn có một cái nhìn tổng quan về việc vận hành Magento trên AWS. Hẹn các bạn ở các bài viết sau chi tiết hơn về cách sử dụng, cài đặt thiết lập từng dịch vụ AWS. 

 

弊社ではMagento2を利用した多機能ECサイトの構築・越境EC/中国越境ECの開発をして企業様をサポートしています。 ご興味ある方は是非問い合わせください。

ABOUT ME
Lan Anh
ベトナム出身でホーチミン市に住んでいます。現在、マルウェブ会社でITコミュニケーターとして活躍しています。

※注意

本ブログの投稿内容に関するお問い合わせをして頂いてもご返信できませんので、何卒ご了承ください。