This is a quickstart guide to getting an instance of Jira Server up and running inside of AWS quickly. It's not particularly secure or robust, but if you need something up for some quick testing or development this should work.

Create three Security Groups

Start off by making a few Security Groups.

  • One for the Elastic Load Balancer. Add an inboud rule for port 80.
  • One for the Application Node. Add an inbound rule for port 8080 from the ELB security group. Add an inbound rule for SSH from your computer.
  • One for the RDS. Add an inbound rule for port 5432 from the Application Node security group.

Create an EC2 instance

After that, you'll want to create an actual EC2 instance. This guide assumes you've already set up at least one Key-Pair for your AWS account.

  • Launch a new EC2 instace
  • Amazon Linux should be fine and will be assumed for the rest of this guide
  • Select at least a t2.medium, anything lower and Jira won't be able to load
  • Select a Public Subnet
  • Best practice would be to add a meaningful tag
  • Use the Application Node Security Group
  • Use whatever Key-Pair you'd like

Create a Load Balancer

Next you'll want to create a load balancer. Since you're only using one node, this isn't strictly necessary, but it doesn't cost anything and it's the easiest way to do the port 80-8080 mapping, and is a good best practice to get in the habit of.

  • Create an Application Load Balancer
  • Internet Facing
  • Assign it to the Public Subnets in your VPC
  • Use the ELB Security Group
  • Create a new Target Group, use port 8080
  • Add the EC2 instance for the Jira Node you created above as a Registered Target

Create an RDS

After that, you'll need to create the database for Jira to talk to. These instructions are for PostgreSQL 11, the latest supported platform as of this writing.

  • Use Standard create
  • Select the latest PostgreSQL 11 available
  • Set a master username and strong password
  • I've gotten away with as low as the t2.micro tier, of course you may want to choose something bigger depending on how much use you expect this instance to get
  • Make sure to expand the Additional connectivity configuration dropdown and make sure to select the RDS Security Group you created

Install the Application

  • SSH into your EC2 instnace (remember to use your pem file and the ec2-user account)
  • Install Jira, default settings should be fine.
    $ wget https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.0-x64.bin
    $ chmod +x atlassian-jira-software-8.13.0-x64.bin
    $ sudo ./atlassian-jira-software-8.13.0-x64.bin
  • Set up the DB. Youll obviously need to use the endpoint for your RDS, along with a better username and password.
    $ sudo amazon-linux-extras install postgresql10
    $ psql -U postgres -h YOUR_RDS_ENDPOINT
    postgres=> CREATE DATABASE jiradb WITH ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0;
    postgres=> CREATE USER jiradbuser with encrypted password 'SOME_PASSWORD';
    postgres=> \q

Complete Setup

Navigate to the web address of your ELB, go through the Jira setup UI as normal.