HowTo

[AWS上のMagento 2] Amazon EC2についての知識を身に付けよう!

AWS上のMagento2

AWSでAmazon EC2をインストールしてMagentoで開発する際に、サーバータイプの選択に悩む人が多いと思われます。
Magentoに限らず初めてAmazon EC2に接触する時は誰でもそうです。

Amazon EC2はさまざまな費用でさまざまな構成可能なサーバーを提供しています。適切なサーバーを選択することで、最小のコストで最高の効率を達成できると言えます。

本記事ではニーズに合った適切なAmazon EC2サーバーを決定する際に必要な知識とアドバイスを提供したいと思います。

Amazon EC2サーバーを選択する前に心得べきいくつかの概念について目を通しましょう。

・Region(地域):これはサーバーが配置される地理的な場所です。つまり、サーバーの場所に近い場所からアクセスすると、サーバーへのインターネットアクセスが高速になります。

・Instance(インスタンス):これはサーバータイプであり、それぞれが特定の目的のためにAWSによって設計されます。

・vCPU:これは各サーバータイプのCPUの強力を測る単位です。サーバータイプによってvCPUの強力も違います。

・RAM:これはメモリの容量で、デスクトップやパソコンで使われているRAMと同じですが、EC2のRAMの速度は遥かに速いという違いがあります。

・Storage(ストレージ):これはストレージ用のハードディスクのタイプです。Amazon EC2はAmazon Elastic Block Store (EBS)とNVMe SSDという2つのタイプをサポートしています。EBSの詳細については他の記事で説明します。

ここで知っておくべきことはvCPUが多いほどサーバーが強力であり、RAMの容量が多いほどサーバーが処理できる仕事も多くなり、ストレージ容量が大きいほど保存できるデータも多くなり、一方費用も高くなるということです。

AWSはvCPU、RAM、Storageと組み合わせて利用可能な構成を形成して、次の増分で名前が付けられます。
・ nano < micro < small < medium < large < xlarge < 2xlarge < 4xlarge < 8xlarge …

同じサーバータイプではmedium構成はsmall構成よりも強力であり、同様にlarge構成がmedium構成より強力であるという風に理解できます。

AWSはサーバータイプを次のようにカテゴリに分類します。(2021/10 時点)

Type
General Purpose Mac
T4g
T3 / T3a
T2
M6g / M6i
M5 / M5a / M5n / M5zn
M4
A1
Compute Optimized C6g / C6gn
C5 / C5a / C5n
C4
Memory Optimized R6g
R5 / R5a / R5b / R5n
R4
X2gd
X1e / X1
High Memory
z1d
Accelerated Computing P4
P3
P2
Inf1
G4dn / G4ad
G3
F1
VT1
Storage Optimized I3 / I3en
D2
D3 / D3en
H1

各カテゴリの定義は以下のようです。
・General Purpose(汎用):ほとんどのニーズに適します。
・Compute Optimized / Accelerated Computing(コンピューティングの最適化/高速化):CPUかGPU、または両方を処理する強力を必要とするニーズに適します。
・Memory Optimized(メモリの最適化):大量のメモリを必要とするニーズに適します。
・Storage Optimized(ストレージの最適化): 大量のデータを保存するニーズに適します。

EC2サーバーを選択する際に考慮すべき要素の概要を理解した後、Magentoのことや要件、Magentoのインストール及び運用方法を理解する必要があります。

本記事ではMagentoをインストールする3つの方法について説明します。
1.1つのサーバーに必要なすべてのサービスをインストールします。
2.各サービスを個別のサーバーに個別にインストールし、ネットワークを介してリンクさせます。
3.各サービスを個別のサーバーに個別にインストールし、Amazonサービスと組み合わせます。

次に、インストールする必要のあるサービスを調べて、それらを操作するための適切な構成を見つけます。ここでは、最小の構成について説明しますのでご留意ください。構成の強度は、Magentoサイトにアクセスして購入するユーザーの数によって異なるためです。

サービスを次のグループに分けます。
・Web処理:Apache + PHP / Nginx + PHP
・データベース処理:MySQL / MariaDB
・検索処理:Elastic Search
・キャッシュ処理:Redis / Varnish Cache

CPU (速度) RAM (容量) Storage (容量) Storage (容量)
Web処理 特大
データベース処理 特大
検索処理 特大
キャッシュ処理 特大

