Skip to content

Latest commit

 

History

History
449 lines (317 loc) · 22.7 KB

File metadata and controls

449 lines (317 loc) · 22.7 KB
sidebar_position 2
toc_max_heading_level 2

Quick Start (AWS)

Deploying FormKiQ into your AWS account with CloudFormation.

Deploy and configure FormKiQ in your AWS account in approximately 15 minutes using AWS CloudFormation. The automated setup process provisions and connects all required resources through a streamlined installation workflow.

import Head from '@docusaurus/Head';

{/* VideoObject Schema for the embedded YouTube video */}

<script type="application/ld+json"> {JSON.stringify({ "@context": "https://schema.org", "@type": "VideoObject", "name": "Deploying FormKiQ Core's Document Management Platform into Your AWS Account", "description": "Learn how to deploy and configure FormKiQ in your AWS account in approximately 15 minutes using AWS CloudFormation.", "thumbnailUrl": "https://i.ytimg.com/vi/G5R6ldbHYKs/hqdefault.jpg", "uploadDate": "2023-01-01T08:00:00+08:00", "contentUrl": "https://www.youtube.com/watch?v=G5R6ldbHYKs", "embedUrl": "https://www.youtube.com/embed/G5R6ldbHYKs" })} </script>

{/* HowTo Schema for the installation process */}

<script type="application/ld+json"> {JSON.stringify({ "@context": "https://schema.org", "@type": "HowTo", "name": "How to Deploy FormKiQ in Your AWS Account", "description": "Step-by-step guide to deploy FormKiQ document management platform in your AWS account using CloudFormation.", "step": [ { "@type": "HowToStep", "name": "Check Prerequisites", "text": "Ensure you have an AWS account with administrator access, AWS Lambda Concurrent Executions, and AWS Service Role for ECS enabled." }, { "@type": "HowToStep", "name": "Select Installation Link", "text": "Choose the installation link for your AWS region to launch the CloudFormation template." }, { "@type": "HowToStep", "name": "Configure Stack", "text": "Set stack name and configure installation parameters including admin email and app environment." }, { "@type": "HowToStep", "name": "Create Stack", "text": "Review configuration and create the CloudFormation stack." }, { "@type": "HowToStep", "name": "Configure Admin Password", "text": "Check admin email for verification link and set admin password." } ] })} </script>
<iframe src="https://www.youtube.com/embed/G5R6ldbHYKs" title="Deploying FormKiQ Core's Document Management Platform into Your AWS Account" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen style={{ position: "absolute", top: 0, left: 0, width: "100%", height: "100%" }} />

Prerequisites

For this quickstart you will need access to an AWS account with administrator access to ensure proper permissions for creating required AWS services.

If you do not have a AWS account, you can sign up for one at https://aws.amazon.com.

AWS Lambda Concurrent Executions

Concurrent executions refer to the number of function invocations being handled simultaneously. AWS Lambda generally defaults to 10 concurrent executions per region, but this limit may be higher for some customers and accounts. It's best to request an increase to 1000 before installation.

Check Concurrent Executions

Open CloudShell

Run aws cli command:

aws service-quotas get-service-quota --service-code lambda \
--quota-code L-B99A9384 --region <AWS_REGION>

Resulting Value shows the AWS Lambda Concurrent executions.

{
    "Quota": {
        "ServiceCode": "lambda",
        "ServiceName": "AWS Lambda",
        "QuotaCode": "L-B99A9384",
        "QuotaName": "Concurrent executions",
        "Value": 1000.0,
        "Unit": "None",
        ...
    }
}

:::note Request this increase for each region where you'll deploy FormKiQ. :::

Request Concurrent Executions Increase

Request through the Service Quotas Dashboard:

AWS Region Location Request Increase Link
us-east-1 N. Virginia Request Increase
us-east-2 Ohio Request Increase
us-west-2 Oregon Request Increase
ca-central-1 Canada (Central) Request Increase
eu-central-1 Frankfurt Request Increase
eu-west-1 Ireland Request Increase
eu-west-3 Paris Request Increase
ap-south-1 Mumbai Request Increase
ap-southeast-1 Singapore Request Increase
ap-southeast-2 Sydney Request Increase
ap-northeast-2 Seoul Request Increase
sa-east-1 São Paulo Request Increase

For more information, see the AWS Tutorial on Requesting a Quota Increase.

AWS Service Role For ECS

Verify that AWSServiceRoleForECS is enabled on your AWS Account before installation.

Open CloudShell

Run aws cli command:

aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com

:::note An error message "Service role name AWSServiceRoleForECS has been taken in this account" indicates this step is already complete. :::

