Getting started with Bitbucket Data Center in AWS
This page provides an overview of the options available for running self-managed Bitbucket Data Center and Bitbucket Server instances on Amazon Web Services.
Running Bitbucket on Amazon Web Services (AWS) gives you scalable computing capacity without the need to invest in hardware up front, while retaining control over where and how your code is hosted within your organisation.
To this end, Atlassian provides:
- a reference deployment in the form of an AWS Quick Start, which launches, configures, and runs Bitbucket Data Center and required services in a matter of minutes, using AWS best practices for security and availability
- an Amazon CloudFormation template that can be customised for different deployment needs while keeping the process automated
- an Amazon Machine Image (AMI) that can be used for running Bitbucket on EC2 as an application server building block in more heavily customised deployments
- tools and guidelines for manually deploying, backing up, restoring, sizing, and administering Bitbucket Server and Bitbucket Data Center instances on AWS
Deploying Bitbucket Data Center using the AWS Quick Start
The Quick Start provides two deployment options, each with its own template. The first option deploys the Atlassian Standard Infrastructure (ASI) and then provisions Bitbucket Data Center into this ASI. The second option only provisions Bitbucket Data Center on an existing ASI.
Atlassian Standard Infrastructure (ASI)
The ASI is a virtual private cloud (VPC) that contains the components required by all Atlassian Data Center applications. For more information, see Atlassian Standard Infrastructure (ASI) on AWS.
Here's an overview of the architecture deployed by the AWS Quick Start for Bitbucket Data Center:
The deployment consists of the following components:
- Instances/nodes: One or more Amazon Elastic Cloud (EC2) instances as cluster nodes, running Bitbucket.
- Load balancer: An Amazon Elastic Load Balancer (ELB), which works both as load balancer and SSL-terminating reverse proxy.
- Amazon EFS host: A shared file system for storing artifacts in a common location, accessible to multiple Jira nodes. The Quick Start architecture implements the shared file system using the highly available Amazon Elastic File System (Amazon EFS) service.
- Database: An Amazon Relational Database (RDS) instance as the shared database.
- Storage: A shared NFS server to store repositories in a common location accessible to all Bitbucket nodes.
- An Amazon Elasticsearch Service domain for code and repository search.
For more information on the architecture, components and deployment process, see our Quick Start Guide.
Use the Quick Start as is or develop your own
To get you up and running as quickly as possible, the Quick Start doesn't allow the same level of customization as a manual installation. You can use our templates either as is, or as a reference for creating your own template.
Auto Scaling groups
If you can identify any periods of high and low load, you can schedule the application node cluster to scale accordingly. See Scheduled Scaling for Amazon EC2 Auto Scaling for more information.
To study trends in your organization's load, you'll need to monitor the performance of your deployment. Refer to Bitbucket Data Center sample deployment and monitoring strategy for tips on how to do so.
Administering Bitbucket Data Center in AWS
See Administering Bitbucket Data Center in AWS for information about performing administration tasks on a Bitbucket instance within AWS, including:
- configuring variables when launching Bitbucket in AWS
- maintaining, resizing, upgrading, migrating, and customizing your Bitbucket deployment in AWS
- additional details about the components within the Bitbucket AMI
Securing Bitbucket within AWS
AWS is accessed over the public Internet, so it is important to apply appropriate security measures when running Bitbucket Server in AWS. See Best practices for securing Bitbucket in AWS for security guidance on a range of security topics, including Amazon Virtual Private Cloud (VPC), Security Groups, and SSL.
To get the best performance out of your Bitbucket deployment in AWS, it's important to not under-provision your instance's CPU, memory, or I/O resources. Whether you choose to deploy Bitbucket Data Center, which offers performance gains via horizontal scaling, or a single node Bitbucket Server instance, we have specific recommendations on choosing AWS EC2 and EBS settings for best performance per node.
If you are using the CloudFormation template, these settings are already included. Otherwise, please see Recommendations for running Bitbucket in AWS.
Smart Mirroring can drastically improve Git clone speeds for distributed teams working with large repositories. For an overview of the benefits to mirroring, see Smart Mirroring. The Bitbucket Data Center FAQ also answers many common questions about smart mirroring (and mirroring in general).
For detailed instructions, see Set up a mirror.