比較表を通して、すべてのサービスを同じサーバーにインストールすることを選択した場合は、大規模な構成(強力で高速なCPU、大量のRAM、大量のストレージ)を選択するのを推奨します。

各EC2サーバーに各サービスグル​​ープを個別にインストールすることを選択した場合は、比較表に従って各グループに適切する構成を選択してください。

AWSサービスの使用と組み合わせて各EC2サーバーに各サービスグル​​ープを個別にインストールすることを選択した場合(データベース処理プールをAmazon Aurora / RDSに、キャッシュ処理をAmazon Elastic Cacheに置き換えた場合)、比較表に従ってWeb処理グループと検索処理グループに適切な構成を選択してください、

本記事を通してMagentoを運用するときに、最も効率的でコストが低いEC2サーバーを選択するために必要な構成を視覚化できたら幸いです。

次の記事では各グループ(Web処理グループ、データベース処理、検索処理グループ、キャッシュ処理グループ)に適切するEC2サーバーの各タイプについて説明していきます。

==========

Khi bắt đầu triển khai trang Magento trên AWS theo hướng cài đặt trên máy chủ ảo Amazon EC2, việc lựa chọn loại máy chủ sẽ khiến bạn bối rối. Đó là điều bình thường nếu bạn lần đầu tiếp xúc với Amazon EC2. Amazon EC2 cung cấp nhiều loại máy chủ có cấu hình linh hoạt cùng mức phí khác nhau. Có thể nói việc bạn tính toán lựa chọn loại máy chủ đúng đắn có thể giúp bạn đạt được hiệu quả cao nhất với mức phí phải trả thấp nhất. Trong bài viết hôm nay, tôi hi vọng cung cấp cho bạn một số kiến thức cũng như lời khuyên khi bạn quyết định chọn một máy chủ Amazon EC2 phù hợp như cầu của bạn. Trong bài viết tiếp theo, tôi sẽ giải thích cũng như tiến hành chọn loại máy chủ EC2 phù hợp vận hành trang Magento 2 nhất,

Đầu tiên hãy điểm qua một số khái niệm bạn cần biết trước khi tiến hành lựa chọn:
– Region: Đây là vị trí địa lý mà máy chủ của bạn sẽ được đặt, nói cách khác những truy cập internet tới máy chủ của bạn sẽ càng nhanh nếu chúng xuất phát từ vị trí càng gần vị trí máy chủ.
– Instance: Đây là loại máy chủ, mỗi loại được AWS thiết kế phù hợp với những mục đích cụ thể.
– vCPU: Đây là một đơn vị để đo lường sức mạnh của CPU trên 1 loại máy chủ, tuỳ thuộc vào loại máy chủ mà sức mạnh của mỗi vCPU sẽ khác nhau.
– RAM: Đây là dung lượng bộ nhớ, giống như bộ nhớ RAM hoạt động trên máy bàn, laptop, điểm khác biệt là tốc độ RAM trên EC2 nhanh hơn rất nhiều so với máy bàn, laptop thông thường.
– Storage: Đây là loại đĩa cứng để lưu trữ, Amazon EC2 hỗ trợ hai loại: Amazon Elastic Block Store (EBS) và NVMe SSD. Chúng ta sẽ tìm hiểu rõ hơn về EBS trong một bài viết khác.

Công thức đầu tiên bạn cần hiểu trong cùng một loại máy chủ, số lượng vCPU càng nhiều máy chủ của bạn càng mạnh, dung lượng RAM càng nhiều máy chủ của bạn càng có thể xử lý nhiều việc, dung lượng storage càng lớn thì dữ liệu càng lưu trữ nhiều đồng thời mức phí cũng càng tăng.

AWS kết hợp vCPU, RAM, Storage thành các cấu hình có sẵn, đặt tên theo các mức độ tăng dần sau đây:
– nano < micro < small < medium < large < xlarge < 2xlarge < 4xlarge < 8xlarge …
có thể hiểu rằng trong một loại máy chủ, cấu hình medium sẽ mạnh hơn cấu hình small, tương tự cấu hình large sẽ mạnh hơn cấu hình medium.

Tiếp theo, AWS chia các loại máy chủ thành các danh mục như sau (tính đến thời điểm hiện tại):

