Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
b46a62c
Dbeaver devops#2136 te version update procedure (#171)
ggxed Sep 16, 2025
aedee41
Dbeaver devops#2199 fix install dbeaver te script (#174)
ggxed Oct 20, 2025
08fdc66
dbeaver/dbeaver-devops#2173 Added a paragraph about the desktop appli…
ggxed Oct 28, 2025
2a6f81f
dbeaver/dbeaver-devops#2258 Moved kafka environment from deployments …
ggxed Nov 17, 2025
52addd6
dbeaver/dbeaver-devops#2284 Added configuration of image source for k…
ggxed Nov 20, 2025
9709391
dbeaver/dbeaver-devops#2304 Update devel (#181)
ggxed Dec 8, 2025
058c3d0
dbeaver/tech-docs#1294 te windows deploy (#182) (#183)
ggxed Dec 19, 2025
86f0bf2
dbeaver/dbeaver-devops#2354 Added Configure SQL Server database (#185)
ggxed Jan 15, 2026
eb8e8b1
dbeaver/dbeaver-devops#2329 Added JAVA_TOOL_OPTIONS in docker deploym…
ggxed Jan 20, 2026
73cc8fc
dbeaver/dbeaver-devops#1669 Avoid keeping password in example (#189)
ggxed Feb 12, 2026
8b21cd2
dbeaver/dbeaver-devops#2461 db isolated in compose projects (#191)
mayerro Feb 12, 2026
9c6d05c
dbeaver/dbeaver-devops#2459 Remove CLOUDBEAVER_PUBLIC_URL (#190)
ggxed Feb 13, 2026
bef9242
dbeaver/pro#6761 added host mode envs (#184)
Nexus6v2 Feb 13, 2026
2a10538
dbeaver/dbeaver-devops#2465 Added listen_addresses=localhost in postg…
ggxed Feb 26, 2026
7fa0f30
dbeaver/dbeaver-devops#2467 Fixed update with dbeaver-te (#192)
ggxed Mar 3, 2026
088b538
dbeaver/dbeaver-devops#2480 Fixed environment KAFKA_CFG_CONTROLLER_QU…
ggxed Mar 4, 2026
26b3be9
dbeaver/dbeaver-devops#2499 Added image_source in AWS ECS deployment …
ggxed Mar 5, 2026
2355db7
dbeaver/dbeaver-devops#2467 Added check for COMPOSE_FILE in env for a…
ggxed Mar 6, 2026
f789f76
dbeaver/dbeaver-devops#2512 Updated devel to 26.1.0 (#198)
ggxed Mar 10, 2026
2dac6f9
dbeaver/dbeaver-devops#2518 Fixed networks in podman-compose.yml for …
ggxed Mar 11, 2026
0bd5fa3
dbeaver/dbeaver-devops#2605 Added header description for proxy config…
ggxed Apr 27, 2026
7f7f765
Dbeaver devops#2197 aws ecs deployment improvements (#200)
ggxed Apr 29, 2026
3a73231
dbeaver/dbeaver-devops#2197 The postgres_image variable has been adde…
ggxed Jun 1, 2026
5442e13
dbeaver/dbeaver-devops#2678 Release 26.1.0
ggxed Jun 4, 2026
a74dfe0
dbeaver/dbeaver-devops#2678 Resolve merge conflict
ggxed Jun 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions AWS/ecs-fargate/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,3 +75,19 @@ git clone https://github.com/dbeaver/team-edition-deploy.git
2. Specify the desired version in `variables.tf` in the `dbeaver_te_version` variable.

3. Run `terraform apply` to upgrade the ECS cluster and complete the deployment.


## Modules description

This deployment is built on self-contained parameterized Terraform modules. All modules are located in the local [`./modules/`](./modules/) folder, so every piece of infrastructure can be reviewed, customized and maintained. Root `*.tf` files only wire modules together and pass variables, resource definitions are kept inside the modules.

- **alb** — Application Load Balancer with HTTP to HTTPS redirect and HTTPS listener.
- **alb-route** — Target group and listener rule for a single backend service.
- **ecs-cluster** — ECS cluster with Fargate capacity providers.
- **ecs-service** — Fargate task definition and ECS service, with optional EFS volumes and ALB target group.
- **efs-volume** — EFS file system, mount targets and optional access point.
- **iam** — ECS task and execution IAM roles with CloudWatch Logs and EFS access policies.
- **rds** — RDS instance and DB subnet group.
- **vpc** — VPC with public/private subnets, Internet Gateway, NAT Gateway and route tables.

For customers who used the previous flat Terraform deployment, the [`migration.tf`](./migration.tf) file remaps the existing Terraform state to the new module layout, so `terraform apply` preserves the environment without losing data.
199 changes: 12 additions & 187 deletions AWS/ecs-fargate/alb.tf
Original file line number Diff line number Diff line change
@@ -1,194 +1,19 @@
################################################################################
# ALB
# AWS ALB
################################################################################

