{"id":26129493,"url":"https://github.com/mathworks-ref-arch/matlab-production-server-on-aws","last_synced_at":"2025-10-09T12:34:43.799Z","repository":{"id":40793548,"uuid":"132648765","full_name":"mathworks-ref-arch/matlab-production-server-on-aws","owner":"mathworks-ref-arch","description":"Stand up a MATLAB Production Server using CloudFormation","archived":false,"fork":false,"pushed_at":"2025-07-21T22:51:52.000Z","size":2275,"stargazers_count":26,"open_issues_count":1,"forks_count":9,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-07-22T01:27:11.378Z","etag":null,"topics":["aws","cloudformation","matlab","matlab-aws"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mathworks-ref-arch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-05-08T18:26:52.000Z","updated_at":"2025-07-04T19:30:58.000Z","dependencies_parsed_at":"2024-02-29T19:29:42.165Z","dependency_job_id":"d7a6d8c4-c4cf-45d7-b225-e7a5bc17f069","html_url":"https://github.com/mathworks-ref-arch/matlab-production-server-on-aws","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mathworks-ref-arch/matlab-production-server-on-aws","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathworks-ref-arch%2Fmatlab-production-server-on-aws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathworks-ref-arch%2Fmatlab-production-server-on-aws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathworks-ref-arch%2Fmatlab-production-server-on-aws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathworks-ref-arch%2Fmatlab-production-server-on-aws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mathworks-ref-arch","download_url":"https://codeload.github.com/mathworks-ref-arch/matlab-production-server-on-aws/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathworks-ref-arch%2Fmatlab-production-server-on-aws/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001435,"owners_count":26083078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","cloudformation","matlab","matlab-aws"],"created_at":"2025-03-10T19:49:10.965Z","updated_at":"2025-10-09T12:34:43.786Z","avatar_url":"https://github.com/mathworks-ref-arch.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MATLAB Production Server on Amazon Web Services\n\n# Requirements\n\nBefore starting, you need the following:\n\n-   A MATLAB® Production Server™ license that meets these conditions:\n    - Linked to a MathWorks Account.\n    - Concurrent license type. To check your license type, see [MathWorks License Center](https://www.mathworks.com/licensecenter/).\n    - Configured to use a network license manager on the virtual network. By default, the deployment of MATLAB Production Server includes a network license manager, but you can also use an existing license manager. In either case, activate or move the license after deployment. For details, see [Configure MATLAB Production Server License for Use on the Cloud](https://www.mathworks.com/help/mps/server/configure-matlab-production-server-license-for-use-on-the-cloud.html).\n-   An Amazon Web Services™ (AWS) account. If you do not have an account, create one at https://aws.amazon.com by following the on-screen instructions.\n\nIf you do not have a license, please contact your MathWorks representative [here](https://www.mathworks.com/company/aboutus/contact_us/contact_sales.html) or [request a trial license](https://www.mathworks.com/campaigns/products/trials.html?prodcode=PR). \n\n# Costs\nYou are responsible for the cost of the AWS services used when you create cloud resources using this guide. Resource settings, such as instance type, affect the cost of deployment. For cost estimates, see the pricing pages for each AWS service you will be using. Prices are subject to change.\n\n\n# Introduction\nUse this guide to automate running MATLAB Production Server\non the Amazon Web Services (AWS) Cloud using an AWS CloudFormation template.\nThe template is a JSON file that defines the resources required to deploy and manage MATLAB Production\nServer on AWS. Once deployed, you can manage the server using the\nMATLAB Production Server dashboard\u0026mdash;a web-based interface to\nconfigure and manage server instances on the cloud. For more information, see [Manage MATLAB Production Server Using the Dashboard](https://www.mathworks.com/help/mps/server/manage-matlab-production-server-using-the-dashboard.html).\nFor information about the architecture of this solution, see [Architecture and Resources](#architecture-and-resources). For information about AWS templates, see [Working with AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html). \u003cbr\u003e\n\nThe default MATLAB Production Server deployment template uses the Network License Manager for MATLAB reference architecture to manage MATLAB Production Server licenses. The template for using an exisitng VPC for the deployment provides an option to either deploy the Network License Manager or use your own license server. For more information about the Network License Manager for MATLAB reference architecture, see [Network License Manager for MATLAB on Amazon Web Services](https://github.com/mathworks-ref-arch/license-manager-for-matlab-on-aws).\n\n# Prepare Your AWS Account\n1. In the top navigation of your AWS account, select the region where you want to deploy MATLAB Production Server. You must select one of these supported regions:\u003cul\u003e\u003cli\u003e**US-East (N. Virginia)**\u003c/li\u003e\u003cli\u003e**US-West (Oregon)** \u0026mdash; R2022b or later only\u003c/li\u003e\u003cli\u003e**Europe (Ireland)**\u003c/li\u003e\u003cli\u003e**Asia Pacific (Tokyo)**\u003c/li\u003e\u003c/ul\u003e\n1. Create a [key pair](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in that region.  The key pair is necessary because it is the only way to connect to the instance as an administrator.\n1. If necessary, [request a service limit increase](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase) for the Amazon EC2 instance type or VPCs.  You might need to do this if you already have existing deployments that use that instance type or you think you might exceed the [default limit](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html) with this deployment.\n\n# Deploy Reference Architecture for Your Release\nTo deploy the reference architecture, select your MATLAB Production Server release from the table and follow the instructions to deploy the server using the provided template. A deployment of MATLAB Production Server supports MATLAB Runtime versions up to six releases back.\n| Release | Supported MATLAB Runtime Versions | Status |\n| ------- | --------------------------------- | ------ |\n| [R2025b](releases/R2025b/README.md) | R2025b, R2025a, R2024b, R2024a, R2023b, R2023a | ✅ Template available. |\n| [R2025a](releases/R2025a/README.md) | R2025a, R2024b, R2024a, R2023b, R2023a, R2022b | ✅ Template available. |\n| [R2024b](releases/R2024b/README.md) | R2024b, R2024a, R2023b, R2023a, R2022b, R2022a | ✅ Template available. |\n| [R2024a](releases/R2024a/README.md) | R2024a, R2023b, R2023a, R2022b, R2022a, R2021b | ⚠️ Template will be removed in September 2026. |\n| [R2023b](releases/R2023b/README.md) | R2023b, R2023a, R2022b, R2022a, R2021b, R2021a | ⚠️ Template will be removed in March 2026. |\n\n\u003e **Note**: MathWorks provides templates for only the six most recent releases of MATLAB Production Server. Earlier templates are removed and are no longer supported.\n# Architecture and Resources\nDeploying this reference architecture creates several resources in your\nresource group.\n\n\n![Architecture](/releases/R2025b/images/mps_ref_arch_aws_diagram.png?raw=true)\n\n*Architecture on AWS*\n\n### Resources\n\n| Resource Type                                                              | Number of Resources | Description                                                                                                                                                                                                                                                                                                                        |\n|----------------------------------------------------------------------------|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| AWS EC2 Instance                                                           | 2                   | This resource consists of two virtual machines (VMs):\u003cul\u003e\u003cli\u003eA VM that hosts the MATLAB Production Server Dashboard. Use the dashboard to: \u003cul\u003e\u003cli\u003eGet the HTTPS endpoint to make requests\u003c/li\u003e\u003cli\u003e Upload applications (CTF files) to the server\u003c/li\u003e\u003cli\u003e Manage server configurations\u003c/li\u003e\u003cli\u003e Manage the HTTPS certificate\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eFor more information, see [Manage MATLAB Production Server Using the Dashboard](https://www.mathworks.com/help/mps/server/manage-matlab-production-server-using-the-dashboard.html).\u003c/li\u003e\u003cli\u003eA VM that hosts the Network License Manager for MATLAB. For more information, see [Network License Manager for MATLAB](https://github.com/mathworks-ref-arch/license-manager-for-matlab-on-aws).\u003c/li\u003e\u003c/ul\u003e   |\n| Auto Scaling Group                                                         | 1                   | Manages the number of identical VMs to be deployed. Each VM runs an instance of MATLAB Production Server which in turn runs multiple MATLAB workers.                                                                                                                                                                               |\n| Load Balancer                                                              | 2                   | Provides routing and load balancing services to MATLAB Production Server instances. The MATLAB Production Server Dashboard retrieves the HTTPS endpoint for making requests to the server from the load balancer resource.\u003cp\u003e\u003c/p\u003e                                                                                           |\n| S3 Bucket                                                                  | 1                  | S3 storage bucket created during the creation of the stack. This resource stores the applications deployed to the reference architecture.                                                                                                                                                                                                  |\n| Virtual Private Cloud (VPC)                                              | 1                   | Enables resources to communicate with each other.                                           |\n| Redis ElastiCache | 1 | Enables caching of data between calls to MATLAB code running on a server instance. |\n| CloudWatch | 1 | Enables viewing of logs. |\n\n# FAQ\n\n## Why do requests to the server fail with errors such as “untrusted certificate” or “security exception”?  \nThese errors occur either when CORS is not enabled on the server or when the server endpoint uses a self-signed certificate. \n\nIf you are making an AJAX request to the server, make sure that CORS is enabled in the server configuration. You can enable CORS by editing the property `CORS Allowed Origins` property in the **Settings** tab of the dashboard.\n\nAlso, some HTTP libraries and JavaScript AJAX calls will reject a request originating from a server that uses a self-signed certificate. You may need to manually override the default security behavior of the client application. Alternatively, you can add a new HTTPS endpoint to the application gateway. For more information, see [Change SSL Certificate](https://www.mathworks.com/help/mps/server/manage-aws-resources-reference-architecture.html#mw_51d64616-777c-4e15-af40-ab3d8dcc418f). \n\n\n## How do I allow multiple IP address ranges access to the dashboard?\nThe deployment template allows you to enter only one range of IP addresses that can access the dashboard. After the deployment is complete, you can allow additional IP ranges access to the dashboard. For details, see \n[Update security group rules](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#updating-security-group-rules) in the AWS documentation.\n\nThe name of the security group to update is ``` matlab-production-server-cloud-stack-elb-1-sg```. Edit inbound rules to add additional IP address ranges in CIDR format for the ```HTTPS``` type.\n\n## How do I upgrade an existing deployment to a newer MATLAB version?\nUse the instructions at this link to upgrade an existing deployment to a newer MATLAB version: [Upgrading an Existing Deployment](UPGRADES.md).\n\n# Enhancement Request\nProvide suggestions for additional features or capabilities using this link: https://www.mathworks.com/solutions/cloud.html.\n\n# Technical Support\nIf you require assistance or have a request for additional features or capabilities, please contact [MathWorks Technical Support](https://www.mathworks.com/support/contact_us.html).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathworks-ref-arch%2Fmatlab-production-server-on-aws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathworks-ref-arch%2Fmatlab-production-server-on-aws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathworks-ref-arch%2Fmatlab-production-server-on-aws/lists"}