diff --git a/README.md b/README.md index fa21612..fa06189 100644 --- a/README.md +++ b/README.md @@ -20,10 +20,10 @@ You are responsible for the cost of the AWS services used when you create cloud The following guide will help you automate the process of running MATLAB Production Server on the Amazon Web Services (AWS) Cloud. The automation is accomplished using an AWS CloudFormation template. The template is a JSON -file that defines the resources needed to deploy and manage MATLAB Production +file that defines the resources required to deploy and manage MATLAB Production Server on AWS. Once deployed, you can manage the server using the -MATLAB Production Server cloud console—a web-based interface to -configure and manage server instances on the cloud. For more information, see [MATLAB Production Server Cloud Console User Guide](/releases/R2021a/doc/cloudConsoleDoc.md#matlab-production-server-cloud-console-users-guide). +MATLAB Production Server dashboard—a web-based interface to +configure 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). For information about the architecture of this solution, see [Architecture and Resources](#architecture-and-resources). For information about AWS templates, see [AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html).
The 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](https://github.com/mathworks-ref-arch/license-manager-for-matlab-on-aws). @@ -36,81 +36,64 @@ The default MATLAB Production Server deployment template uses the Network Licens # Deployment Steps -## Step 1. Launch the Template +## Step 1. Launch Template Click the **Launch Stack** button to deploy resources on AWS. This will open the AWS Management Console in your web browser. | Release | Windows Server 2019 or Ubuntu 18.04 VM | |---------------|------------------------| -| MATLAB R2021a | | +| MATLAB R2021b | | For other releases, see [How do I launch a template that uses a previous MATLAB release?](#how-do-i-launch-a-template-that-uses-a-previous-matlab-release)

Note: Creating a stack on AWS can take at least 20 minutes.

-## Step 2. Configure the Stack +## Step 2. Configure Stack 1. Provide values for parameters in the **Create Stack** page: | Parameter Name | Value | |----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| - | **Stack name** | Choose a name for the stack. This will be shown in the AWS console.

*Example*: Boston

| - | |**Remote access**| - | **Name of Existing Key Pair** | Choose the name of an existing EC2 Key Pair to allow access to all the VMs in the stack. For information about creating an Amazon EC2 key pair, see [Amazon EC2 Key Pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair).

*Example*: boston-keypair

| - | **Allow connections from IP Address** | This is the IP address range that will be allowed to connect to the cloud console that manages the server. The format for this field is IP Address/Mask.

Example:

10.0.0.1/32

| - | **Make Solution Available over Internet** | Choose 'Yes' if you want your solution to use public IP addresses. | + | **Stack name** | Choose a name for the stack. After the deployment finishes, this name is displayed in the AWS console.

*Example*: Boston

| ||**Server**| | **Number of Server VMs** | Choose the number of AWS instances to start for the server.

*Example*: 6

If you have a standard 24 worker MATLAB Production Server license and select `m5.xlarge` (4 cores) as the **Number of server VMs**, you need 6 worker nodes to fully utilize the workers in your license.

You can always under provision the number instances, in which case you may end up using fewer workers than you are licensed for.

| | **Server VM Type** | Choose the AWS instance type to use for the server instances. All AWS instance types are supported. For more information, see [Amazon EC2 Instance Types](https://aws.amazon.com/ec2/instance-types/).

*Example*: m5.xlarge

| | **Server VM Operating System** | Choose between Windows (Windows Server) and Linux(Ubuntu) to use for the server instances. | - | **ARN of SSL Certificate** | Provide the Amazon Resource Name (ARN) of an existing certificate in the AWS Certificate Manager to enable secure HTTPS communication to the HTTPS server endpoint. This field is optional and may be left blank to use HTTP communication instead. For more information, see [Create Self-signed Certificate](/README.md#create-self-signed-certificate) and [Upload Self-signed Certificate to AWS Certificate Manager](/README.md#upload-self-signed-certificate-to-aws-certificate-manager).

*Example*: 123456789012

| - | **Create Redis ElastiCache** | Choose whether you want to create a Redis ElastiCache service. Creating this service will allow you to use the persistence functionality of the server. Persistence provides a mechanism to cache data between calls to MATLAB code running on a server instance. | - ||**Network License Manager for MATLAB**| - | **Password** | Enter the password to use for logging in to the Network License Manager for MATLAB dashboard. | - | **Confirm Password** | Reenter the password to log in to the Network License Manager for MATLAB dashboard. | + | **Create Redis ElastiCache** | Choose whether you want to create a Redis ElastiCache service. Creating this service will allow you to use the persistence functionality of the server. Persistence provides a mechanism to cache data between calls to MATLAB code running on a server instance. | + | **Deploy License Server** | Specify whether you want to deploy the Network License Manager for MATLAB. This parameter is available only if you use the deployment template for an existing VPC.

You can deploy a license server only if your solution uses public IP adresses. If your solution uses private IP addresses, you must separately deploy a license server in a public subnet.

| + ||**Dashboard Login**| + | **Username for MATLAB Production Server Dashboard** | Specify the administrator user name to log in to the MATLAB Production Server dashboard. | + | **Password for MATLAB Production Server and License Server** | Enter the password to use for logging in to MATLAB Production Server dashboard and the Network License Manager for MATLAB dashboard. | + | **Confirm Password MATLAB Production Server and License Server** | Reenter the password to log in to the MATLAB Production Server dashboard and the Network License Manager for MATLAB dashboard. | + | |**Network**| + | **Name of Existing Key Pair** | Choose the name of an existing EC2 Key Pair to allow access to all the VMs in the stack. For information about creating an Amazon EC2 key pair, see [Amazon EC2 Key Pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair).

*Example*: boston-keypair

| + | **Allow Connections from IP Address** | Specify the IP address range that is allowed to connect to the dashboard that manages the server. The format for this field is IP Address/Mask.

Example:

10.0.0.1/32

| + | **Make Solution Available over Internet** | Choose 'Yes' if you want your solution to use public IP addresses. | + | **ARN of SSL Certificate** | Provide the Amazon Resource Name (ARN) of an existing certificate in the AWS Certificate Manager to enable secure HTTPS communication to the HTTPS server endpoint. For information on creating and uploading a self-signed certificate, see [Create and Sign an X509 Certificate](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html) and [Import SSL Certificate]().

*Example*: arn:aws:acm:us-east-1:12345:certificate/123456789012

| + >**Note**: Make sure you select US East (N.Virginia), EU (Ireland) or Asia Pacific (Tokyo) as your region from the navigation panel on top. Currently, US East, EU (Ireland), and Asia Pacific (Tokyo) are the only supported regions. -2. Tick the box to accept that the template uses IAM roles. For more information about IAM, see [IAM FAQ](https://aws.amazon.com/iam/faqs). - -3. Click the **Create** button. The CloudFormation service will start creating the resources for the stack. +2. Click **Next** to continue configuring stack options. Configuring stack options is optional. You can leave all fields blank or enter values based on your requirement. Click **Next** to review your stack details and stack options. + +4. Review or edit your stack details and any stack options that you set. You must select the acknowledgement to create IAM resources. Otherwise, the deployment produces a `Requires capabilities : [CAPABILITY_IAM]` error and fails to create resources. -## Step 3. Upload the License File -1. Clicking **Create** takes you to the *Stack Detail* page for your stack. Wait for the Status to reach **CREATE\_COMPLETE**. This can take up to 20 minutes. + When you are satisfied with your stack configuration, click **Create stack** to start the creation of AWS resources for your server environment. Resource creation can take up to 20 minutes. After resource creation, it can take up to 15 minutes for the resources to be active. + +## Step 3. Upload License File +1. Clicking **Create stack** takes you to the *Stack Detail* page for your stack. Wait for the status to reach **CREATE\_COMPLETE**. 1. In the Stack Detail for your stack, click **Outputs**. -1. Look for the key named `MatlabProductionServerLicenseServer` and click the corresponding URL listed under value. This will take you to Network License Manager for MATLAB dashboard log in page. +1. Look for the key named `MatlabProductionServerLicenseServer` and click the corresponding URL listed under value. Doing so takes you to Network License Manager for MATLAB dashboard log in page. 1. The user name for the Network License Manager for MATLAB dashboard is **manager**. For the password, enter the password that you entered in the **Network License Manager for MATLAB** section while creating the stack in [Step 2](#step-2-configure-the-stack). 1. Follow the instructions to upload your MATLAB Production Server license. -## Step 4. Get the Password to the Cloud Console -1. In the AWS management console, select the stack that you deployed. -1. In the Stack Detail for your stack, expand the **Outputs** section. -1. Look for the key named `MatlabProductionServerInstance` and click the corresponding URL listed under value. This will take you to the server instance (`matlab-production-server-vm`) page. -1. Click the **Connect** button at the top. -1. In the *Connect To Your Instance* dialog box, choose **Get Password**. -1. Click **Choose File** to navigate and select the private key file (`.pem` file) for the key pair that you used while creating the stack in [Step 2](#step-2-configure-the-stack). -1. Click **Decrypt Password**. The console displays the password for the instance in the *Connect To Your Instance* dialog box, replacing the link to *Get Password* shown previously with the actual password. -1. Copy the password to the clipboard. - - -## Step 5. Connect to the Cloud Console -> **Note**: The Internet Explorer web browser is not supported for interacting with the cloud console. +## Step 4. Connect and Log In to MATLAB Production Server Dashboard +> **Note**: The Internet Explorer web browser is not supported for interacting with the dashboard. 1. In the Stack Detail for your stack, expand the **Outputs** section. -1. Look for the key named `MatlabProductionServerCloudConsole` and click the corresponding URL listed under value. This is the HTTPS endpoint to the MATLAB Production Server Cloud Console. - - - -## Step 6. Log in to the Cloud Console -The username to the cloud console is **Administrator**. For the password, paste the password you copied to the clipboard by completing [Step 4](#step-4-get-the-password-to-the-cloud-console). The cloud console provides a web-based interface to configure and manage server instances on the cloud. For more information on how to use the cloud console, see [MATLAB Production Server Cloud Console User Guide](/releases/R2021a/doc/cloudConsoleDoc.md#matlab-production-server-cloud-console-users-guide). - -![MATLAB Production Server Cloud Console](/releases/R2021a/images/cloudConsoleLogin.png?raw=true) +1. Look for the key named `MatlabProductionServerDashboardURL` and click the corresponding URL listed under value. This is the HTTPS endpoint to the MATLAB Production Server dashboard. +1. Use the administrator user name and password that you specified in the dashboard login step of the deployment process to log in. For more information on how to use the dashboard, see [Manage MATLAB Production Server using Dashboard](https://www.mathworks.com/help/mps/server/manage-matlab-production-server-using-the-dashboard.html). You are now ready to use MATLAB Production Server on AWS. ->**Accept Terms and Conditions**: Access to and use of the MATLAB Production Server cloud console is governed by license terms in the file `C:\MathWorks\Cloud Console License.txt` (Linux: `/MathWorks/Cloud Console License.txt`) available on the `servermachine` in the resource group for this solution. - - ->**Note**: The cloud console uses a self-signed certificate which you can change. For information on changing the self-signed certificates, see [Change Self-signed Certificates](/releases/R2021a/doc/cloudConsoleDoc.md#change-self-signed-certificates). - To run applications on MATLAB Production Server, you need to create applications using MATLAB Compiler SDK. For more information, see [Deployable Archive Creation](https://www.mathworks.com/help/mps/deployable-archive-creation.html) in the MATLAB Production Server product documentation. # Additional Information @@ -124,8 +107,7 @@ If you are using an existing license server, and have added the security group o 1. In the stack detail for your stack, click **Resources**. 1. Look for the **Logical ID** named `SecurityGroup` and click the corresponding URL listed under **Physical ID**. This will take you to the security group details. 1. Click the **Inbound Rules** tab, then click **Edit Inbound Rules**. -1. Click **Delete Rule** for the rules that have the tag `matlab-production-server-cloud-stack-elb-1-sg` and ` -matlab-production-server-cloud-stack-elb-2-sg` as their **Source**. +1. Click **Delete Rule** for the rules that have the tag `matlab-production-server-cloud-stack-elb-1-sg` as their **Source**. 1. Click **Save Rules**. To delete the stack, do the following: @@ -135,50 +117,10 @@ To delete the stack, do the following: If you do not want to delete the entire deployment but want to minimize the cost, you can bring the number of instances in the Auto Scaling Group down to 0 and then scale it back up when the need arises. -## Security -When you run MATLAB Production Server on the cloud you get two HTTP/HTTPS endpoints. - -1. An HTTP/HTTPS endpoint to the application gateway/load balancer that connects the server instances. This endpoint is displayed in the home page of the cloud console and is used to make requests to the server. Whether the endpoint is HTTP or HTTPS depends on whether you provided a certificate during the creation of the stack. - -1. An HTTPS endpoint to the cloud console. This endpoint is used to connect to the cloud console. The cloud console comes with a self-signed certificate. - -For information on changing the self-signed certificates, see [Change Self-signed Certificates](/releases/R2021a/doc/cloudConsoleDoc.md#change-self-signed-certificates). - -### Create Self-signed Certificate -For information on creating a self-signed certificate, see [Create and Sign an X509 Certificate](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html). - -### Upload Self-signed Certificate to AWS Certificate Manager - -1. Open the AWS Certificate Manager. -2. Click the button at the top of the page to **Import a certificate**. -3. Copy the contents of the `.crt` file containing the certificate into the field labeled **Certificate body**. -4. Copy the contents of the `.pem` file containing the private key into the field labeled **Certificate private key**. -5. Leave the field labeled **Certificate chain** blank. -6. Click the button labeled **Review and import**. -7. Review the settings and click the **Import** button. -8. Copy the value of the Amazon Resource Name (ARN) field from the **Details** section of the certificate. - -The ARN value that you copied should be pasted into the **ARN of SSL Certificate** parameter of the template in [Step 2](#step-2-configure-the-stack). - -## View Logs -Logs are available in Amazon CloudWatch. -1. In the AWS management console, select the stack that you deployed. -1. In the Stack Detail for your stack, expand the **Outputs** section. -1. To view logs related to the cloud console and the MATLAB Production Server workers, look for the key named `MatlabProductionCloudConsoleWorkerLogGroup`, and click the corresponding URL listed under value. These logs contain information about user logins, deployed archives (CTF files), certificate changes, and user interface actions. -1. To view logs related to the server instance, look for the key named `MatlabProductionServerLogGroup`, and click the corresponding URL listed under value. - -## Upload Multiple Applications -You can upload multiple deployed archives (CTF files) using the Amazon S3 management console. -1. In the AWS management console, select the stack that you deployed. -1. In the Stack Detail for your stack, expand the **Outputs** section. -1. Look for the key named `MATLABProductionServerApplicationsBucket`, and click the corresponding URL listed under value. Doing so takes you to the S3 console. -1. In the S3 console, click **CTF**. -1. Click **Upload** > **Add Files** to select and upload applications. - ## Get License Server MAC Address The Network License Manager for MATLAB reference architecture manages the MATLAB Production Server license file. The deployment templates for the MATLAB Production Server reference architecture provide an option to deploy the license manager. You can also use an existing license manager that is located in the same VPC and the security group of the MATLAB Production Server instances. For more information about the Network License Manager for MATLAB reference architecture, see [Network License Manager for MATLAB](https://github.com/mathworks-ref-arch/license-manager-for-matlab-on-aws). ->**NOTE**: For a new license manager deployed with MATLAB Production Server, the license manager MAC address is available only after the deployment to the Cloud is complete. For information on deploying the solution, see [Deployment Steps](/README.md#deployment-steps). +>**NOTE**: For a new license manager deployed with MATLAB Production Server, the license manager MAC address is available only after the deployment to the cloud is complete. For information on deploying the solution, see [Deployment Steps](/README.md#deployment-steps). To get the MAC address of the license manager: 1. Log in to the Network License Manager for MATLAB dashboard. For a license manager deployed with the MATLAB Production Server deployment, use the following credentials:
@@ -191,7 +133,7 @@ Deploying this reference architecture will create several resources in your resource group. -![Architecture](/releases/R2021a/images/Architecture.png?raw=true) +![Architecture](/releases/R2021b/images/mps_ref_arch_aws_diagram.png?raw=true) *Architecture on AWS* @@ -199,9 +141,9 @@ resource group. | Resource Type | Number of Resources | Description | |----------------------------------------------------------------------------|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| AWS EC2 Instance | 2 |
  1. Virtual machine (VM) that hosts the MATLAB Production Server Cloud Console. Use the cloud console to:

    For more information, see [MATLAB Production Server Cloud Console User Guide](/releases/R2021a/doc/cloudConsoleDoc.md#matlab-production-server-cloud-console-users-guide).

  2. 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).
| +| AWS EC2 Instance | 2 |
  1. Virtual machine (VM) that hosts the MATLAB Production Server dashboard. Use the dashboard to:

    For more information, see [MATLAB Production Server Using the Dashboard](https://www.mathworks.com/help/mps/server/manage-matlab-production-server-using-the-dashboard.html).

  2. 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).
| | 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. | -| Load Balancer | 1 | Provides routing and load balancing service to MATLAB Production Server instances. The MATLAB Production Server cloud console retrieves the HTTP/HTTPS endpoint for making requests to the server from the load balancer resource.

**NOTE**: Provides HTTPS endpoint to the server for making requests.

| +| Load Balancer | 2 | Provides routing and load balancing service 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.

| | S3 Bucket | 1 | S3 storage bucket created during the creation of the stack where applications deployed to the reference architecture are stored. | | Virtual Private Cluster (VPC) | 1 | Enables resources to communicate with each other. | | Redis ElastiCache | 1 | Enables caching of data between calls to MATLAB code running on a server instance. | @@ -214,7 +156,7 @@ Use the following templates to launch the reference architecture within an exist | Release | Windows Server 2019 or Ubuntu 18.04 VM | |---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| R2021a | | +| R2021b | | In addition to the parameters specified in the section [Configure the Stack](#step-2-configure-the-stack), you will need to specify the following parameters in the template to use your existing VPC. @@ -222,8 +164,8 @@ In addition to the parameters specified in the section [Configure the Stack](#st |----------------------------------|--------------------------------------------------------------------------------| | Existing VPC ID | ID of your existing VPC. | | IP address range of existing VPC | IP address range from the existing VPC. To find the IP address range:
  1. Log in to the AWS Console.
  2. Navigate to the VPC dashboard and select your VPC.
  3. Click the **CIDR blocks** tab.
  4. The **IPv4 CIDR Blocks** gives the IP address range.
| -| Subnet 1 ID | ID of an existing subnet that will host the cloud console and other resources. | -| Subnet 2 ID | ID of an existing subnet that will host the application gateway. | +| Subnet 1 ID | ID of an existing subnet that will host the dashboard and other resources. | +| Subnet 2 ID | ID of an existing subnet that will host the application load balancer. | - If Subnet 1 and Subnet 2 are public, then you must connect the EC2 VPC endpoint and the AutoScaling VPC endpoint to the VPC. - If Subnet 1 and Subnet 2 are private, then you must either deploy a NAT gateway in the VPC, or connect all of the following endpoints to the VPC: @@ -238,10 +180,10 @@ You will also need to open the following ports in your VPC: | Port | Description | |------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `443` | Required for communicating with the cloud console. | -| `8000`, `8002`, `9910` | Required for communication between the cloud console and workers within the VPC. These ports do not need to be open to the internet. | +| `443` | Required for communicating with the dashboard and the MATLAB execution endpoint. | +| `8000`, `8002`, `9910` | Required for communication between the dashboard and workers within the VPC. These ports do not need to be open to the internet. | | `27000`, `50115` | Required for communication between the network license manager and the workers. | -| `3389` | Required for Remote Desktop functionality. This can be used for troubleshooting and debugging. | +| `22`, `3389` | Required for Remote Desktop functionality. This can be used for troubleshooting and debugging. | ### How to use an existing license server in an existing VPC? If you want to use an exisiting license server, select `No` for the *Deploy License Server* step of the deployment. @@ -253,23 +195,22 @@ To use an existing license server, you must add the security group of the server 1. Click the **Inbound Rules** tab, then click **Edit Inbound Rules**. 1. Click **Add Rule**. 1. In the **Type** dropdown, select ```All TCP```. -1. In the **Source**, search and add the ```matlab-production-server-cloud-stack-elb-1-sg``` and ```matlab-production-server-cloud-stack-elb-2-sg``` security groups. +1. In the **Source**, search and add the ```MatlabProductionServerCloudStackElb1Sg``` security group. 1. Click **Save Rules**. -You must also add the private IP address of the license server to the `--license` property in the server configuration file. +You must also add the private IP address of the license server to the `License Server` property in the **Settings** tab of the dashboard. Find the IP address of the license server from the AWS management console. 1. In the AWS management console, navigate to the EC2 dashboard. 1. Select the license server instance. 1. In the instance details, copy the value of **Private IPs**. For example, 172.30.1.126 -1. Add the private IP to the `--license` property. For example, `--license 27000@172.30.1.126`. For more information about editing the server configuration, see [Edit the Server Configuration](/releases/R2021a/doc/cloudConsoleDoc.md#edit-the-server-configuration). +1. Add the private IP to the `License Server` property. For example, ` 27000@172.30.1.126`. ## How do I launch a template that uses a previous MATLAB release? | Release | Windows Server VM | Ubuntu VM | |---------------|------------------------|-----------------| -| MATLAB R2019a | | | -| MATLAB R2019b | | | | MATLAB R2020a | | | | MATLAB R2020b | | | +| MATLAB R2021a | | | For more information, see [previous releases](/releases). @@ -277,11 +218,11 @@ For more information, see [previous releases](/releases). | Release | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | |---------------|----------------|----------------|----------------|----------------|----------------|----------------|----------------|----------------|----------------|---------------| -| MATLAB R2019a | R2016b | R2017a | R2017b | R2018a | R2018b | R2019a | | -| MATLAB R2019b | | R2017a | R2017b | R2018a | R2018b | R2019a | R2019b | -| MATLAB R2020a | | | R2017b | R2018a | R2018b | R2019a | R2019b | R2020a | -| MATLAB R2020b | | | | R2018a | R2018b | R2019a | R2019b | R2020a | R2020b | -| MATLAB R2021a | | | | | R2018b | R2019a | R2019b | R2020a | R2020b | R2021a | +| MATLAB R2019b | R2017a | R2017b | R2018a | R2018b | R2019a | R2019b | +| MATLAB R2020a | | R2017b | R2018a | R2018b | R2019a | R2019b | R2020a | +| MATLAB R2020b | | | R2018a | R2018b | R2019a | R2019b | R2020a | R2020b | +| MATLAB R2021a | | | | R2018b | R2019a | R2019b | R2020a | R2020b | R2021a | +| MATLAB R2021b | | | | | R2019a | R2019b | R2020a | R2020b | R2021a | R2021b| ## Why do requests to the server fail with errors such as “untrusted certificate” or “security exception”? @@ -289,16 +230,16 @@ For more information, see [previous releases](/releases). These errors result from either CORS not being enabled on the server or due to the fact that the server endpoint uses a self-signed certificate. -If 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` in the config file. For more information, see [Edit the Server Configuration](/releases/R2021a/doc/cloudConsoleDoc.md#edit-the-server-configuration). +If 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. Also, 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. Or you can add a new -HTTP/HTTPS endpoint to the application gateway. For more information, see [Create a Listener](/releases/R2021a/doc/cloudConsoleDoc.md#create-a-listener). +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). -## How do I allow multiple IP address ranges access to the cloud console? -The deployment template allows you to enter only one range of IP addresses that can access the cloud console. After the deployment is complete, you can allow additional IP ranges access to the cloud console. For details, see +## How do I allow multiple IP address ranges access to the dashboard? +The 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 [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. -The name of the security group to update is ``` matlab-production-server-cloud-stack-elb-1-sg```. Depending on whether your cloud console uses HTTP or HTTPS, edit inbound rules to add additional IP address ranges in CIDR format for either the ```HTTP``` type or the ```HTTPS``` type. +The 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. # Enhancement Request diff --git a/releases/R2021b/LICENSE.md b/releases/R2021b/LICENSE.md new file mode 100644 index 0000000..c896375 --- /dev/null +++ b/releases/R2021b/LICENSE.md @@ -0,0 +1,13 @@ +MATHWORKS CLOUD REFERENCE ARCHITECTURE LICENSE + +The files in this GitHub repository refer to commercial software products and services, virtual machine images, and related materials of The MathWorks, Inc. (“MathWorks Programs”). MathWorks Programs are separately licensed under the MathWorks Software License Agreement, available in the desktop installation of the MathWorks Programs or in the virtual machine image. The files in this GitHub repository may also refer to third-party software licensed under separate terms provided by such third parties. + +The following license terms apply only to the files in this GitHub repository, including files in this folder and its subfolders, and do not apply to MathWorks Programs. References to “software” and “code” in the following license terms refer to the files in this GitHub repository. + +Copyright (c) 2021, The MathWorks, Inc. +All rights reserved. +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +3. In all cases, the software is, and all modifications and derivatives of the software shall be, licensed to you solely for use in conjunction with MathWorks products and service offerings. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/releases/R2021b/README.md b/releases/R2021b/README.md new file mode 100644 index 0000000..fa06189 --- /dev/null +++ b/releases/R2021b/README.md @@ -0,0 +1,250 @@ +# MATLAB Production Server on Amazon Web Services + +# Requirements + +Before starting, you need the following: + +- A MATLAB® Production Server™ license that meets the following conditions: + - Current on Software Maintenance Service (SMS). + - Linked to a MathWorks Account. + - Concurrent license type. To check your license type, view your MathWorks Account. + - 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 Licensing on the Cloud](https://www.mathworks.com/help/licensingoncloud/matlab-production-server-on-the-cloud.html). +- An Amazon Web Services™ (AWS) account. +- A Key Pair for your AWS account in the US East (N. Virginia), EU (Ireland) or Asia Pacific (Tokyo) region. For more information, see [Amazon EC2 Key Pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html). + +# Costs +You are responsible for the cost of the AWS services used when you create cloud resources using this guide. Resource settings, such as instance type, will 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. + + +# Introduction +The following guide will help you automate the process of running MATLAB +Production Server on the Amazon Web Services (AWS) Cloud. The automation is +accomplished using an AWS CloudFormation template. The template is a JSON +file that defines the resources required to deploy and manage MATLAB Production +Server on AWS. Once deployed, you can manage the server using the +MATLAB Production Server dashboard—a web-based interface to +configure 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). +For information about the architecture of this solution, see [Architecture and Resources](#architecture-and-resources). For information about AWS templates, see [AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html).
+ +The 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](https://github.com/mathworks-ref-arch/license-manager-for-matlab-on-aws). + +# Prepare Your AWS Account +1. If you do not have an AWS account, create one at https://aws.amazon.com by following the on-screen instructions. +2. Use the regions selector in the navigation bar to choose **US-EAST (N. Virginia)**, **EU (Ireland)** or **Asia Pacific (Tokyo)**, as the region where you want to deploy MATLAB Production Server. +3. Create a [key pair](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in that region. The key pair is necessary as it is the only way to connect to the instance as an administrator. +4. If necessary, [request a service limit increase](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-) 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. + +# Deployment Steps + +## Step 1. Launch Template +Click the **Launch Stack** button to deploy resources on AWS. This will open the AWS Management Console in your web browser. + +| Release | Windows Server 2019 or Ubuntu 18.04 VM | +|---------------|------------------------| +| MATLAB R2021b | | + +For other releases, see [How do I launch a template that uses a previous MATLAB release?](#how-do-i-launch-a-template-that-uses-a-previous-matlab-release) +

Note: Creating a stack on AWS can take at least 20 minutes.

+ +## Step 2. Configure Stack +1. Provide values for parameters in the **Create Stack** page: + + | Parameter Name | Value | + |----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | **Stack name** | Choose a name for the stack. After the deployment finishes, this name is displayed in the AWS console.

*Example*: Boston

| + ||**Server**| + | **Number of Server VMs** | Choose the number of AWS instances to start for the server.

*Example*: 6

If you have a standard 24 worker MATLAB Production Server license and select `m5.xlarge` (4 cores) as the **Number of server VMs**, you need 6 worker nodes to fully utilize the workers in your license.

You can always under provision the number instances, in which case you may end up using fewer workers than you are licensed for.

| + | **Server VM Type** | Choose the AWS instance type to use for the server instances. All AWS instance types are supported. For more information, see [Amazon EC2 Instance Types](https://aws.amazon.com/ec2/instance-types/).

*Example*: m5.xlarge

| + | **Server VM Operating System** | Choose between Windows (Windows Server) and Linux(Ubuntu) to use for the server instances. | + | **Create Redis ElastiCache** | Choose whether you want to create a Redis ElastiCache service. Creating this service will allow you to use the persistence functionality of the server. Persistence provides a mechanism to cache data between calls to MATLAB code running on a server instance. | + | **Deploy License Server** | Specify whether you want to deploy the Network License Manager for MATLAB. This parameter is available only if you use the deployment template for an existing VPC.

You can deploy a license server only if your solution uses public IP adresses. If your solution uses private IP addresses, you must separately deploy a license server in a public subnet.

| + ||**Dashboard Login**| + | **Username for MATLAB Production Server Dashboard** | Specify the administrator user name to log in to the MATLAB Production Server dashboard. | + | **Password for MATLAB Production Server and License Server** | Enter the password to use for logging in to MATLAB Production Server dashboard and the Network License Manager for MATLAB dashboard. | + | **Confirm Password MATLAB Production Server and License Server** | Reenter the password to log in to the MATLAB Production Server dashboard and the Network License Manager for MATLAB dashboard. | + | |**Network**| + | **Name of Existing Key Pair** | Choose the name of an existing EC2 Key Pair to allow access to all the VMs in the stack. For information about creating an Amazon EC2 key pair, see [Amazon EC2 Key Pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair).

*Example*: boston-keypair

| + | **Allow Connections from IP Address** | Specify the IP address range that is allowed to connect to the dashboard that manages the server. The format for this field is IP Address/Mask.

Example:

10.0.0.1/32

| + | **Make Solution Available over Internet** | Choose 'Yes' if you want your solution to use public IP addresses. | + | **ARN of SSL Certificate** | Provide the Amazon Resource Name (ARN) of an existing certificate in the AWS Certificate Manager to enable secure HTTPS communication to the HTTPS server endpoint. For information on creating and uploading a self-signed certificate, see [Create and Sign an X509 Certificate](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html) and [Import SSL Certificate]().

*Example*: arn:aws:acm:us-east-1:12345:certificate/123456789012

| + + + >**Note**: Make sure you select US East (N.Virginia), EU (Ireland) or Asia Pacific (Tokyo) as your region from the navigation panel on top. Currently, US East, EU (Ireland), and Asia Pacific (Tokyo) are the only supported regions. + +2. Click **Next** to continue configuring stack options. Configuring stack options is optional. You can leave all fields blank or enter values based on your requirement. Click **Next** to review your stack details and stack options. + +4. Review or edit your stack details and any stack options that you set. You must select the acknowledgement to create IAM resources. Otherwise, the deployment produces a `Requires capabilities : [CAPABILITY_IAM]` error and fails to create resources. + + When you are satisfied with your stack configuration, click **Create stack** to start the creation of AWS resources for your server environment. Resource creation can take up to 20 minutes. After resource creation, it can take up to 15 minutes for the resources to be active. + +## Step 3. Upload License File +1. Clicking **Create stack** takes you to the *Stack Detail* page for your stack. Wait for the status to reach **CREATE\_COMPLETE**. +1. In the Stack Detail for your stack, click **Outputs**. +1. Look for the key named `MatlabProductionServerLicenseServer` and click the corresponding URL listed under value. Doing so takes you to Network License Manager for MATLAB dashboard log in page. +1. The user name for the Network License Manager for MATLAB dashboard is **manager**. For the password, enter the password that you entered in the **Network License Manager for MATLAB** section while creating the stack in [Step 2](#step-2-configure-the-stack). +1. Follow the instructions to upload your MATLAB Production Server license. + + +## Step 4. Connect and Log In to MATLAB Production Server Dashboard +> **Note**: The Internet Explorer web browser is not supported for interacting with the dashboard. + +1. In the Stack Detail for your stack, expand the **Outputs** section. +1. Look for the key named `MatlabProductionServerDashboardURL` and click the corresponding URL listed under value. This is the HTTPS endpoint to the MATLAB Production Server dashboard. +1. Use the administrator user name and password that you specified in the dashboard login step of the deployment process to log in. For more information on how to use the dashboard, see [Manage MATLAB Production Server using Dashboard](https://www.mathworks.com/help/mps/server/manage-matlab-production-server-using-the-dashboard.html). + +You are now ready to use MATLAB Production Server on AWS. + +To run applications on MATLAB Production Server, you need to create applications using MATLAB Compiler SDK. For more information, see [Deployable Archive Creation](https://www.mathworks.com/help/mps/deployable-archive-creation.html) in the MATLAB Production Server product documentation. + +# Additional Information + +## Delete Your Stack + +Once you have finished using your stack, it is recommended that you delete all resources to avoid incurring further cost. + +If you are using an existing license server, and have added the security group of the server VMs to the security group of the license server, you must delete the inbound rules before you delete the stack. +1. In the AWS management console, select the stack that you deployed. +1. In the stack detail for your stack, click **Resources**. +1. Look for the **Logical ID** named `SecurityGroup` and click the corresponding URL listed under **Physical ID**. This will take you to the security group details. +1. Click the **Inbound Rules** tab, then click **Edit Inbound Rules**. +1. Click **Delete Rule** for the rules that have the tag `matlab-production-server-cloud-stack-elb-1-sg` as their **Source**. +1. Click **Save Rules**. + +To delete the stack, do the following: +1. Log in to the AWS Console. +3. Go to the AWS Cloud Formation page and select the stack that you created. +3. Click the **Actions** button and click **Delete Stack** from the menu that appears. + +If you do not want to delete the entire deployment but want to minimize the cost, you can bring the number of instances in the Auto Scaling Group down to 0 and then scale it back up when the need arises. + +## Get License Server MAC Address +The Network License Manager for MATLAB reference architecture manages the MATLAB Production Server license file. The deployment templates for the MATLAB Production Server reference architecture provide an option to deploy the license manager. You can also use an existing license manager that is located in the same VPC and the security group of the MATLAB Production Server instances. For more information about the Network License Manager for MATLAB reference architecture, see [Network License Manager for MATLAB](https://github.com/mathworks-ref-arch/license-manager-for-matlab-on-aws). + +>**NOTE**: For a new license manager deployed with MATLAB Production Server, the license manager MAC address is available only after the deployment to the cloud is complete. For information on deploying the solution, see [Deployment Steps](/README.md#deployment-steps). + +To get the MAC address of the license manager: +1. Log in to the Network License Manager for MATLAB dashboard. For a license manager deployed with the MATLAB Production Server deployment, use the following credentials:
+Username: **manager**
+Password: Enter the password that you entered during the deployment process. +1. Click **Administration** > **License**. +1. Copy the license server MAC address displayed at the top. +# Architecture and Resources +Deploying this reference architecture will create several resources in your +resource group. + + +![Architecture](/releases/R2021b/images/mps_ref_arch_aws_diagram.png?raw=true) + +*Architecture on AWS* + +### Resources + +| Resource Type | Number of Resources | Description | +|----------------------------------------------------------------------------|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| AWS EC2 Instance | 2 |
  1. Virtual machine (VM) that hosts the MATLAB Production Server dashboard. Use the dashboard to:

    For more information, see [MATLAB Production Server Using the Dashboard](https://www.mathworks.com/help/mps/server/manage-matlab-production-server-using-the-dashboard.html).

  2. 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).
| +| 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. | +| Load Balancer | 2 | Provides routing and load balancing service 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.

| +| S3 Bucket | 1 | S3 storage bucket created during the creation of the stack where applications deployed to the reference architecture are stored. | +| Virtual Private Cluster (VPC) | 1 | Enables resources to communicate with each other. | +| Redis ElastiCache | 1 | Enables caching of data between calls to MATLAB code running on a server instance. | +| CloudWatch | 1 | Enables viewing of logs. | + +# FAQ +## How do I use an existing VPC to deploy MATLAB Production Server? + +Use the following templates to launch the reference architecture within an existing VPC and subnet. The templates provide an option to deploy the Network License Manager for MATLAB to manage MATLAB Production Server licenses. The license manager must be in the same VPC and security group as MATLAB Production Server. + +| Release | Windows Server 2019 or Ubuntu 18.04 VM | +|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| R2021b | | + +In addition to the parameters specified in the section [Configure the Stack](#step-2-configure-the-stack), you will need to specify the following parameters in the template to use your existing VPC. + +| Parameter | Value | +|----------------------------------|--------------------------------------------------------------------------------| +| Existing VPC ID | ID of your existing VPC. | +| IP address range of existing VPC | IP address range from the existing VPC. To find the IP address range:
  1. Log in to the AWS Console.
  2. Navigate to the VPC dashboard and select your VPC.
  3. Click the **CIDR blocks** tab.
  4. The **IPv4 CIDR Blocks** gives the IP address range.
| +| Subnet 1 ID | ID of an existing subnet that will host the dashboard and other resources. | +| Subnet 2 ID | ID of an existing subnet that will host the application load balancer. | + +- If Subnet 1 and Subnet 2 are public, then you must connect the EC2 VPC endpoint and the AutoScaling VPC endpoint to the VPC. +- If Subnet 1 and Subnet 2 are private, then you must either deploy a NAT gateway in the VPC, or connect all of the following endpoints to the VPC: + - EC2 VPC endpoint + - AutoScaling VPC endpoint + - S3 VPC endpoint + - CloudFormation endpoint + +For more information about creating endpoints, see [AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint). + +You will also need to open the following ports in your VPC: + +| Port | Description | +|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `443` | Required for communicating with the dashboard and the MATLAB execution endpoint. | +| `8000`, `8002`, `9910` | Required for communication between the dashboard and workers within the VPC. These ports do not need to be open to the internet. | +| `27000`, `50115` | Required for communication between the network license manager and the workers. | +| `22`, `3389` | Required for Remote Desktop functionality. This can be used for troubleshooting and debugging. | + +### How to use an existing license server in an existing VPC? +If you want to use an exisiting license server, select `No` for the *Deploy License Server* step of the deployment. + +To use an existing license server, you must add the security group of the server VMs to the security group of the license server. +1. In the AWS management console, select the stack that you deployed. +1. In the stack detail for your stack, click **Resources**. +1. Look for the **Logical ID** named ```SecurityGroup``` and click the corresponding URL listed under **Physical ID**. This will take you to the security group details. +1. Click the **Inbound Rules** tab, then click **Edit Inbound Rules**. +1. Click **Add Rule**. +1. In the **Type** dropdown, select ```All TCP```. +1. In the **Source**, search and add the ```MatlabProductionServerCloudStackElb1Sg``` security group. +1. Click **Save Rules**. + +You must also add the private IP address of the license server to the `License Server` property in the **Settings** tab of the dashboard. +Find the IP address of the license server from the AWS management console. +1. In the AWS management console, navigate to the EC2 dashboard. +1. Select the license server instance. +1. In the instance details, copy the value of **Private IPs**. For example, 172.30.1.126 +1. Add the private IP to the `License Server` property. For example, ` 27000@172.30.1.126`. + +## How do I launch a template that uses a previous MATLAB release? +| Release | Windows Server VM | Ubuntu VM | +|---------------|------------------------|-----------------| +| MATLAB R2020a | | | +| MATLAB R2020b | | | +| MATLAB R2021a | | | + +For more information, see [previous releases](/releases). + +## What versions of MATLAB Runtime are supported? + +| Release | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | MATLAB Runtime | +|---------------|----------------|----------------|----------------|----------------|----------------|----------------|----------------|----------------|----------------|---------------| +| MATLAB R2019b | R2017a | R2017b | R2018a | R2018b | R2019a | R2019b | +| MATLAB R2020a | | R2017b | R2018a | R2018b | R2019a | R2019b | R2020a | +| MATLAB R2020b | | | R2018a | R2018b | R2019a | R2019b | R2020a | R2020b | +| MATLAB R2021a | | | | R2018b | R2019a | R2019b | R2020a | R2020b | R2021a | +| MATLAB R2021b | | | | | R2019a | R2019b | R2020a | R2020b | R2021a | R2021b| + + +## Why do requests to the server fail with errors such as “untrusted certificate” or “security exception”? + +These errors result from either CORS not being enabled on the server or due to the fact that the server endpoint uses a self-signed +certificate. + +If 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. + +Also, 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. Or 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). + +## How do I allow multiple IP address ranges access to the dashboard? +The 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 +[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. + +The 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. + + +# Enhancement Request +Provide suggestions for additional features or capabilities using the following link: https://www.mathworks.com/cloud/enhancement-request.html + +# Technical Support +If 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). + diff --git a/releases/R2021b/images/mps_ref_arch_aws_diagram.png b/releases/R2021b/images/mps_ref_arch_aws_diagram.png new file mode 100644 index 0000000..d470176 Binary files /dev/null and b/releases/R2021b/images/mps_ref_arch_aws_diagram.png differ diff --git a/releases/R2021b/templates/mps-aws-refarch-existing-vpc-cf.yml b/releases/R2021b/templates/mps-aws-refarch-existing-vpc-cf.yml new file mode 100644 index 0000000..f24fc9c --- /dev/null +++ b/releases/R2021b/templates/mps-aws-refarch-existing-vpc-cf.yml @@ -0,0 +1,311 @@ +AWSTemplateFormatVersion: "2010-09-09" +Description: "R2021b MATLAB Production Server Reference Architecture with Existing VPC" +Parameters: + KeyPairName: + Type: "AWS::EC2::KeyPair::KeyName" + Description: "Enter the key pair name to use for all EC2 instances. If you do not have a key pair, create one in the EC2 console >> Network & Security >> Key Pairs." + ConstraintDescription: "Must be the name of an existing EC2 Key Pair." + ClientIPAddress: + Description: "Allowed IP addresses that can connect to the MATLAB Production Server VM(s) and the dashboard VM. Specify the range in CIDR notation in the format IP Address/Suffix, where Suffix is an integer between 0 and 32. Example: 10.0.0.1/24." + Type: String + MinLength: 9 + MaxLength: 18 + AllowedPattern: "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})" + ConstraintDescription: "Must be a valid IP in CIDR notation of the form x.x.x.x/x" + AllowPublicIP: + Description: "Specify whether the deployed solution should use public IP addresses." + Type: String + AllowedValues: + - 'Yes' + - 'No' + Default: 'Yes' + + NumWorkerNodes: + Description: "Each MATLAB Production Server instance runs on a VM. Specify the number of VMs to run server instances." + Type: Number + Default: 2 + MinValue: 1 + MaxValue: 24 + + WorkerInstanceType: + Description: "Specify the EC2 instance type to use for a server VM. Each server VM runs multiple MATLAB workers. The default number of workers is 4. Choosing a VM size where the number of vCPUs on a VM matches the number of workers is recommended. For more information on Amazon EC2 instance types and sizes, see https://aws.amazon.com/ec2/instance-types/" + Default: "m5.xlarge" + Type: String + AllowedValues: + - 'm5.xlarge' + - 'm5.2xlarge' + - 'm5.4xlarge' + - 'm5.8xlarge' + - 'm5.12xlarge' + - 'm5.16xlarge' + - 'm5.24xlarge' + - 'm5.metal' + - 'c5.xlarge' + - 'c5.2xlarge' + - 'c5.4xlarge' + - 'c5.9xlarge' + - 'c5.12xlarge' + - 'c5.18xlarge' + - 'c5.24xlarge' + - 'c5.metal' + - 'r5.xlarge' + - 'r5.2xlarge' + - 'r5.4xlarge' + - 'r5.8xlarge' + - 'r5.12xlarge' + - 'r5.16xlarge' + - 'r5.24xlarge' + - 'r5.metal' + ConstraintDescription: "Specify worker instance type." + + WorkerSystem: + Description: Choose between Windows (Windows Server) and Linux (Ubuntu). + Type: String + AllowedValues: + - Ubuntu + - Windows + + SSLCertificateARN: + Description: "Enter the ARN to use for HTTPS connections to the server and dashboard. The ARN you provide must match an existing certificate in the AWS Certificate Manager." + Type: String + AllowedPattern: "arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*" + ConstraintDescription: "Must be a valid certificate ARN of the form arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012" + + EnablePersistence: + Description: "Specify whether you want to deploy ElastiCache for Redis that lets you use the persistence functionality on the server." + Type: String + AllowedValues: + - 'Yes' + - 'No' + Default: 'No' + + DeployLicenseServer: + Description: "Specify whether you want to deploy the Network License Manager for MATLAB" + Type: String + AllowedValues: + - 'Yes' + - 'No' + Default: 'Yes' + Username: + Description: "Specify the administrator user name to log in to the MATLAB Production Server dashboard." + Type: String + AllowedPattern: "^[^'\\s]*$" + ConstraintDescription: Must not contain whitespace or single quote + Password: + Description: "Specify the administrator password to log in to the MATLAB Production Server dashboard and MATLAB license server dashboard." + Type: String + AllowedPattern: "^[^'\\s\\$]*$" + ConstraintDescription: Must not contain whitespace, single quote or $ sign + NoEcho: true + ConfirmPassword: + Description: "Reenter the administrator password to log in to the MATLAB Production Server dashboard and MATLAB license server dashboard." + Type: String + NoEcho: true + + ExistingVPC: + Description: "ID of your existing VPC where you want to deploy this solution." + Type: "AWS::EC2::VPC::Id" + ConstraintDescription: "Must be the ID of an existing VPC." + Default: "" + ExistingVPCAddress: + Description: "Get the IP address range from the existing VPC you selected above." + Type: String + MinLength: 9 + MaxLength: 18 + AllowedPattern: "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})" + ConstraintDescription: "Must be a valid IP CIDR range of the form x.x.x.x/x" + ExistingSubnet1: + Description: "ID of an existing subnet that will host the dashboard and cloud resources." + Type: "AWS::EC2::Subnet::Id" + ConstraintDescription: "Must be the ID of an existing Subnet." + Default: "" + ExistingSubnet2: + Description: "ID of an existing subnet that will host the load balancer." + Type: "AWS::EC2::Subnet::Id" + ConstraintDescription: "Must be the ID of an existing Subnet." + Default: "" + + +Metadata: + "AWS::CloudFormation::Interface": + ParameterGroups: + - Label: + default: Server + Parameters: + - NumWorkerNodes + - WorkerInstanceType + - WorkerSystem + - EnablePersistence + - DeployLicenseServer + - Label: + default: Dashboard Login + Parameters: + - Username + - Password + - ConfirmPassword + - Label: + default: Network + Parameters: + - KeyPairName + - ClientIPAddress + - AllowPublicIP + - SSLCertificateARN + - Label: + default: Existing VPC + Parameters: + - ExistingVPC + - ExistingVPCAddress + - ExistingSubnet1 + - ExistingSubnet2 + + ParameterLabels: + KeyPairName: + default: "Name of Existing Key Pair" + NumWorkerNodes: + default: "Number of Server VMs" + SSLCertificateARN: + default: "ARN of SSL Certificate" + WorkerInstanceType: + default: "Server VM Type" + WorkerSystem: + default: Choose between Windows (Windows Server) and Linux (Ubuntu). + Username: + default: Username for Dashboard + Password: + default: Password for MPS and License Server Dashboard + ConfirmPassword: + default: Confirm Password for MPS and License Server Dashboard + ClientIPAddress: + default: "Allow Connections from IP Address" + AllowPublicIP: + default: "Make Solution Available over Internet" + EnablePersistence: + default: "Create ElastiCache for Redis" + ExistingVPC: + default: "Existing VPC ID" + ExistingVPCAddress: + default: "IP Address Range of Existing VPC" + ExistingSubnet1: + default: "Subnet 1 ID" + ExistingSubnet2: + default: "Subnet 2 ID" + +Rules: + matchPasswords: + Assertions: + - Assert: !Equals [!Ref Password, !Ref ConfirmPassword] + AssertDescription: "Passwords do not match" + checkSubnetInVPC: + Assertions: + - Assert: !EachMemberEquals + - !ValueOfAll + - AWS::EC2::Subnet::Id + - VpcId + - !Ref ExistingVPC + AssertDescription: Subnet must exist in the VPC you have selected + noLicenseDeployIfPrivate: + RuleCondition: !Equals + - !Ref AllowPublicIP + - "No" + Assertions: + - Assert: !Equals [!Ref DeployLicenseServer, "No"] + AssertDescription: 'License Server should not be deployed to private subnets' + +Conditions: + DoPublicIP: !Equals + - 'Yes' + - !Ref AllowPublicIP + DoDeployLicenseServer: !Equals + - 'Yes' + - !Ref DeployLicenseServer + +Mappings: + VarMap: + NestedTemplateURLs: + vpsStackURL: 'https://matlab-production-server-templates.s3.amazonaws.com/r2021b_mps_refarch/mw-aws-payg-vpc-stack-cf.yml' + productionServerStackURL: 'https://matlab-production-server-templates.s3.amazonaws.com/r2021b_mps_refarch/mw-aws-refarch-cf.yml' + +Outputs: + MATLABProductionServerAdminVM: + Description: Admin VM that hosts MATLAB Production Server dashboard + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerAdminVM + MatlabProductionServerLicenseServer: + Description: "Address of the MATLAB network license manager dashboard" + Value: !If + - DoDeployLicenseServer + - !GetAtt MatlabProductionServerLicenseServerStack.Outputs.ServerAddress + - 'License Server was not deployed with this stack' + MATLABProductionServerApplicationsBucket: + Description: "S3 Bucket for MATLAB Production Server applications (CTF files)" + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerApplicationsBucket + MATLABProductionServerDashboardURL: + Description: URL to access MATLAB Production Server dashboard + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerDashboardURL + MATLABProductionServerFunctionExecutionURL: + Description: MATLAB Execution Endpoint + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerFunctionExecutionURL + MATLABProductionServerAdminVMLogGroup: + Description: CloudWatch log group for admin VM + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerAdminVMLogGroup + MATLABProductionServerWorkerVMLogGroup: + Description: CloudWatch log group for worker VM + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerWorkerVMLogGroup + MATLABProductionServerAutoScalingGroup: + Description: Auto Scaling Group for managing the number of server VMs + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerAutoScalingGroup + MATLABProductionServerCloudStackCacheClusterAddress: + Description: Hostname of Redis cache cluster + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerCloudStackCacheClusterAddress + MATLABProductionServerCloudStackCacheClusterPort: + Description: Port number of Redis cache cluster + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerCloudStackCacheClusterPort + MATLABProductionServerLoadBalancer: + Description: Load balancer to change SSL certificate for MATLAB execution endpoint + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerLoadBalancer + MATLABProductionServerDashboardLoadBalancer: + Description: Load balancer to change SSL certificate for MATLAB Production Server dashboard + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerDashboardLoadBalancer + +Resources: + MatlabProductionServerLicenseServerStack: + Condition: DoDeployLicenseServer + Type: AWS::CloudFormation::Stack + Properties: + TemplateURL: 'https://network-license-manager-for-matlab-on-aws.s3.amazonaws.com/R2020b/license-manager-template.json' + Parameters: + VPC: !Ref ExistingVPC + Subnet: !Ref ExistingSubnet1 + ClientIPAddress: !If [DoPublicIP, !Ref ClientIPAddress, !Ref ExistingVPCAddress] + ServerInstanceType: t2.micro + SSHKeyName: !Ref KeyPairName + Password: !Ref Password + ConfirmPassword: !Ref ConfirmPassword + + MatlabProductionServerResourcesStack: + Type: AWS::CloudFormation::Stack + Properties: + TemplateURL: !FindInMap [VarMap, NestedTemplateURLs , productionServerStackURL] + Parameters: + ExistingVPC: !Ref ExistingVPC + ExistingVPCAddress: !Ref ExistingVPCAddress + ExistingSubnet1: !Ref ExistingSubnet1 + ExistingSubnet2: !Ref ExistingSubnet2 + KeyPairName: !Ref KeyPairName + ClientIPAddress: !Ref ClientIPAddress + AllowPublicIP: !Ref AllowPublicIP + SSLCertificateARN: !Ref SSLCertificateARN + NumWorkerNodes: !Ref NumWorkerNodes + WorkerInstanceType: !Ref WorkerInstanceType + WorkerSystem: !Ref WorkerSystem + EnablePersistence: !Ref EnablePersistence + Username: !Ref Username + Password: !Ref Password + ConfirmPassword: !Ref ConfirmPassword + LicenseServerSecurityGroup: !If + - DoDeployLicenseServer + - !GetAtt MatlabProductionServerLicenseServerStack.Outputs.SecurityGroup + - '' + LicenseServerPrivateDNS: !If + - DoDeployLicenseServer + - !GetAtt MatlabProductionServerLicenseServerStack.Outputs.ServerPrivateDNS + - '' \ No newline at end of file diff --git a/releases/R2021b/templates/mps-aws-refarch-new-vpc-cf.yml b/releases/R2021b/templates/mps-aws-refarch-new-vpc-cf.yml new file mode 100644 index 0000000..a0739d2 --- /dev/null +++ b/releases/R2021b/templates/mps-aws-refarch-new-vpc-cf.yml @@ -0,0 +1,247 @@ +AWSTemplateFormatVersion: "2010-09-09" +Description: "R2021b MATLAB Production Server Reference Architecture with New VPC" +Parameters: + KeyPairName: + Type: "AWS::EC2::KeyPair::KeyName" + Description: "Enter the key pair name to use for all EC2 instances. If you do not have a key pair, create one in the EC2 console >> Network & Security >> Key Pairs." + ConstraintDescription: "Must be the name of an existing EC2 Key Pair." + ClientIPAddress: + Description: "Allowed IP addresses that can connect to the MATLAB Production Server VM(s) and the dashboard VM. Specify the range in CIDR notation in the format IP Address/Suffix, where Suffix is an integer between 0 and 32. Example: 10.0.0.1/24." + Type: String + MinLength: 9 + MaxLength: 18 + AllowedPattern: "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})" + ConstraintDescription: "Must be a valid IP in CIDR notation of the form x.x.x.x/x" + AllowPublicIP: + Description: "Specify whether the deployed solution should use public IP addresses." + Type: String + AllowedValues: + - 'Yes' + - 'No' + Default: 'Yes' + + NumWorkerNodes: + Description: "Each MATLAB Production Server instance runs on a VM. Specify the number of VMs to run server instances." + Type: Number + Default: 2 + MinValue: 1 + MaxValue: 24 + + WorkerInstanceType: + Description: "Specify the EC2 instance type to use for a server VM. Each server VM runs multiple MATLAB workers. The default number of workers is 4. Choosing a VM size where the number of vCPUs on a VM matches the number of workers is recommended. For more information on Amazon EC2 instance types and sizes, see https://aws.amazon.com/ec2/instance-types/" + Default: "m5.xlarge" + Type: String + AllowedValues: + - 'm5.xlarge' + - 'm5.2xlarge' + - 'm5.4xlarge' + - 'm5.8xlarge' + - 'm5.12xlarge' + - 'm5.16xlarge' + - 'm5.24xlarge' + - 'm5.metal' + - 'c5.xlarge' + - 'c5.2xlarge' + - 'c5.4xlarge' + - 'c5.9xlarge' + - 'c5.12xlarge' + - 'c5.18xlarge' + - 'c5.24xlarge' + - 'c5.metal' + - 'r5.xlarge' + - 'r5.2xlarge' + - 'r5.4xlarge' + - 'r5.8xlarge' + - 'r5.12xlarge' + - 'r5.16xlarge' + - 'r5.24xlarge' + - 'r5.metal' + ConstraintDescription: "Specify worker instance type." + + WorkerSystem: + Description: Choose between Windows (Windows Server) and Linux (Ubuntu). + Type: String + AllowedValues: + - Ubuntu + - Windows + + SSLCertificateARN: + Description: "Enter the ARN to use for HTTPS connections to the server and dashboard. The ARN you provide must match an existing certificate in the AWS Certificate Manager." + Type: String + AllowedPattern: "arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*" + ConstraintDescription: "Must be a valid certificate ARN of the form arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012" + + EnablePersistence: + Description: "Specify whether you want to deploy ElastiCache for Redis that lets you use the persistence functionality on the server." + Type: String + AllowedValues: + - 'Yes' + - 'No' + Default: 'No' + Username: + Description: "Specify the administrator user name to log in to the MATLAB Production Server dashboard." + Type: String + AllowedPattern: "^[^'\\s\\$]*$" + ConstraintDescription: Must not contain whitespace, single quote or $ sign + + Password: + Description: "Specify the administrator password to log in to the MATLAB Production Server dashboard and MATLAB license server dashboard." + Type: String + AllowedPattern: "^[^'\\s\\$]*$" + ConstraintDescription: Must not contain whitespace, single quote or $ sign + NoEcho: true + + ConfirmPassword: + Description: "Reenter the administrator password to log in to the MATLAB Production Server dashboard and MATLAB license server dashboard." + Type: String + NoEcho: true + + +Metadata: + "AWS::CloudFormation::Interface": + ParameterGroups: + - Label: + default: Server + Parameters: + - NumWorkerNodes + - WorkerInstanceType + - WorkerSystem + - EnablePersistence + - Label: + default: Dashboard Login + Parameters: + - Username + - Password + - ConfirmPassword + - Label: + default: Network + Parameters: + - KeyPairName + - ClientIPAddress + - AllowPublicIP + - SSLCertificateARN + + ParameterLabels: + KeyPairName: + default: "Name of Existing Key Pair" + NumWorkerNodes: + default: "Number of Server VMs" + SSLCertificateARN: + default: "ARN of SSL Certificate" + WorkerInstanceType: + default: "Server VM Type" + WorkerSystem: + default: Choose between Windows (Windows Server) and Linux (Ubuntu). + Username: + default: Username for Dashboard + Password: + default: Password for MPS and License Server Dashboard + ConfirmPassword: + default: Confirm Password for MPS and License Server Dashboard + ClientIPAddress: + default: "Allow Connections from IP Address" + AllowPublicIP: + default: "Make Solution Available over Internet" + EnablePersistence: + default: "Create ElastiCache for Redis" + +Rules: + matchPasswords: + Assertions: + - Assert: !Equals [!Ref Password, !Ref ConfirmPassword] + AssertDescription: "Passwords do not match" + +Conditions: + DoPublicIP: !Equals + - 'Yes' + - !Ref AllowPublicIP + +Mappings: + VarMap: + NestedTemplateURLs: + vpsStackURL: 'https://matlab-production-server-templates.s3.amazonaws.com/r2021b_mps_refarch/mw-aws-payg-vpc-stack-cf.yml' + productionServerStackURL: 'https://matlab-production-server-templates.s3.amazonaws.com/r2021b_mps_refarch/mw-aws-refarch-cf.yml' + +Outputs: + MATLABProductionServerAdminVM: + Description: Admin VM that hosts MATLAB Production Server dashboard + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerAdminVM + MatlabProductionServerLicenseServer: + Description: Address of the network license manager for MATLAB dashboard + Value: !GetAtt MatlabProductionServerLicenseServerStack.Outputs.ServerAddress + MATLABProductionServerApplicationsBucket: + Description: "S3 Bucket for MATLAB Production Server applications (CTF files)" + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerApplicationsBucket + MATLABProductionServerDashboardURL: + Description: URL to access MATLAB Production Server dashboard + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerDashboardURL + MATLABProductionServerFunctionExecutionURL: + Description: MATLAB Execution Endpoint + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerFunctionExecutionURL + MATLABProductionServerAdminVMLogGroup: + Description: CloudWatch log group for admin VM + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerAdminVMLogGroup + MATLABProductionServerWorkerVMLogGroup: + Description: CloudWatch log group for worker VM + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerWorkerVMLogGroup + MATLABProductionServerAutoScalingGroup: + Description: Auto Scaling Group for managing the number of server VMs + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerAutoScalingGroup + MATLABProductionServerCloudStackCacheClusterAddress: + Description: Hostname of Redis cache cluster + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerCloudStackCacheClusterAddress + MATLABProductionServerCloudStackCacheClusterPort: + Description: Port number of Redis cache cluster + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerCloudStackCacheClusterPort + MATLABProductionServerLoadBalancer: + Description: Load balancer to change SSL certificate for MATLAB execution endpoint + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerLoadBalancer + MATLABProductionServerDashboardLoadBalancer: + Description: Load balancer to change SSL certificate for MATLAB Production Server dashboard + Value: !GetAtt MatlabProductionServerResourcesStack.Outputs.MATLABProductionServerDashboardLoadBalancer + +Resources: + MatlabProductionServerVPCStack: + Type: AWS::CloudFormation::Stack + Properties: + TemplateURL: !FindInMap [VarMap, NestedTemplateURLs , vpsStackURL] + Parameters: + AllowPublicIP: !Ref AllowPublicIP + + MatlabProductionServerLicenseServerStack: + Type: AWS::CloudFormation::Stack + Properties: + TemplateURL: 'https://network-license-manager-for-matlab-on-aws.s3.amazonaws.com/R2020b/license-manager-template.json' + Parameters: + VPC: !GetAtt MatlabProductionServerVPCStack.Outputs.VPCID + Subnet: !GetAtt MatlabProductionServerVPCStack.Outputs.PublicSubnet + ClientIPAddress: !If [DoPublicIP, !Ref ClientIPAddress, !GetAtt MatlabProductionServerVPCStack.Outputs.VPCCIDR] + ServerInstanceType: t2.micro + SSHKeyName: !Ref KeyPairName + Password: !Ref Password + ConfirmPassword: !Ref ConfirmPassword + + MatlabProductionServerResourcesStack: + DependsOn: + - MatlabProductionServerVPCStack + Type: AWS::CloudFormation::Stack + Properties: + TemplateURL: !FindInMap [VarMap, NestedTemplateURLs , productionServerStackURL] + Parameters: + ExistingVPC: !GetAtt MatlabProductionServerVPCStack.Outputs.VPCID + ExistingVPCAddress: !GetAtt MatlabProductionServerVPCStack.Outputs.VPCCIDR + ExistingSubnet1: !GetAtt MatlabProductionServerVPCStack.Outputs.Subnet1 + ExistingSubnet2: !GetAtt MatlabProductionServerVPCStack.Outputs.Subnet2 + KeyPairName: !Ref KeyPairName + ClientIPAddress: !Ref ClientIPAddress + AllowPublicIP: !Ref AllowPublicIP + SSLCertificateARN: !Ref SSLCertificateARN + NumWorkerNodes: !Ref NumWorkerNodes + WorkerInstanceType: !Ref WorkerInstanceType + WorkerSystem: !Ref WorkerSystem + EnablePersistence: !Ref EnablePersistence + Username: !Ref Username + Password: !Ref Password + ConfirmPassword: !Ref ConfirmPassword + LicenseServerSecurityGroup: !GetAtt MatlabProductionServerLicenseServerStack.Outputs.SecurityGroup + LicenseServerPrivateDNS: !GetAtt MatlabProductionServerLicenseServerStack.Outputs.ServerPrivateDNS \ No newline at end of file diff --git a/releases/R2021b/templates/templateURL.txt b/releases/R2021b/templates/templateURL.txt new file mode 100644 index 0000000..ebd3715 --- /dev/null +++ b/releases/R2021b/templates/templateURL.txt @@ -0,0 +1,2 @@ +https://matlab-production-server-templates.s3.amazonaws.com/r2021b_mps_refarch/mps-aws-refarch-new-vpc-cf.yml +https://matlab-production-server-templates.s3.amazonaws.com/r2021b_mps_refarch/mps-aws-refarch-existing-vpc-cf.yml