Skip to content

Commit

Permalink
#1943 Add AWS Deployment
Browse files Browse the repository at this point in the history
- Add AWS Deployment
- Add AWS information in the different sections
  • Loading branch information
delager authored and kbeaugrand committed Apr 14, 2023
1 parent de372d7 commit 4251e62
Showing 1 changed file with 58 additions and 9 deletions.
67 changes: 58 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# IoT Hub Portal

This project aims to provide a solution for handling IoT Devices easyly.
It leverages on Azure IoT Hub for connectivity and device management.
It leverages on Azure IoT Hub or AWS IoT Core for connectivity and device management.

![IoT Hub Portal Architecture](https://github.com/CGI-FR/IoT-Hub-Portal/raw/docs/main/docs/images/architecture.png)

Expand All @@ -23,17 +23,22 @@ It leverages on Azure IoT Hub for connectivity and device management.

## Prerequisites

The following should be completed before proceeding with the IoT Hub Portal development or deployment in your environment.
The following should be completed before proceeding with the IoT Hub Portal development or deployment in your environment.

**Azure**
* You must have an Azure subscription. Get an [Azure Free account](https://azure.microsoft.com/en-us/offers/ms-azr-0044p/) to get started.
* You must have configured an Azure AD B2C Tenant with applications. See [Portal AD applications configuration](https://cgi-fr.github.io/IoT-Hub-Portal/stable/b2c-applications) page.
* Understand how IoT Edge LoraWAN StarterKit work. Have a look at [https://azure.github.io/iotedge-lorawan-starterkit](https://azure.github.io/iotedge-lorawan-starterkit) to get started.

**Amazon Web Services**
* You must have an AWS Account. Get an [AWS Free account](https://portal.aws.amazon.com/billing/signup#/start/email) to get started.

## Quick Start

### Deployed Azure Resources
### Deployed Resources

The template will deploy in your Azure subscription the Following resources:
**Azure**
The template will deploy in your Azure subscription the Following resources:

* IoT Hub
* Azure Function and Consumption Service Plan
Expand All @@ -43,22 +48,54 @@ The template will deploy in your Azure subscription the Following resources:
* Azure WebApp and Service Plan
* Azure Database for PostgreSQL

### Instructions
**Amazon Web Services**
The template will deploy in your AWS Account the Following resources:

* AWS RDS - Database for PostgreSQL
* AWS S3 Bucket
* AWS App Runner Service

### Instructions

1. Choose a solution prefix for your Azure Deployment or a stack name for your AWS Deployment.

1. Configure your AD to connect to the portal.

1. Choose a solution prefix for your deployment.
1. Use [Portal AD applications configuration](https://cgi-fr.github.io/IoT-Hub-Portal/stable/b2c-applications) page to configure your AD B2C Tenant.
**Azure**

Use [Portal AD applications configuration](https://cgi-fr.github.io/IoT-Hub-Portal/stable/b2c-applications) page to configure your AD B2C Tenant :
> You should have recorded the following information:
> * OpenID authority: `<your-openid-authority>`
> * OpenID metadata URL: `<your-openid-provider-metadata-url>`
> * Client ID: `<your-client-id>`
> * API Client ID: `<your-client-id>`
1. Press on the button here below to start your Azure Deployment.
1. Follow next step below to start your deployment.

**Azure**

Press on the button here below to start your deployment on Azure:
[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FCGI-FR%2FIoT-Hub-Portal%2Farm%2Fmain%2Ftemplates%2Fazuredeploy.json/uiFormDefinitionUri/https%3A%2F%2Fraw.githubusercontent.com%2FCGI-FR%2FIoT-Hub-Portal%2Farm%2Fmain%2Ftemplates%2FazuredeployUI.json)

**Amazon Web Services**

1. Press on the button here below to download the template AWS:
[Download the template](https://github.com/CGI-FR/IoT-Hub-Portal/blob/1940-cloudformation-script-creation/templates/aws/awsdeploy.yml)

1. Import your template :
* From the AWS console: [CloudFormation new stack](https://eu-west-1.console.aws.amazon.com/cloudformation/home?region=eu-west-1#/stacks/create)
* You can change the deployment region by changing the region directly in the URL
* In "Upload a template file" import the previously downloaded file
* With AWS CLI:
```
aws cloudformation deploy --template /path_to_template/awsdeploy.yml --stack-name your-stack-name --region your-region
```
> see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-deploy.html for more option about aws cloudformation deploy

1. You will get to a page asking you to fill the following fields :
* **Resource Group**: A logical "folder" where all the template resource would be put into, just choose a meaningful name.

**Azure**
* **Resource Group**: A logical "folder" where all the template resource would be put into, just choose a meaningful name.
* **Location**: In which DataCenter the resources should be deployed. Make sure to choose a location where IoT Hub is available
* **Unique Solution Prefix**: A string that would be used as prefix for all the resources name to ensure their uniqueness.
* **PostgreSQL user**: The PostgreSQL user name to be used for the IoT Hub Portal database.
Expand All @@ -75,6 +112,18 @@ The template will deploy in your Azure subscription the Following resources:

> see: [https://azure.github.io/iotedge-lorawan-starterkit/dev/quickstart/#deployed-azure-infrastructure](https://azure.github.io/iotedge-lorawan-starterkit/dev/quickstart/#deployed-azure-infrastructure) for more information about the LoRaWan IoT Hub and Azure deployment.
**Amazon Web Services**
* **Stack Name**: A name for the stack, just choose a meaningful name.
* **Service Name**: A name for the App Runner service.
* **PostgreSQL user**: The PostgreSQL user name to be used for the IoT Hub Portal database.
* **PostgreSQL password**: The PostgreSQL password to be used for the IoT Hub Portal database.
* **Region**: Region code
* **Api Client Id**: the ID of the API client that will be used to authenticate the portal.
* **Client Id**: the ID of the web client that will be used to authenticate the portal.
* **Open Id Authority**: The OpenID authority used by the portal.
* **OpenId Metadata URL**: The OpenID metadata URL used by the portal.
* **OpenId Scope Name**: The Open ID Scope name

## Documentation

Our documentation is present at github page: [https://cgi-fr.github.io/IoT-Hub-Portal/](https://cgi-fr.github.io/IoT-Hub-Portal/).
Expand Down

0 comments on commit 4251e62

Please sign in to comment.