Deploying SAP Cloud Connector 2.18 on AWS Free Tier Using CentOS Stream 9

Estimated read time 8 min read

Running SAP Cloud Connector (SCC) on AWS Free Tier sounds simple… until you realise that SCC’s default memory footprint overwhelms a 1-GB t2.micro instance. CentOS Stream 9 can run SCC 2.18 reliably with heap adjustments and automation.

Important:
SAP Cloud Connector 2.18 is not officially supported on CentOS Stream. This guide is strictly for training, sandboxing, and educational use.

Although this guide uses CentOS Stream 9 to remain within AWS Free Tier, the same Terraform and installation flow also works on Red Hat Enterprise Linux 9, which is supported by SAP. If you intend to use SCC in a productive landscape, use RHEL.

1. Prerequisites

AWS account (EC2, VPC, S3 permissions)Terraform installed locallySSH clientA CentOS Stream 9 AMI (x86_64) for your regionAn EC2 key pairBasic understanding of shell scriptingAn EC2 key pair (placeholder: <YOUR_KEY_PAIR>)An S3 bucket containing the SCC ZIP file, for example:<YOUR_S3_BUCKET>/sapcc-2.18.0-linux-x64.zip

Note: Direct downloads from tools.hana.ondemand.com return HTML instead of the ZIP file. Hosting the ZIP in S3 avoids this.

2. Project Directory

terraform_scc/
├── main.tf
├── install-scc.sh
├── <YOUR_KEY_PAIR.pem>
└── (optional) variables.tf / outputs.tf

3. Terraform Configuration (main.tf)

terraform {
required_version = “>= 1.5”

required_providers {
aws = {
source = “hashicorp/aws”
version = “~> 5.0”
}
}
}

provider “aws” {
region = “us-east-2”
}

resource “aws_key_pair” “” {
key_name = “<YOUR_KEY_PAIR.pem>”
public_key = file(“${path.module}/”)
}

resource “aws_security_group” “sap_scc_sg” {
name = “sap-scc-sg”
description = “Allow SCC UI and SSH”
vpc_id = “<YOUR_VPC_ID>”

ingress {
from_port = 22
to_port = 22
protocol = “tcp”
cidr_blocks = [“0.0.0.0/0”]
}

ingress {
from_port = 8443
to_port = 8443
protocol = “tcp”
cidr_blocks = [“0.0.0.0/0”]
}

egress {
from_port = 0
to_port = 0
protocol = “-1”
cidr_blocks = [“0.0.0.0/0”]
}

tags = {
Name = “sap-scc-sg”
}
}

resource “aws_instance” “sap_scc” {
ami = “<CENTOS_STREAM_9_AMI>”
instance_type = “t2.micro”
key_name = aws_key_pair..key_name

subnet_id = “<YOUR_SUBNET_ID>”
associate_public_ip_address = true

vpc_security_group_ids = [
aws_security_group.sap_scc_sg.id
]

user_data = file(“${path.module}/install-scc.sh”)

tags = {
Name = “SAP-Cloud-Connector-CentOS”
}
}

output “public_ip” {
value = aws_instance.sap_scc.public_ip
}

4. Running Terraform

terraform init
terraform plan
terraform apply -auto-approve
terraform output -raw public_ip

To destroy:

terraform destroy -auto-approve

5. Installation Script (install-scc.sh)

#!/bin/bash
set -euxo pipefail

SCC_VERSION=”2.18.0″
SCC_FILE=”sapcc-${SCC_VERSION}-linux-x64.zip”

S3_BUCKET=”<YOUR_S3_BUCKET>”
SCC_URL=”https://${S3_BUCKET}.s3.amazonaws.com/${SCC_FILE}”

LOG_FILE=”/var/log/scc-install.log”

exec > >(tee -a “${LOG_FILE}”) 2>&1

echo “=== SAP Cloud Connector install on CentOS Stream 9 ===”
echo “Version: ${SCC_VERSION}”
echo “Source: ${SCC_URL}”

echo “=== Installing prerequisites ===”
dnf -y makecache
dnf -y install curl unzip java-11-openjdk-headless || dnf -y install java-17-openjdk-headless

cd /tmp

echo “=== Downloading SCC ===”
curl -L -o “${SCC_FILE}” “${SCC_URL}”

