{"id":3681,"date":"2018-04-23T11:39:36","date_gmt":"2018-04-23T11:39:36","guid":{"rendered":"https:\/\/cloudkul.com\/blog\/?p=3681"},"modified":"2018-07-20T06:34:03","modified_gmt":"2018-07-20T06:34:03","slug":"magento-2-multi-vendor-marketplace-aws-autoscaling","status":"publish","type":"post","link":"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/","title":{"rendered":"Magento 2 Multi Vendor marketplace &#8211; AWS Autoscaling"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">\u00a0When it comes to high availability server architectures, couple of things that come in mind are giant servers with <\/span><b>huge RAM and multi-core CPUs, Load Balancer, an Auto scaling manager, a shared file system<\/b><span style=\"font-weight: 400;\">, \u00a0<\/span><b>Cache mechanism<\/b><span style=\"font-weight: 400;\"> etc. For deploying this architecture we can either build all of its components from scratch or we can lookup to someone who can provide these features with flexibility and ease so that we can focus on our application.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>These high-level server architectures can be deployed for Magento 2 Multi Vendor marketplace as well<\/strong>. Magento 2 being one the fastest growing e-commerce platform, faces the challenges to handle its giant clients&#8217; base. For any vendor, store high availability and data consistency is primal concern. So we need to build our Magento store to face any considerable amount of traffic.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Best way to ensure this is to keep redundancies and ability to scale it up and down as per need. AWS Autoscaling provides features to scale your AWS resources as per pre-defined scaling policies. Also, a lot of other AWS services are needed to be integrated as well in order to set up a full fledged Auto scaling Architecture.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>What is Magento 2 Multi-Vendor Marketplace<\/strong><\/h2>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Magento 2 Multi Vendor Marketplace\u00a0Extension converts your Magento 2 Store into a complete online marketplace shop. Using Magento2 Marketplace Module, the seller can manage the inventory, shipment, Seller Profile page, and the Seller Collection page and much more.The seller can add multiple products like Simple, Configurable, Virtual &amp; Downloadable.<\/p>\n<p>For more detailed information, please visit\u00a0<a href=\"https:\/\/webkul.com\/blog\/magento2-multi-vendor-marketplace\/\">https:\/\/webkul.com\/blog\/magento2-multi-vendor-marketplace\/<\/a> .<\/p>\n<h2><\/h2>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><b>A Brief to AWS Auto Scaling<\/b><\/h2>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Amazon Web Services provides Auto Scaling that monitors your applications and automatically adjusts capacity to maintain steady, predictable performance at the lowest possible cost. It ensures that your auto scaling group retains predefined minimum instance counts when scaling in occurs and stops the launching of further instances during scaling out process when maximum instance limit is achieved.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><b>Benefits of Auto Scaling:<\/b><\/h3>\n<p>&nbsp;<\/p>\n<ul>\n<li>Better fault tolerance<\/li>\n<li>High availability<\/li>\n<li>Better cost management<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><b>AWS Auto Scaling with Magento 2 Multi Vendor Marketplace<\/b><\/h2>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>In this blog, we will discuss the architecture layout for building a highly available Magento 2 Multi Vendor Marketplace store.<\/p>\n<p><span style=\"font-weight: 400;\">Standalone AWS autoscaling service would not be enough due to the need of other AWS service as well to complete architecture setup. Since scope of the architecture shouldn&#8217;t be for one time setup only, we have to devise a way so that our application faces zero or minimum downtime during an update, be it code or server dependencies.\u00a0<\/span><\/p>\n<p>In addition to this, code build (or update) process should be automated to an extent that concerning developers could focus on their application, not bothering about underlying architecture.<\/p>\n<p>&nbsp;<\/p>\n<h3><b>Architecture Components:<\/b><\/h3>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Source Code Management System (GIT)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Elastic Load Balancer<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Elastic File System\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Auto Scaling Group<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Cloudwatch<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">AWS SDK for python (BOTO)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Magento 2 Multi-Vendor Marketplace Staging Server<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Our Application code (Magento 2 Multi Vendor Marketplace files) would be managed by a Source Code Management System like <\/span><b>GitLab<\/b><span style=\"font-weight: 400;\"> or Github. A webhook will be configured that will trigger when development branch is merged with Master. We will discuss about webhook integration later in this blog.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As to ensure load balancing among various identical servers, we would be using <\/span><b>Elastic Load Balancer<\/b><span style=\"font-weight: 400;\"> to distribute incoming traffic evenly among all the instances. Here we are using Classic Load Balancer.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Since, we would be having multiple EC instances, there should be a centralised files system where we could put our media files. For ensuring this, we would be using AWS <\/span><b>Elastic File System<\/b><span style=\"font-weight: 400;\">. Magento 2 pub\/media folder will reside in this and it would be mounted on all the instances.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We would be using <\/span><b>Auto scaling <\/b><span style=\"font-weight: 400;\">to launch and terminate instances as per scaling policies. These instances would be added under elastic load balancer by themselves and would fetch media files from EFS.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We would need to setup <\/span><b>Cloudwatch Alarms<\/b><span style=\"font-weight: 400;\"> to trigger Scaling policies. Here we are using alarms for CPU utilisation monitoring.<\/span><\/p>\n<p><b>AWS SDK for python (BOTO)<\/b><span style=\"font-weight: 400;\"> would be needed to automate the process of updating ec2 AMI, Load balancer, Autoscaling group etc whenever a webhook is triggered from GitLab.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">And Ofcourse we would need an <\/span><b>Staging server of Magento 2<\/b><span style=\"font-weight: 400;\"> for initial server setup before automating the whole build process.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">An illustration for proposed architecture is shown below:<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2018\/04\/finalarchitecture.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3682\" src=\"https:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2018\/04\/finalarchitecture.png\" alt=\"\" width=\"1161\" height=\"828\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><b>Initial Server Setup<\/b><\/h2>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>So we have drawn the layout of our architecture, next step would be setting it up and connecting all the components of architecture.<\/p>\n<p>&nbsp;<\/p>\n<h3><b>(a) GITLAB Setup:<\/b><\/h3>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Set up a GitLab server on an EC2 Instance.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Create users and grant them proper privileges.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Create a Project from Magento 2. (let us say: <\/span><b>Magento2-Marketplace<\/b><span style=\"font-weight: 400;\">) <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Add your ssh public keys on GitLab.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><b>(b) Magento 2 Staging Server Setup:<\/b><\/h3>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Install LAMP and other server dependencies for Magento 2 on a freshly launched EC2 Instance.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Create a user and its public ssh keys on GitLab.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Download and install required version of <strong>Magento 2 with Multi Vendor Marketplace module<\/strong>.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Hit your Domain name and check if Magento 2 is running okay and note all the server credentials.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><b>(c)<\/b> <b>Linking Magento 2 with GITLAB:<\/b><\/h3>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Login to GitLab server via ssh and Copy ssh id to Magento 2 staging server. (<\/span><b>ssh-copy-id user@ip_address<\/b><span style=\"font-weight: 400;\">)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Upload Magento 2 Marketplace files on GitLab project.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Create a Development branch from Master branch. Later we will configure webhooks for development to master branch merge requests. <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Create a user (let\u2019s say: <\/span><b>deploy_use<\/b><span style=\"font-weight: 400;\">r) and share its ssh id as well on Magento staging (<\/span><b>This step will be explained later<\/b><span style=\"font-weight: 400;\">).<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><b>(d) Setup AWS EFS to store media Files:<\/b><\/h3>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Create an AWS Elastic File System in the same VPC as your Magento 2 staging Instance with required availability zones.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Manage security groups to allow traffic from EC2 instance to EFS and vice-versa.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Login to your Magento 2 staging server and Install NFS client.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Mount Magento 2 media directory: <\/span><b>pub\/media<\/b><span style=\"font-weight: 400;\"> on EFS.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Create entry in either <\/span><b>\/etc\/fstab <\/b><span style=\"font-weight: 400;\">or <\/span><b>\/etc\/rc.local<\/b><span style=\"font-weight: 400;\"> to remount media directory at boot time.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><b>(e) Setup AWS Elastic Load Balancer:<\/b><\/h3>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Create an Internet facing Classic Load Balancer (let\u2019s say: <\/span><b>magento-elb<\/b><span style=\"font-weight: 400;\">) for all the availability zones within the region.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Configure ports, health checks, and assign security group same as that of Magento 2 staging server.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Add Magento 2 staging server instance in the load balancer.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Create a CNAME (or A) entry for load balancer DNS name mapped with your domain name in your DNS panel.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><b>(f) Create EC2 Instance AMI and configure Launch Configuration:<\/b><\/h3>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Create AMI of Magento 2 Staging Server and note AMI id (let\u2019s say: <\/span><b>ami-staging<\/b><span style=\"font-weight: 400;\">).<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Using this AMI (ami-staging), setup a launch configuration by defining its name, EC2 instance type, storage, security groups (same as that of magento 2 staging server), ssh key etc.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><b>(g) Setup Auto Scaling Group and Cloudwatch Alarms:<\/b><\/h3>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Create Cloudwatch alarms for High CPU and low CPU monitoring. (<\/span><b>Let\u2019s say an Alarm for high CPU will trigger when CPU load average will be above 5 and an Alarm from low CPU will trigger when CPU load average will be below 5<\/b><span style=\"font-weight: 400;\">).<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Set up an Auto scaling group (let\u2019s say: <\/span><b>magento-asg<\/b><span style=\"font-weight: 400;\">) with group size of desired number of instances and link this autoscaling group with your elastic load balancer (<\/span><b>magento-elb<\/b><span style=\"font-weight: 400;\">).<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Define Scaling Policies. Create simple scaling policies by using cloudwatch alarms as scale up Auto scaling group by launching one instance whenever High CPU load alarm is triggered and scale down \u00a0Auto scaling group by terminating one instance whenever Low CPU load alarm is triggered.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Depending upon the group size, minimum instance value, maximum instance value and desired value set in auto scaling group, autoscaling group (<\/span><b>magento-asg<\/b><span style=\"font-weight: 400;\">) will launch an EC2 instance using AMI (<\/span><b>ami-staging<\/b><span style=\"font-weight: 400;\">) from the launch configuration and will add it under Elastic load balancer (<\/span><b>magento-elb<\/b><span style=\"font-weight: 400;\">).<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">As soon as Instance within Autoscaling group comes inservice under Elastic load balancer, we can detach our Magento 2 staging server and stop (optional) it.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><b>(h) Setup Python SDK scripts for EC2 AMI update:<\/b><\/h3>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Set up an environment to run AWS SDK tool for python which is Boto. We can either setup new server or we can install these tools on the same server where our GitLab has been installed. GitLab will run on port 80 and a apache2 server will be installed where these tools will be triggered on port other than 80. Install python and boto packages.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">To use AWS SDK tool from command line, create an IAM user and grant it Full EC2 Access. Download<\/span><b> Access key Id<\/b><span style=\"font-weight: 400;\"> and <\/span><b>Secret Access key<\/b><span style=\"font-weight: 400;\">. Using these credentials Client will communicate with AWS servers to deploy scripts.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Create a .boto file and store IAM credentials in it. Then place this file in the root of the ssh user<\/span><b> (deploy_user)<\/b><span style=\"font-weight: 400;\"> which will run python scripts. Before running these scripts, store the name of AMI ( <\/span><b>ami-staging, <\/b><span style=\"font-weight: 400;\">which is stored in launch configuration) in file or database. This image id will be retrieved by Python scripts for processing.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Create a file, say trigger.php which will be hit whenever a webhook is triggered from GitLab. This file will check if it has headers for open merge request or merged and will run the python sdk scripts for merged request.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Go to your GitLab panel and configure webhooks in <\/span><b>Settings &gt; Integration<\/b><span style=\"font-weight: 400;\"> Section. Webhook will be triggered whenever a merge request is opened or merged. Mention the URL in the webhook and test it (let\u2019s say url is <\/span><b>X.X.X.X:8020\/merge.php<\/b><span style=\"font-weight: 400;\">).<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><b>EC2 AMI Update Workflow<\/b><\/h2>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">So far, all the servers have been set and our Magento 2 server is running as a Staging server with Marketplace module. Next step is to deploy our server as a production environment.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Pull the development branch from the repository and make some changes in files.<\/span><\/p>\n<p>Push the code back to the development branch in repository and create a merge request. When development branch is merged to Master branch, webhook will get triggered. This webhook in return will trigger python sdk scripts.<\/p>\n<p><span style=\"font-weight: 400;\">On triggering Webhook for a request merged, scripts will do the following jobs:-<\/span><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Gets current AMI id from file or database and launches an Intermediate Instance.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Pulls the updated code from GitLab in the instance and compile it, deploy it and set it in production mode. Creates a new AMI of this instance (<\/span><b>ami-prod<\/b><span style=\"font-weight: 400;\">).<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Creates a new Launch Configuration using new AMI (<\/span><b>ami-prod<\/b><span style=\"font-weight: 400;\">), adds it to Autoscaling group \u00a0(<\/span><b>magento-asg<\/b><span style=\"font-weight: 400;\">) and deletes the old one.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Adds the intermediate instance to the load balancer (<\/span><b>magento-elb<\/b><span style=\"font-weight: 400;\">) and removes &amp; terminates the old instances.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Removes &amp; terminates Instances from Autoscaling group (<\/span><b>magento-asg<\/b><span style=\"font-weight: 400;\">) and waits for the instances get launched from Launch Configuration having new AMI (<\/span><b>ami-prod<\/b><span style=\"font-weight: 400;\">).<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">As soon as Instances get launched from new AMI (<\/span><b>ami-prod<\/b><span style=\"font-weight: 400;\">) and get Inservice under Elastic load balancer (<\/span><b>magento-elb<\/b><span style=\"font-weight: 400;\">), it removes the intermediate instance from the load balancer and terminates it.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Updates AMI id (<\/span><b>ami-prod<\/b><span style=\"font-weight: 400;\">) in the file or database to be fetched next time the webhook is triggered.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">However if there\u2019s is any requirements to install server dependencies and other packages, login to existing Magent 2\u00a0 server, do the needful and create AMI of the instance. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Then updates AMI id in the file or database to be fetched next time the webhook is triggered.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The complete flowchart for the whole workflow:<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2018\/04\/workflow_flowchart.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3683 alignnone\" src=\"https:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2018\/04\/workflow_flowchart.png\" alt=\"\" width=\"1170\" height=\"947\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><b>Testing Auto Scaling and Elastic Load Balancing<\/b><\/h2>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">To check if auto scaling is working or not, we can use siege tool for benchmarking. Siege tool will generate huge amount of requests within a short period of time which in turn will raise CPU load average.<\/span><\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:default decode:true\">siege -c 500 -t 30s https:\/\/yourdomainname.com\/<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Then as CPU load average will go beyond 5, it triggers high CPU Cloudwatch alarm which in turn notify autoscaling group to launch an EC2 instance and add it in load balancer.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As soon as load average will come below 5, it triggers Low CPU cloudwatch alarm, and autoscaling group will terminate one instance and will retain Auto scaling group size.<\/span><\/p>\n<p>Try configuring Cloudwatch alarms as for request counts, bandwidth, instance counts etc and benchmark with siege and other tools as well to ensure your application has high availability. Also please ensure that theload balancer is maintaining redundancy, distributing the traffic among instances under the load balancer.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0When it comes to high availability server architectures, couple of things that come in mind <a class=\"text-primary\" title=\"read more\" href=\"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[32,2,45,86,20,21,96,1],"tags":[17,41,16,4,144,84,3,48,90,33,42,23],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Magento 2 Multi Vendor marketplace - AWS Autoscaling - Cloudkul<\/title>\n<meta name=\"description\" content=\"Magento 2 Multi Vendor marketplace - AWS Autoscaling These high-level server architectures can be deployed for Magento 2 Multi Vendor marketplace as well. Magento 2 being one the fastest growing e-commerce platform, faces the challenges to handle its giant clients base.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Magento 2 Multi Vendor marketplace - AWS Autoscaling - Cloudkul\" \/>\n<meta property=\"og:description\" content=\"Magento 2 Multi Vendor marketplace - AWS Autoscaling These high-level server architectures can be deployed for Magento 2 Multi Vendor marketplace as well. Magento 2 being one the fastest growing e-commerce platform, faces the challenges to handle its giant clients base.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/\" \/>\n<meta property=\"og:site_name\" content=\"Cloudkul\" \/>\n<meta property=\"article:published_time\" content=\"2018-04-23T11:39:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-07-20T06:34:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2018\/04\/finalarchitecture.png\" \/>\n<meta name=\"author\" content=\"Alankrit Srivastava\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/\",\"url\":\"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/\",\"name\":\"Magento 2 Multi Vendor marketplace - AWS Autoscaling - Cloudkul\",\"isPartOf\":{\"@id\":\"https:\/\/cloudkul.com\/blog\/#website\"},\"datePublished\":\"2018-04-23T11:39:36+00:00\",\"dateModified\":\"2018-07-20T06:34:03+00:00\",\"author\":{\"@id\":\"https:\/\/cloudkul.com\/blog\/#\/schema\/person\/fc06bfd7f18d9a606dd94062d205af16\"},\"description\":\"Magento 2 Multi Vendor marketplace - AWS Autoscaling These high-level server architectures can be deployed for Magento 2 Multi Vendor marketplace as well. Magento 2 being one the fastest growing e-commerce platform, faces the challenges to handle its giant clients base.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Magento 2 Multi Vendor marketplace &#8211; AWS Autoscaling\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudkul.com\/blog\/#website\",\"url\":\"https:\/\/cloudkul.com\/blog\/\",\"name\":\"Cloudkul\",\"description\":\"Host your eCommerce Store on AWS with Optimized Performance\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudkul.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/cloudkul.com\/blog\/#\/schema\/person\/fc06bfd7f18d9a606dd94062d205af16\",\"name\":\"Alankrit Srivastava\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/955c3dda2678272c436c5153832e401f?s=96&d=https%3A%2F%2Fs.gravatar.com%2Favatar%2F6148c37469011bc2f8e491ca8f5de495%3Fs%3D80&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/955c3dda2678272c436c5153832e401f?s=96&d=https%3A%2F%2Fs.gravatar.com%2Favatar%2F6148c37469011bc2f8e491ca8f5de495%3Fs%3D80&r=g\",\"caption\":\"Alankrit Srivastava\"},\"description\":\"DevOps Manager at Webkul Software Privated Limited\",\"sameAs\":[\"http:\/\/cloudkul.com\"],\"url\":\"https:\/\/cloudkul.com\/blog\/author\/alankrit-srivastava256\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Magento 2 Multi Vendor marketplace - AWS Autoscaling - Cloudkul","description":"Magento 2 Multi Vendor marketplace - AWS Autoscaling These high-level server architectures can be deployed for Magento 2 Multi Vendor marketplace as well. Magento 2 being one the fastest growing e-commerce platform, faces the challenges to handle its giant clients base.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/","og_locale":"en_US","og_type":"article","og_title":"Magento 2 Multi Vendor marketplace - AWS Autoscaling - Cloudkul","og_description":"Magento 2 Multi Vendor marketplace - AWS Autoscaling These high-level server architectures can be deployed for Magento 2 Multi Vendor marketplace as well. Magento 2 being one the fastest growing e-commerce platform, faces the challenges to handle its giant clients base.","og_url":"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/","og_site_name":"Cloudkul","article_published_time":"2018-04-23T11:39:36+00:00","article_modified_time":"2018-07-20T06:34:03+00:00","og_image":[{"url":"https:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2018\/04\/finalarchitecture.png"}],"author":"Alankrit Srivastava","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/","url":"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/","name":"Magento 2 Multi Vendor marketplace - AWS Autoscaling - Cloudkul","isPartOf":{"@id":"https:\/\/cloudkul.com\/blog\/#website"},"datePublished":"2018-04-23T11:39:36+00:00","dateModified":"2018-07-20T06:34:03+00:00","author":{"@id":"https:\/\/cloudkul.com\/blog\/#\/schema\/person\/fc06bfd7f18d9a606dd94062d205af16"},"description":"Magento 2 Multi Vendor marketplace - AWS Autoscaling These high-level server architectures can be deployed for Magento 2 Multi Vendor marketplace as well. Magento 2 being one the fastest growing e-commerce platform, faces the challenges to handle its giant clients base.","breadcrumb":{"@id":"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/cloudkul.com\/blog\/magento-2-multi-vendor-marketplace-aws-autoscaling\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Magento 2 Multi Vendor marketplace &#8211; AWS Autoscaling"}]},{"@type":"WebSite","@id":"https:\/\/cloudkul.com\/blog\/#website","url":"https:\/\/cloudkul.com\/blog\/","name":"Cloudkul","description":"Host your eCommerce Store on AWS with Optimized Performance","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudkul.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/cloudkul.com\/blog\/#\/schema\/person\/fc06bfd7f18d9a606dd94062d205af16","name":"Alankrit Srivastava","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/955c3dda2678272c436c5153832e401f?s=96&d=https%3A%2F%2Fs.gravatar.com%2Favatar%2F6148c37469011bc2f8e491ca8f5de495%3Fs%3D80&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/955c3dda2678272c436c5153832e401f?s=96&d=https%3A%2F%2Fs.gravatar.com%2Favatar%2F6148c37469011bc2f8e491ca8f5de495%3Fs%3D80&r=g","caption":"Alankrit Srivastava"},"description":"DevOps Manager at Webkul Software Privated Limited","sameAs":["http:\/\/cloudkul.com"],"url":"https:\/\/cloudkul.com\/blog\/author\/alankrit-srivastava256\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/posts\/3681"}],"collection":[{"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/comments?post=3681"}],"version-history":[{"count":34,"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/posts\/3681\/revisions"}],"predecessor-version":[{"id":3743,"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/posts\/3681\/revisions\/3743"}],"wp:attachment":[{"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/media?parent=3681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/categories?post=3681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/tags?post=3681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}