{"id":23331136,"url":"https://github.com/sassoftware/viya4-iac-aws","last_synced_at":"2026-04-14T11:01:02.226Z","repository":{"id":38540369,"uuid":"294171435","full_name":"sassoftware/viya4-iac-aws","owner":"sassoftware","description":"This project contains Terraform configuration files to provision infrastructure components required to deploy SAS Viya platform products products on Amazon AWS.","archived":false,"fork":false,"pushed_at":"2026-03-31T04:58:52.000Z","size":2891,"stargazers_count":51,"open_issues_count":26,"forks_count":56,"subscribers_count":18,"default_branch":"main","last_synced_at":"2026-04-03T05:38:10.327Z","etag":null,"topics":["aws","cloud-resources","eks","iac","sas-config","sas-osp","sas-viya","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sassoftware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security.tf","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-09-09T16:40:01.000Z","updated_at":"2026-03-30T10:48:45.000Z","dependencies_parsed_at":"2023-10-20T21:22:30.144Z","dependency_job_id":"953c6c17-a3cf-4d7a-8949-88dc40fee51f","html_url":"https://github.com/sassoftware/viya4-iac-aws","commit_stats":null,"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"purl":"pkg:github/sassoftware/viya4-iac-aws","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sassoftware%2Fviya4-iac-aws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sassoftware%2Fviya4-iac-aws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sassoftware%2Fviya4-iac-aws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sassoftware%2Fviya4-iac-aws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sassoftware","download_url":"https://codeload.github.com/sassoftware/viya4-iac-aws/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sassoftware%2Fviya4-iac-aws/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31793225,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","cloud-resources","eks","iac","sas-config","sas-osp","sas-viya","terraform"],"created_at":"2024-12-20T22:31:16.840Z","updated_at":"2026-04-14T11:01:02.194Z","avatar_url":"https://github.com/sassoftware.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SAS Viya 4 Infrastructure as Code (IaC) for Amazon Web Services (AWS)\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Prerequisites](#prerequisites)\n  - [Technical Prerequisites](#technical-prerequisites)\n    - [Terraform Requirements](#terraform-requirements)\n    - [Docker Requirements](#docker-requirements)\n- [Getting Started](#getting-started)\n  - [Clone this Project](#clone-this-project)\n  - [Authenticate Terraform to Access AWS](#authenticate-terraform-to-access-aws)\n  - [Customize Input Values](#customize-input-values)\n- [Create and Manage Cloud Resources](#create-and-manage-cloud-resources)\n- [Increase the Max Prepared Transactions for External Postgres Database](#increase-the-max-prepared-transactions-for-external-postgres-database)\n- [Troubleshooting](#troubleshooting)\n- [Contributing](#contributing)\n- [License](#license)\n- [Additional Resources](#additional-resources)\n  - [AWS Resources](#aws-resources)\n  - [Terraform Resources](#terraform-resources)\n\n## Overview\n\nThis project contains Terraform scripts to provision the AWS cloud infrastructure resources that are required to deploy SAS Viya platform product offerings. Here is a list of resources that this project can create:\n\n  \u003e- Amazon VPC and Security Group\n  \u003e- Managed Amazon Elastic Kubernetes Service (EKS)\n  \u003e- Amazon EKS managed node groups with required labels and taints\n  \u003e- Infrastructure to deploy the SAS Viya platform CAS server in SMP or MPP mode\n  \u003e- Amazon Elastic Block Storage (EBS) for NFS\n  \u003e- Amazon Elastic File System (EFS)\n  \u003e- Amazon FSx for NetApp ONTAP File System\n  \u003e- Amazon Relational Database Service (RDS)\n\n[\u003cimg src=\"./docs/images/viya4-iac-aws-diag.png\" alt=\"Architecture Diagram\" width=\"750\"/\u003e](./docs/images/viya4-iac-aws-diag.png?raw=true)\n\nThis project helps you to automate the cluster-provisioning phase of SAS Viya platform deployment. To learn about all phases and options of the\nSAS Viya platform deployment process, see [Getting Started with SAS Viya and Amazon Elastic Kubernetes Service](https://go.documentation.sas.com/doc/es/sasadmincdc/v_013/itopscon/p111dd1k5z99kin1f7mciggn9wop.htm) in _SAS\u0026reg; Viya\u0026reg; Platform Operations_.\n\nOnce the cloud resources are provisioned, use the [viya4-deployment](https://github.com/sassoftware/viya4-deployment) project to deploy\nthe SAS Viya platform in your cloud environment. For more information about SAS Viya platform requirements and documentation for the deployment\nprocess, refer to the [SAS Viya platform Operations Guide](https://documentation.sas.com/?cdcId=itopscdc\u0026cdcVersion=default\u0026docsetId=itopswlcm\u0026docsetTarget=home.htm).\n\n**Note**: If you are using a deployment method other than [viya4-deployment](https://github.com/sassoftware/viya4-deployment) to deploy SAS Viya platform, install the Amazon EBS CSI driver and ensure the default StorageClass uses a supported provisioner (ebs.csi.eks.amazonaws.com when EKS Auto Mode is enabled, otherwise ebs.csi.aws.com); the in-tree kubernetes.io/aws-ebs is deprecated.\n\n## Prerequisites\n\nUse of these tools requires operational knowledge of the following technologies:\n\n- [Terraform](https://www.terraform.io/intro/index.html)\n- [Docker](https://www.docker.com/)\n- [AWS](https://aws.amazon.com)\n- [Kubernetes](https://kubernetes.io/docs/concepts/)\n\n### Technical Prerequisites\n\nThis project supports two options for running Terraform scripts:\n- Terraform installed on your local machine\n- Using a Docker container to run Terraform (Docker is required)\n\n  For more information, see [Docker Usage](./docs/user/DockerUsage.md). Using Docker to run the Terraform scripts is recommended.\n\nThe following are also required:\n- Access to an **AWS account** with a user that is associated with the applied [IAM Policy](./files/policies/devops-iac-eks-policy.json)\n\n  **NOTE:** The base [IAM Policy](./files/policies/devops-iac-eks-policy.json) document has been updated for the 7.2.0 release, you will need to adopt the updated permission list to take advantage of new features added to the viya4-iac-aws project code.\n- Subscription to [Ubuntu 20.04 LTS - Focal](https://aws.amazon.com/marketplace/pp/prodview-iftkyuwv2sjxi)\n\n#### Terraform Requirements:\n\n- [Terraform](https://www.terraform.io/downloads.html) v1.10.5\n- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) - v1.34.6\n- [jq](https://stedolan.github.io/jq/) v1.6\n- [AWS CLI](https://aws.amazon.com/cli) (optional; useful as an alternative to the AWS Web Console) v2.24.16\n\n#### Docker Requirements:\n\n- [Docker](https://docs.docker.com/get-docker/)\n\n## Getting Started\n\nUbuntu 20.04 LTS is the operating system that is used on the jump server and NFS server VMs. Ubuntu creates the `/mnt` location as an ephemeral drive, so it cannot be used as the root location of the `jump_rwx_filestore_path` variable.\n\n### Clone this Project\n\nRun the following commands from a terminal session:\n\n```bash\n# clone this repo\ngit clone -b \u003crelease-version-tag\u003e https://github.com/sassoftware/viya4-iac-aws\n\n# move to the project directory\ncd viya4-iac-aws\n```\n**NOTE:** To obtain a tagged release version of this project, always refer to the desired release version tag when cloning this repository as shown above. Alternatively, you can `git checkout \u003ctag\u003e` the tagged release version if you've already cloned the repository without a tag. \n\nYou can find the latest release version in the [releases page](https://github.com/sassoftware/viya4-iac-aws/releases).\n\n### Authenticate Terraform to Access AWS\n\nIn order to create and destroy AWS resources on your behalf, Terraform needs an AWS account that has sufficient permissions to perform all the actions defined in the Terraform manifest. See [Authenticating Terraform to Access AWS](./docs/user/TerraformAWSAuthentication.md) for details.\n\n\n### Customize Input Values\n\nTerraform scripts require variable definitions as input. Review and modify default values to meet your requirements. Create a file named\n`terraform.tfvars` to customize any input variable value documented in the [CONFIG-VARS.md](docs/CONFIG-VARS.md) file.\n\nTo get started, you can copy one of the example variable definition files provided in the [examples](./examples) folder. For more information about the\nvariables that are declared in each file, refer to the [CONFIG-VARS.md](docs/CONFIG-VARS.md) file.\n\n**NOTE:** You will need to update the `cidr_blocks` in the [variables.tf](variables.tf) file to allow traffic from your current network. Without these rules,\naccess to the cluster will only be allowed via the AWS Console.\n\nYou have the option to specify variable definitions that are not included in `terraform.tfvars` or to use a variable definition file other than\n`terraform.tfvars`. See [Advanced Terraform Usage](docs/user/AdvancedTerraformUsage.md) for more information.\n\n## Create and Manage Cloud Resources\n\nCreate and manage the required cloud resources. Perform one of the following steps, based on whether you are using Docker:\n\n- run [Terraform](docs/user/TerraformUsage.md) directly on your workstation\n- run the [Docker container](docs/user/DockerUsage.md) (recommended)\n\n### Increase the Max Prepared Transactions for External Postgres Database\n\nIf you are using an external Postgres server, you will need to ensure that the max prepared transactions is at least 1024. You can verify this information by opening the AWS Console and navigating to the RDS Service. Select your Postgres instance, open the Configuration tab, and click on the link to the database's parameter group. Search for the 'max_prepared_transactions' parameter.\n\nIf the max prepared transactions is less than 1024, you will need to update the value. Click on the \"Edit Parameters\" button and change the value to 1024. Once you save your changes, you will need to wait for the database to apply the changes. This can be found back on the configuration tab. After it has been applied, you will need to reboot the database.\n\n## Troubleshooting\n\nSee the [Troubleshooting](./docs/Troubleshooting.md) page for information about possible issues that you might encounter.\n\n## Contributing\n\n\u003e We welcome your contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to submit contributions to this project.\n\n## License\n\n\u003e This project is licensed under the [Apache 2.0 License](LICENSE).\n\n## Additional Resources\n\n### AWS Resources\n\n- [Installing AWS CLI v2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)\n- [AWS EKS Intro](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)\n\n### Terraform Resources\n\n- [AWS Provider](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)\n- [AWS EKS](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_cluster)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsassoftware%2Fviya4-iac-aws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsassoftware%2Fviya4-iac-aws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsassoftware%2Fviya4-iac-aws/lists"}