Type
General Purpose Mac
T4g
T3 / T3a
T2
M6g / M6i
M5 / M5a / M5n / M5zn
M4
A1
Compute Optimized C6g / C6gn
C5 / C5a / C5n
C4
Memory Optimized R6g
R5 / R5a / R5b / R5n
R4
X2gd
X1e / X1
High Memory
z1d
Accelerated Computing P4
P3
P2
Inf1
G4dn / G4ad
G3
F1
VT1
Storage Optimized I3 / I3en
D2
D3 / D3en
H1

Điểm qua định nghĩa của từng danh mục như sau:
– General Purpose: Phù hợp cho hầu hết các nhu cầu
– Compute Optimized / Accelerated Computing: Phù hợp cho nhu cầu cần sức mạnh xử lý CPU hoặc GPU hoặc cả hai.
– Memory Optimized: Phù hợp cho nhu cầu cần tốn nhiều bộ nhớ.
– Storage Optimized: Phù hợp cho nhu cầu lưu trữ nhiều dữ liệu.

Sau khi đã có cái nhìn tổng quát về các yếu tô cần cần nhắc khi lựa chọn máy chủ EC2, chúng ta cần phải hiểu về Magento 2, về  yêu cầu, về cách cài đặt cũng như vận hành trang Magento. Bạn có thể tham khảo ở đây để biết các dịch vụ cần cài đặt để vận hành trang Magento. Trong bài viết này tôi sẽ đề cập 3 cách cài đặt Magento 2:
– Cài đặt tất cả dịch vụ cần thiết trong một máy chủ.
– Cài đặt riêng lẻ từng dịch vụ trên mỗi máy chủ riêng biệt, liên kết với nhau qua mạng.
– Cài đặt riêng lẻ từng dịch vụ trên mỗi máy chủ riêng biệt và kết hợp với các dịch vụ của Amazon.

Tiếp theo chúng ta sẽ điểm qua các dịch vụ cần cài đặt để tìm ra cấu hình thích hợp để vận hành chúng. Lưu ý ở đây chúng ta sẽ bàn đến cấu hình nhỏ nhất, vì cấu hình mạnh như thế nào còn phụ thuộc vào số lượng người dùng truy cập, mua hàng trên trang Magento của bạn. Tôi sẽ phân các dịch vụ thành các nhóm sau đây:
– Xử lý web: Apache + PHP (Magento 2) / Nginx + PHP (Magento 2)
– Xử lý cơ sở dữ liệu: MySQL / MariaDB
– Xử lý tìm kiếm: Elastic Search
– Xử lý cache: Redis / Varnish Cache

CPU (Tốc độ ) RAM (Dung lượng ) Storage (Dung lượng) Storage (Tốc độ)
Xử lý web vừa nhỏ lớn rất lớn
Xử lý cơ sở dữ liệu vừa lớn lớn rất lớn
Xử lý tìm kiếm lớn lớn vừa rất lớn
Xử lý cache nhỏ lớn lớn rất lớn

Qua bảng so sánh, nếu bạn lựa chọn cách cài đặt tất cả dịch vụ trên cùng máy chủ, bạn nên lựa chọn cấu hình ở mức lớn (tốc độ CPU mạnh, dung lượng RAM nhiều, dung lượng Storage nhiều). Nếu bạn chọn cách cài đặt riêng lẻ từng nhóm dịch vụ trên từng máy chủ EC2, hãy lựa chọn cấu hình cho từng nhóm tương ứng với bảng so sánh. Nếu bạn lựa chọn cách cài đặt riêng lẻ từng nhóm dịch vụ trên từng máy chủ EC2 kết hợp với sử dụng các dịch vụ của AWS (Amazon Aurora/ RDS thay thế cho nhóm xử lý database, Amazon Elastic Cache thay thế cho xử lý cache), hãy lựa chọn cấu hình cho nhóm xử lý web và nhóm xử lý tìm kiếm tương ứng với bảng so sánh.

Kết thúc bài viết hôm nay, tôi hi vọng bạn đã có thể hình dung các cấu hình cần thiết để lựa chọn máy chủ EC2 hiệu quả nhất với chi phí thấp nhật khi vận hành một trang Magento 2. Ở bài viết tiếp theo, chúng ta sẽ cùng nhau tìm hiểu các loại máy chủ EC2, loại nào phù hợp cho nhóm xử lý web, loại nào phù hợp cho nhóm xử lý tìm kiếm, loại nào phù hợp cho nhóm xử lý cở sở dữ liệu, loại nào phù hợp cho nhóm xử lý cache.

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

※注意

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