resource "aws_lb" "dbeaver_te_lb" {
name = "DBeaverTE-${var.deployment_id}-ALB"
internal = false
load_balancer_type = "application"
security_groups = [aws_security_group.dbeaver_alb.id]
subnets = aws_subnet.public_subnets[*].id
tags = {
env = var.deployment_id
}
}


# This resources must be edited if HTTPS not used
resource "aws_lb_listener" "dbeaver-te-listener" {

load_balancer_arn = aws_lb.dbeaver_te_lb.arn
port = "80"
protocol = "HTTP"

default_action {
type = "redirect"

redirect {
port = "443"
protocol = "HTTPS"
status_code = "HTTP_301"
}
}
}

# This resources must be edited if HTTPS not used
resource "aws_lb_listener" "dbeaver-te-listener-https" {

load_balancer_arn = aws_lb.dbeaver_te_lb.arn
port = "443"
protocol = "HTTPS"
ssl_policy = "ELBSecurityPolicy-TLS-1-2-2017-01"
certificate_arn = "arn:aws:acm:${var.aws_region}:${var.aws_account_id}:certificate/${var.alb_certificate_Identifier}"

default_action {
type = "forward"
target_group_arn = aws_lb_target_group.dbeaver_te.arn
}
}
module "alb" {
source = "./modules/alb"

resource "aws_lb_listener_rule" "forward_to_service_uri_dc" {
listener_arn = aws_lb_listener.dbeaver-te-listener-https.arn
priority = 99
name = "${local.name_prefix}-${var.deployment_id}-ALB"
deployment_id = var.deployment_id
vpc_id = local.vpc_id
public_subnets = local.public_subnets
security_group_ids = [aws_security_group.dbeaver_alb.id]
certificate_arn = "arn:aws:acm:${var.aws_region}:${var.aws_account_id}:certificate/${var.alb_certificate_Identifier}"
ssl_policy = "ELBSecurityPolicy-TLS13-1-2-2021-06"

condition {
path_pattern {
values = ["/dc*"]
}
}

action {
type = "forward"
target_group_arn = aws_lb_target_group.dbeaver_dc.arn
}
}

resource "aws_lb_listener_rule" "forward_to_service_uri_qm" {
listener_arn = aws_lb_listener.dbeaver-te-listener-https.arn
priority = 98

condition {
path_pattern {
values = ["/qm*"]
}
}

action {
type = "forward"
target_group_arn = aws_lb_target_group.dbeaver_qm.arn
}
}

resource "aws_lb_listener_rule" "forward_to_service_uri_rm" {
listener_arn = aws_lb_listener.dbeaver-te-listener-https.arn
priority = 97

condition {
path_pattern {
values = ["/rm*"]
}
}

action {
type = "forward"
target_group_arn = aws_lb_target_group.dbeaver_rm.arn
}
}


resource "aws_lb_listener_rule" "forward_to_service_uri_tm" {
listener_arn = aws_lb_listener.dbeaver-te-listener-https.arn
priority = 94

condition {
path_pattern {
values = ["/tm*"]
}
}

action {
type = "forward"
target_group_arn = aws_lb_target_group.dbeaver_tm.arn
}
}


resource "aws_lb_target_group" "dbeaver_dc" {
name = "DBeaverTE-${var.deployment_id}-dc"
port = 80
protocol = "HTTP"
target_type = "ip"
vpc_id = aws_vpc.dbeaver_net.id

health_check {
matcher = "200,302"
unhealthy_threshold = 7
enabled = true
path = "/dc/health"
}
}

resource "aws_lb_target_group" "dbeaver_te" {
name = "DBeaverTE-${var.deployment_id}"
port = 80
protocol = "HTTP"
target_type = "ip"
vpc_id = aws_vpc.dbeaver_net.id

health_check {
matcher = "200,302"
unhealthy_threshold = 10
enabled = true
path = "/"
}
stickiness {
enabled = true
type = "lb_cookie"
cookie_duration = 86400
}
}

resource "aws_lb_target_group" "dbeaver_qm" {
name = "DBeaverTE-${var.deployment_id}-qm"
port = 80
protocol = "HTTP"
target_type = "ip"
vpc_id = aws_vpc.dbeaver_net.id

health_check {
matcher = "200,302"
unhealthy_threshold = 7
enabled = true
path = "/qm/health"
}
}

resource "aws_lb_target_group" "dbeaver_rm" {
name = "DBeaverTE-${var.deployment_id}-rm"
port = 80
protocol = "HTTP"
target_type = "ip"
vpc_id = aws_vpc.dbeaver_net.id

health_check {
matcher = "200,302"
unhealthy_threshold = 7
enabled = true
path = "/rm/health"
}
}

resource "aws_lb_target_group" "dbeaver_tm" {
name = "DBeaverTE-${var.deployment_id}-tm"
port = 80
protocol = "HTTP"
target_type = "ip"
vpc_id = aws_vpc.dbeaver_net.id

health_check {
matcher = "200,302"
unhealthy_threshold = 7
enabled = true
path = "/tm/health"
tags = {
Env = var.deployment_id
}
}
118 changes: 0 additions & 118 deletions AWS/ecs-fargate/aws-iam.tf

This file was deleted.

Loading
Loading