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