Installation Links

For installation support, feedback, or updates, please join our FormKiQ Slack Community

:::note Ensure you've completed the prerequisites and enabled AWSServiceRoleforECS. :::

The FormKiQ installation uses AWS CloudFormation to automate resource creation and management.

Select your AWS region from the installation links below:

AWS Region Location Install Link
us-east-1 N. Virginia Install FormKiQ
us-east-2 Ohio Install FormKiQ
us-west-2 Oregon Install FormKiQ
ca-central-1 Canada (Central) Install FormKiQ
eu-central-1 Frankfurt Install FormKiQ
eu-west-1 Ireland Install FormKiQ
eu-west-3 Paris Install FormKiQ
ap-south-1 Mumbai Install FormKiQ
ap-southeast-1 Singapore Install FormKiQ
ap-southeast-2 Sydney Install FormKiQ
ap-northeast-2 Seoul Install FormKiQ
sa-east-1 São Paulo Install FormKiQ

:::note

  • For unlisted regions, use SAM CLI installation
  • FormKiQ Core supports AWS GovCloud (US) West but not East
  • AWS China installations are not currently supported
  • FormKiQ Essentials, Advanced, and Enterprise users: use your custom CloudFormation template links provided by the FormKiQ team :::

Install FormKiQ

After selecting your region, you'll see the AWS CloudFormation Console with the FormKiQ installation URL pre-populated.

CloudFormation Create Stack

Click Next to continue.

Set Stack Name

Name your stack using the format formkiq-core-<app_environment> (e.g., formkiq-prod).

CloudFormation Stack Name

:::note For production, we recommend using AWS Organizations and separate accounts for different environments. :::

Installation Parameters

Configure your installation:

CloudFormation Stack Parameters

Required Parameters

  • AdminEmail: Administrator email address
  • AppEnvironment: Environment identifier (prod, staging, dev, etc.)

Optional Parameters

  • CapacityProvider: AWS Fargate capacity provider (for Typesense)
  • EnablePublicUrls: Enable public endpoints (default: false)
  • PasswordMinimumLength: Minimum password length
  • Password Requirements: Several properties to configure requirements for length, lowercase, numbers, symbols, and uppercase
  • TypesenseApiKey: API key for Typesense
  • TypesenseMemory: Typesense memory allocation
  • VpcStackName: VPC stack name (used for Typesense or OpenSearch)

Configure Stack Options

Select ALL checkboxes at the bottom.

Setup Stack Options

Click Next to proceed.

Review and Create

Review your configuration and click Submit.

Setup Stack Options

:::info

  • Installation takes 15-30 minutes
  • You'll receive an admin email when complete :::

Configure Admin Password

  1. Check your admin email for the verification link
  2. Click "Verify Email" to set your password

Welcome to FormKiQ

  1. Set your admin password

Set Admin Password

  1. Access the FormKiQ Console

FormKiQ Console Home

:::note AWS GovCloud (US) requires manual admin user creation. :::

Install VPC

For Typesense or OpenSearch, install the VPC stack:

Select your region's VPC template:

AWS Region Location Install Link
us-east-1 N. Virginia Install VPC
us-east-2 Ohio Install VPC
us-west-2 Oregon Install VPC
ca-central-1 Canada (Central) Install VPC
eu-central-1 Frankfurt Install VPC
eu-west-1 Ireland Install VPC
eu-west-3 Paris Install VPC
ap-south-1 Mumbai Install VPC
ap-southeast-1 Singapore Install VPC
ap-southeast-2 Sydney Install VPC
ap-northeast-2 Seoul Install VPC
sa-east-1 São Paulo Install VPC

Create CloudFormation Stack

After selecting your VPC installation link and logging in, you'll see the CloudFormation Create Stack console with the pre-populated FormKiQ VPC installation URL.

CloudFormation Create Stack

Click the Next button to move to the next page.

Set Stack Name

The stack name uniquely identifies your FormKiQ VPC deployment within AWS CloudFormation.

We recommended to use the naming convention formkiq-vpc.

CloudFormation VPC Stack Name

Installation Parameters

The following is description of the VPC installation parameters:

CloudFormation Stack Parameters

EnableEnterpriseFeatures:

If you are using OpenSearch, you need to enable enterprise features, which automatically setups VPC endpoints.

:::note This is not required for FormKiQ Core. :::

CIDR Ranges:

The VPC sets up 3 public, and 3 private subnets.

When creating the VPC, you need to specify an IPv4 network range for the VPC, in CIDR notation. For example, 10.1.0.0/16.

