5 Turn-key RockRMS Hosting with AWS Shared by Ben Murphy, Harvest Bible Chapel Pittsburgh North 6 years ago General Beginner In under 30-50 minutes! Some technical knowledge helpful, but not required! This is the fastest way to get hosted on RockRMS, based on the long technical version of this recipe: https://community.rockrms.com/recipes/96/free-tier-aws-hosting-for-rockrms. This hosting environment is best suited for smaller church production hosting, or demo/development purposes, but can easily scale once completed. Follow along with the video and steps below (we suggest playing the video in a second browser window). Note (updated 2026-07): This recipe has been modernized and no longer relies on any hardcoded values: The Db Stack builds on Microsoft SQL Server 2022 (required by Rock v18+); RDS auto-selects and patches the latest minor version. The Web Stack resolves the latest Microsoft Windows Server 2022 English Full Base AMI automatically at deploy time — no more manual AMI updates to chase. All stacks are now region-independent — deploy in any AWS commercial region. The Web Stack now verifies its own setup: it only reports CREATE_COMPLETE after IIS, .NET, SSMS, and the Rock installer files are actually in place (and it rolls back with an error if anything fails). Green means ready. The database Admin user step can now be automated — provide the optional rockDbUserPassword when launching the Web Stack and skip the manual SSMS step entirely (see Step 9). Instance sizes & cost: The defaults are tuned for a small church running Rock in production: Database (RDS): db.t3.small (~2 GB RAM). For demo/dev you can drop to db.t3.micro, the Free-Tier-eligible class. (RDS SQL Server is x86-only — there is no db.t4g option.) Web server (EC2): t3.medium (4 GB RAM) — comfortable for Windows Server + IIS + Rock. t3.small is the practical minimum. These defaults are not fully Free-Tier. AWS also changed its Free Tier on 2025-07-15 (new accounts get a Free Plan / Paid Plan credit model), so verify what your account is eligible for. Estimate your monthly cost with the AWS Pricing Calculator. See the cost-savings tip at the end of this recipe. vRX-Presentation-Demo from Harvest Bible Chapel Pittsburgh North on Vimeo. Let's Get Started! Create an AWS account (https://aws.amazon.com) [ less than 3 minutes ] Click on the large orange "Create an AWS Account" button in the top-right corner of the page. Use an existing Amazon account or start with a fresh one for your church organization. We suggest starting with a clean new account and credit card. Need a video walkthrough on account creation? https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/ After your account is created and you've logged in for the first time, select your region preference before proceeding (this recipe works in any AWS region — just keep all stacks in the same one). Complete Prerequisites Create a key pair and download the PEM file [ 1 minute ] This encrypted key is for logging into the Windows Server instance (via Remote Desktop). Click on Services — search for "EC2". In the left-hand navigation click on the "Key Pairs" link and "Create key pair" (AWS uses this to decrypt and provide the initial administrator password so you can log into the remote desktop). Save this .pem file for later — you will need it! The key pair can have any name; you'll simply select it from a dropdown when you launch the Web Stack. Get your current PC's public IP address [ 30 seconds ] Go to www.whatismyip.org or google "what is my IP" and make note of your current IP — you'll enter this when running the first stack. CloudFormation Console Click on Services — search for "cloudformation" Create the VPC (networking foundation) [ Copy and paste this path to launch the VPC Stack ] https://rock-cft-bucket-share.s3.amazonaws.com/vpccft.yaml Sets up a core VPC for any network/provisioning requirements — [ 1 min to run and complete ] Things you don't need to know nor likely care about... this stack creates: a VPC, security groups (DB, admin, SMTP email, ALB, and web), and subnet groups (DB, web). It is now region-independent. Create the RDS database (SQL Server 2022) [ Copy and paste this path to launch the DB Stack ] https://rock-cft-bucket-share.s3.amazonaws.com/dbcft.yaml Sets up a Db tier for RockRMS — [ 1 minute to run, ~15 minutes of waiting for it to build ] Builds Microsoft SQL Server 2022 Express (required by Rock v18+). The default instance is db.t3.small (~2 GB RAM); change dbSize to db.t3.micro for a Free-Tier demo. There is nothing to choose for the SQL version — AWS selects and patches the latest 2022 minor automatically. Things you don't need to know nor likely care about... this stack creates: an S3 bucket for RockDB backups/snapshots, a DB Option Group (usable for Rocket.Chat or Jitsi Meet later), the RockDB, its master user/password, and its endpoint address and port. Create the Web Stack (Windows + IIS + Rock) [ Copy and paste this path to launch the Web Stack ] https://rock-cft-bucket-share.s3.amazonaws.com/webcft.yaml Important! For the initial Web Stack creation, keep "useSSLStackReference" set to false. When launching, select your key pair from the webKeyPair dropdown. The default web server size is t3.medium (4 GB). The latest Windows Server 2022 AMI is resolved automatically — nothing to update. Optional but recommended — automate Step 9 here. Enter a new secret password in the rockDbUserPassword parameter and the server will create the rockuser database login for you — no remote desktop or SSMS needed. Document this password; you'll enter it in the Rock installer. If you use this option, wait for the Db Stack to finish before launching the Web Stack (leave it blank and the two can run concurrently as before; you'll then do Step 9 by hand). You can also set webTimeZone to your church's Windows time zone (default: Eastern Standard Time) — Rock stores times in server-local time. Sets up the web tier for RockRMS and installs IIS, SSMS, and all the necessary settings — [ ~3 mins to run the stack; the stack then stays "in progress" while the server configures itself (up to ~60–75 minutes, SSMS is the slow part) and only reports CREATE_COMPLETE when everything actually succeeded. The server finishes with one quick automatic reboot right after the stack goes green. ] Things you don't need to know nor likely care about... this stack creates: the ALB DNS for the Rock web host, the web host Instance ID, its EIP, and it downloads the current RockRMS installer zip to the server. The full setup log is on the server at C:\rock-bootstrap.log if you're curious or ever need to troubleshoot. Note: This stack also applies the IIS fast-startup settings from Jim Michael's excellent recipe: https://community.rockrms.com/recipes/176/preload-rock-for-a-faster-start Create the SSL Certificate (SSL Stack optional, but highly recommended. Skip to Step 9 if you're not running the SSL stack.) [ Copy and paste this path to launch the SSL Stack ] https://rock-cft-bucket-share.s3.amazonaws.com/sslcft.yaml This can be run at any point, even after Rock is installed. [ 1 min to run; another 5-10 mins to validate the certificate and adjust DNS; can run concurrently with the Db Stack ] Note: If you run this stack, once it completes you must re-run the Web Stack to reroute HTTP (port 80) traffic to secure HTTPS (port 443). Re-running the Web Stack for this only takes ~1 minute. Search for "ACM" or "certificate" to begin the validation process. Once your certificate is validated you may move on. Update the Web Stack with SSL (optional, but highly recommended; requires an SSL Stack) [ 1 min to update the previously run Web Stack ] Navigate back to your CloudFormation dashboard (Services → search "cloudformation"). Select your existing "Web Stack" and click "Update" in the top right. Select "Use the current template" and flip "useSSLStackReference" from false to true. Click Next through to the final page and finish with "Update stack". Create the database Admin user Already done? If you entered a rockDbUserPassword when launching the Web Stack, this step was completed automatically — the rockuser login already exists with that password. Skip to the next step. The manual instructions below are only for those who left it blank (or ever need to recreate the login). This manual step is only needed once. [ ~3 mins to log into the remote desktop and create the database user ] PAUSE! — The Db Stack must be complete before continuing. Check its status in the CloudFormation dashboard first. Here's how to create the database Admin user: Open SQL Server Management Studio (search "ssms" in the Start Menu). Log in using your master user/password. Click the "New Query" button. Copy and paste the following SQL script (enter a new secret password between the single quotes marked "enteryourpasswordhere" before running): USE master; GO CREATE LOGIN [rockuser] WITH PASSWORD = N'enteryourpasswordhere', CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF; GO GRANT ALTER ANY CONNECTION TO [rockuser] WITH GRANT OPTION; GRANT CREATE ANY DATABASE TO [rockuser] WITH GRANT OPTION; GRANT VIEW ANY DATABASE TO [rockuser] WITH GRANT OPTION; GRANT VIEW ANY DEFINITION TO [rockuser] WITH GRANT OPTION; GRANT VIEW SERVER STATE TO [rockuser] WITH GRANT OPTION; Click "Execute" once your new password is entered. Document your db admin user/password — you'll need it for the RockRMS installation and for any external service (e.g., Microsoft Power BI) connecting directly to the database. Close SSMS. Run the RockRMS Installation Once the Web Stack shows CREATE_COMPLETE, give the server ~2 minutes to finish its final automatic reboot, then open the Rock installer in your browser: In the CloudFormation dashboard, select the Web Stack and open its Outputs tab. Browse to http://<rockWebALBDNS>/Start.aspx (or use the EC2 instance's public IP: http://<public-ip>/Start.aspx). Proceed with the RockRMS installation. When asked for the database credentials, enter the Db Stack's endpoint address, the database name, and rockuser + the password from Step 9 (or the rockDbUserPassword you entered at Web Stack launch). IMPORTANT! — The db admin account (Step 9) must exist before starting the installation — either created automatically via rockDbUserPassword or manually in SSMS. Change your domain DNS settings If you haven't already adjusted your DNS in your domain registrar, do so now. Otherwise you can reach your finished RockRMS install using the public IP of the EC2 instance shown in the AWS console. Complete!! Post Install Processes (optional, but highly recommended) Take a clean-install RDS (db) snapshot and back up/zip the inetpub folder — these two are critical for a successful backup and restore of your RockRMS environment. We outline this process here: (https://community.rockrms.com/recipes/96/free-tier-aws-hosting-for-rockrms#P4-1A) Upgrade to the most current version of RockRMS for the latest fixes and features — ensure you've created a manual RDS database snapshot and inetpub backup first. Go to General Settings → Rock Update. Install the next highest version; this restarts the RockRMS site. Be patient while migrations run on restart. PRO TIP! You don't need to be logged into the Remote Desktop VM for updates (you do to back up the inetpub folder), so you may as well stay logged in and open Task Manager to watch CPU/Memory during updates and restarts to gauge when migrations finish. Once all updates are applied and the site is back up, make one final clean RDS database snapshot and inetpub backup before customizing Rock for your church's needs. Next step: turn on email with Amazon SES Your Rock site is running — but it can't send a single email until you configure a mail transport. Since you're already hosted on AWS, the natural next move is AWS SES Email SMTP Transport for RockRMS. Follow it as soon as this install is complete. Why SES is the obvious choice once you're on AWS It's effectively free at church scale. Amazon SES sends up to 50,000 emails/month at no cost when sending from your EC2 instance — no per-message fees like Mailgun or SendGrid, and nothing new to sign up for. See SES pricing. You already have everything it needs. This recipe's Web Stack already opens outbound access to the SES SMTP endpoint (port 587), and your domain lives right where you'll verify it — setup is just a few clicks plus a DNS record. Better deliverability. Verifying your domain with SPF/DKIM (walked through in the SES recipe) means your weekly announcements and giving receipts land in inboxes, not spam folders. Room to grow. Start in the SES sandbox for testing, then request production access to email your whole congregation. The same account later supports the SES API transport with full open/click, bounce, and complaint tracking. Plan ahead: moving SES out of the sandbox is a short AWS support request that can take a business day or two — kick it off early so email is ready when you launch. Set up AWS SES email → Strongly Recommended: Lock in a Reserved Instance to cut your bill Rock runs around the clock, so both your web server and database are steady-state, always-on workloads — the ideal case for a Reserved Instance (RI). Once you've confirmed your sizes work (give it a week or two on On-Demand first), reserving them can cut those two line items dramatically versus the monthly On-Demand rate. Reserve both pieces: EC2 web server (your t3.medium Windows host) — up to ~72% off On-Demand on a 3-year term. The Windows platform is included, so set the RI's platform to Windows. EC2 Reserved Instances (docs) · EC2 RI pricing RDS database (your db.t3.small SQL Server instance) — up to ~69% off On-Demand in steady state. Note: for SQL Server the reservation is locked to the exact instance size (no size flexibility), and storage/backup are billed separately. RDS Reserved DB Instances (docs) · RDS pricing Terms & payment: RIs come in 1-year or 3-year terms with No Upfront, Partial Upfront, or All Upfront payment (more upfront = bigger discount). A 1-year No Upfront RI has no lump-sum cost and still saves meaningfully — an easy first step for a small-church budget. Newer alternative — Savings Plans. Compute / EC2 Instance Savings Plans discount EC2 (up to ~66–72%) with more flexibility than RIs. As of December 2025 the new Database Savings Plans also cover RDS (up to ~35%, 1-year, no upfront). Because SQL Server Express is free-licensed, the "license billed separately" caveat costs you nothing here. Compare RI vs. Savings Plan for your exact instances before you buy. Estimate with AWS Pricing Calculator Savings Plans overview Discount percentages are AWS's published headline figures and vary by instance type, region, and term — confirm yours in the Pricing Calculator or in AWS Cost Explorer's RI/Savings Plan recommendations. Resources Recommended next step — AWS SES Email SMTP Transport for RockRMS (recipe #171): free, high-deliverability email once Rock is running Amazon SES pricing — 50,000 emails/month free from EC2 Free Tier AWS Hosting for RockRMS (recipe #96) — the detailed, long-form original this recipe is based on Preload Rock for a Faster Start (recipe #176) — the IIS fast-startup settings applied by the Web Stack Prefer a scripted, repeatable setup? See the companion "Fastest Way to Set Up Rock on AWS" recipe for a one-command Terraform path that builds this same architecture. AWS Pricing Calculator · AWS Savings Plans