echo “=== Verifying ZIP ===”
file “${SCC_FILE}” | grep -qi “Zip” || exit 1

echo “=== Extracting ===”
rm -rf /tmp/scc-installer
mkdir -p /tmp/scc-installer
unzip -o “${SCC_FILE}” -d /tmp/scc-installer
cd /tmp/scc-installer

RPM_FILE=$(ls com.sap.scc-ui-*.rpm | head -n 1)

echo “=== Installing SCC RPM ===”
dnf -y install –nogpgcheck “./${RPM_FILE}”

echo “=== Tuning JVM for t2.micro ===”
sed -i
-e ‘s/-Xms1024m/-Xms256m/’
-e ‘s/-Xmx1024m/-Xmx512m/’
-e ‘s/-XX:MaxNewSize=512m/-XX:MaxNewSize=256m/’
-e ‘s/-XX:NewSize=512m/-XX:NewSize=256m/’
/opt/sap/scc/props.ini || true

echo “=== Starting SCC ===”
systemctl enable scc_daemon.service || true
systemctl restart scc_daemon.service || true

echo “=== Waiting for port 8443 ===”
for i in {1..12}; do
ss -tulpn | grep 8443 && break
sleep 10
done

echo “=== SCC install complete ===”

6. SSH Access

ssh -i <YOUR_KEY_PAIR.pem> ec2-user@<PUBLIC_IP>

7. Accessing the SCC UI

https://<PUBLIC_IP>:8443

The default credentials are:

User: Administrator
Password: manage

After login, you will be prompted to set a new password.

8. Connecting SCC to SAP BTP

From BTP Cockpit collect:

Region code (example: us10)Subaccount ID (GUID)Subaccount user (your BTP e-mail)Password (your IAS/BTP password)

In SCC navigate: Connector → Define Subaccount

9. Observations & Recommendations

SCC 2.18 is unsupported on CentOS; use RHEL in productive landscapes.Heap tuning is mandatory on t2.micro.Terraform ensures clean reproducibility.Perfect for training, exams, PoCs.

10. Summary

You now have a free-tier compatible SCC 2.18 deployment running on CentOS Stream 9, launched automatically via Terraform, connected to BTP.

 

​ Running SAP Cloud Connector (SCC) on AWS Free Tier sounds simple… until you realise that SCC’s default memory footprint overwhelms a 1-GB t2.micro instance. CentOS Stream 9 can run SCC 2.18 reliably with heap adjustments and automation.Important:SAP Cloud Connector 2.18 is not officially supported on CentOS Stream. This guide is strictly for training, sandboxing, and educational use.Although this guide uses CentOS Stream 9 to remain within AWS Free Tier, the same Terraform and installation flow also works on Red Hat Enterprise Linux 9, which is supported by SAP. If you intend to use SCC in a productive landscape, use RHEL.1. PrerequisitesAWS account (EC2, VPC, S3 permissions)Terraform installed locallySSH clientA CentOS Stream 9 AMI (x86_64) for your regionAn EC2 key pairBasic understanding of shell scriptingAn EC2 key pair (placeholder: <YOUR_KEY_PAIR>)An S3 bucket containing the SCC ZIP file, for example:<YOUR_S3_BUCKET>/sapcc-2.18.0-linux-x64.zipNote: Direct downloads from tools.hana.ondemand.com return HTML instead of the ZIP file. Hosting the ZIP in S3 avoids this.2. Project Directoryterraform_scc/
├── main.tf
├── install-scc.sh
├── <YOUR_KEY_PAIR.pem>
└── (optional) variables.tf / outputs.tf3. Terraform Configuration (main.tf)terraform {
required_version = “>= 1.5”

required_providers {
aws = {
source = “hashicorp/aws”
version = “~> 5.0”
}
}
}

provider “aws” {
region = “us-east-2”
}

resource “aws_key_pair” “” {
key_name = “<YOUR_KEY_PAIR.pem>”
public_key = file(“${path.module}/”)
}

resource “aws_security_group” “sap_scc_sg” {
name = “sap-scc-sg”
description = “Allow SCC UI and SSH”
vpc_id = “<YOUR_VPC_ID>”

ingress {
from_port = 22
to_port = 22
protocol = “tcp”
cidr_blocks = [“0.0.0.0/0”]
}

ingress {
from_port = 8443
to_port = 8443
protocol = “tcp”
cidr_blocks = [“0.0.0.0/0”]
}

egress {
from_port = 0
to_port = 0
protocol = “-1”
cidr_blocks = [“0.0.0.0/0”]
}

tags = {
Name = “sap-scc-sg”
}
}