:::note We recommend choosing a CIDR block that you know is not being used by any existing AWS resources in your AWS Organization. Ideally, each AWS account (one for each environment) is using its own CIDR range, e.g., 10.10.0.0/16 for dev, 10.20.0.0/16 for test/qa, etc. :::

VpcLabel:

The label added to the created VPC. This will be visible in the AWS Management Console when viewing your VPCs, and will help identify this VPC in future.

Configure stack options

Scroll down to the bottom of the page, select ALL the checkboxes.

Setup Stack Options

Click the Next button to move to the next page.

Review and create

Scroll down to the bottom.

Setup Stack Options

Click the Submit button to start the VPC installation.

:::info Once the installation has completed, you will need to attach this Stack to your FormKiQ installation, by updating the VpcStackName parameter. :::

Update FormKiQ

This step is essential in order to enable access to Typesense or OpenSearch

After creating the VPC stack, the main FormKiQ CloudFormation stack needs to be updated. Select the FormKiQ CloudFormation stack and then click the Update button.

When updating the stack you will want to choose Use existing template.

CloudFormation Update Stack

For the VpcStackName parameter, set the value to the same value you used for the VPC stack you created above; in our example, it was formkiq-vpc.

Set VPC Stack Name

Click the Next button to move to the next pages. On the last page click the Submit button to update the FormKiQ stack. After the Stack completes updating, the FormKiQ installation will have the VPC features enabled.

Install with SAM CLI

FormKiQ Core was built using the AWS Serverless Application Model (SAM) framework.

The Serverless Application Model Command Line Interface (SAM CLI) is an extension of the AWS CLI that adds functionality for deploying serverless applications.

Prerequisite

To use SAM CLI, you will need to install the following tools:

Get Latest Release

The latest version of FormKiQ Core can be found on the https://github.com/formkiq/formkiq-core/releases page on Github.

Download the file with the naming convention of: formkiq-core-X.X.X.zip

Once downloaded, unzip the file in its own directory.

INSTALL.md
LICENSE
template.yaml
...

Sam deploy

To deploy FormKiQ Core, run the following command in the same folder as the template.yaml file.

sam deploy --guided --capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM

The command will package and deploy your application to AWS, with a series of prompts:

Argument Description Default Value
Stack Name The name of the stack to deploy to CloudFormation. This should be unique to your account and region formkiq-core-<AppEnvironment>
AdminEmail Set the admin email address. During the FormKiQ installation, this email address will be automatically set up with administrator access.
AppEnvironment AppEnvironment is a unique identifier for FormKiQ installations. The identifier should provider context to what kind of information is contained in the installation, IE: prod, staging, dev. prod
EnablePublicUrls Whether to enable "/public" endpoints. false
PasswordMinimumLength Minimum Password Length 8
PasswordRequireLowercase Whether Password requires a lowercase letter false
PasswordRequireNumbers Whether Password requires a number false
PasswordRequireSymbols Whether Password requires a symbol false
PasswordRequireUppercase Whether Password requires a uppercase letter false
VpcStackName Optional: The name of the FormKiQ VPC CloudFormation stack null
TypesenseApiKey Optional: API Key to access the Typesense server null
CapacityProvider Optional: CapacityProvider used by AWS Fargate service FARGATE_SPOT
  • Confirm changes before deploy: If set to yes, any change sets will be shown to you before execution for manual review. If set to no, the AWS SAM CLI will automatically deploy application changes.
  • Allow SAM CLI IAM role creation: FormKiQ Core's AWS SAM templates create AWS IAM roles required for the AWS Lambda function(s) included to access AWS services. The permissions are passed in by the sam deploy command above. Set Value to 'Y'
  • Save arguments to samconfig.toml: If set to yes, your choices will be saved to a configuration file inside the project, so that in the future you can just re-run sam deploy without parameters to deploy changes to your application.

Once you have set all of these options, SAM CLI will create a changeset and will display a list of all actions that will be performed as part of the changeset. If you have set "confirm changes before deploy" to "y", you will then be asked whether or nor to deploy this changeset. Choose "y" to complete the installation.

Once the FormKiQ Core stack has been deployed, you will be able to find your API Gateway Endpoint URL in the output values displayed after deployment.

FormKiQ Console for AWS GovCloud (US)

Due to restrictions related to AWS GovCloud (US) and the lack of CloudFront availability, the FormKiQ Document Console is not installed as part of the deployment. Instead, you can deploy a docker image into GovCloud for internal or external access. More information can be found here.

API Walkthrough and Reference

To try out the API, try our API Walkthrough. You can also check out the FormKiQ API Reference for more endpoints you can try out.