resource “aws_instance” “sap_scc” {
ami = “<CENTOS_STREAM_9_AMI>”
instance_type = “t2.micro”
key_name = aws_key_pair..key_name

subnet_id = “<YOUR_SUBNET_ID>”
associate_public_ip_address = true

vpc_security_group_ids = [
aws_security_group.sap_scc_sg.id
]

user_data = file(“${path.module}/install-scc.sh”)

tags = {
Name = “SAP-Cloud-Connector-CentOS”
}
}

output “public_ip” {
value = aws_instance.sap_scc.public_ip
}4. Running Terraformterraform init
terraform plan
terraform apply -auto-approve
terraform output -raw public_ipTo destroy:terraform destroy -auto-approve5. Installation Script (install-scc.sh)#!/bin/bash
set -euxo pipefail

SCC_VERSION=”2.18.0″
SCC_FILE=”sapcc-${SCC_VERSION}-linux-x64.zip”

S3_BUCKET=”<YOUR_S3_BUCKET>”
SCC_URL=”https://${S3_BUCKET}.s3.amazonaws.com/${SCC_FILE}”

LOG_FILE=”/var/log/scc-install.log”

exec > >(tee -a “${LOG_FILE}”) 2>&1

echo “=== SAP Cloud Connector install on CentOS Stream 9 ===”
echo “Version: ${SCC_VERSION}”
echo “Source: ${SCC_URL}”

echo “=== Installing prerequisites ===”
dnf -y makecache
dnf -y install curl unzip java-11-openjdk-headless || dnf -y install java-17-openjdk-headless

cd /tmp

echo “=== Downloading SCC ===”
curl -L -o “${SCC_FILE}” “${SCC_URL}”

echo “=== Verifying ZIP ===”
file “${SCC_FILE}” | grep -qi “Zip” || exit 1

echo “=== Extracting ===”
rm -rf /tmp/scc-installer
mkdir -p /tmp/scc-installer
unzip -o “${SCC_FILE}” -d /tmp/scc-installer
cd /tmp/scc-installer

RPM_FILE=$(ls com.sap.scc-ui-*.rpm | head -n 1)

echo “=== Installing SCC RPM ===”
dnf -y install –nogpgcheck “./${RPM_FILE}”

echo “=== Tuning JVM for t2.micro ===”
sed -i
-e ‘s/-Xms1024m/-Xms256m/’
-e ‘s/-Xmx1024m/-Xmx512m/’
-e ‘s/-XX:MaxNewSize=512m/-XX:MaxNewSize=256m/’
-e ‘s/-XX:NewSize=512m/-XX:NewSize=256m/’
/opt/sap/scc/props.ini || true

echo “=== Starting SCC ===”
systemctl enable scc_daemon.service || true
systemctl restart scc_daemon.service || true

echo “=== Waiting for port 8443 ===”
for i in {1..12}; do
ss -tulpn | grep 8443 && break
sleep 10
done

echo “=== SCC install complete ===”6. SSH Accessssh -i <YOUR_KEY_PAIR.pem> ec2-user@<PUBLIC_IP>7. Accessing the SCC UIhttps://<PUBLIC_IP>:8443The default credentials are:User: Administrator
Password: manageAfter login, you will be prompted to set a new password.8. Connecting SCC to SAP BTPFrom BTP Cockpit collect:Region code (example: us10)Subaccount ID (GUID)Subaccount user (your BTP e-mail)Password (your IAS/BTP password)In SCC navigate: Connector → Define Subaccount9. Observations & RecommendationsSCC 2.18 is unsupported on CentOS; use RHEL in productive landscapes.Heap tuning is mandatory on t2.micro.Terraform ensures clean reproducibility.Perfect for training, exams, PoCs.10. SummaryYou now have a free-tier compatible SCC 2.18 deployment running on CentOS Stream 9, launched automatically via Terraform, connected to BTP.   Read More Technology Blog Posts by Members articles 

#SAP

#SAPTechnologyblog

You May Also Like

More From Author