-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
nextflow-compute.tf
129 lines (119 loc) · 3.61 KB
/
nextflow-compute.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# This file creates the compute environments used by the default and priority queues
# The default environment is a 100 vCPU spot cluster
# Priority environment is a 20 vCPU on demand cluster
resource "aws_iam_instance_profile" "nf_ecs_instance_role" {
name = "nextflow-ecs-instance-role"
tags = var.default_tags
role = aws_iam_role.nf_ecs_role.name
}
# Create an spot instance environment with up to 256 vcpus
# the AMI used is described in setup-log.md
resource "aws_batch_compute_environment" "nf_spot" {
compute_environment_name = "nextflow-spot-compute"
tags = var.default_tags
compute_resources {
instance_role = aws_iam_instance_profile.nf_ecs_instance_role.arn
instance_type = [
"optimal",
]
allocation_strategy = "SPOT_CAPACITY_OPTIMIZED"
spot_iam_fleet_role = aws_iam_role.nf_spotfleet_role.arn
bid_percentage = 100
max_vcpus = 256
min_vcpus = 0
# standard launch template
launch_template {
launch_template_id = aws_launch_template.nf_lt_standard.id
}
# ec2_key_pair = aws_key_pair.nf_keypair.key_name
security_group_ids = [
aws_security_group.nf_security.id,
]
subnets = [
aws_subnet.nf_subnet.id,
]
type = "SPOT"
tags = merge(
var.default_tags,
{
parent = "nextflow-spot-compute"
}
)
}
service_role = aws_iam_role.nf_batch_role.arn
type = "MANAGED"
depends_on = [aws_iam_role_policy_attachment.nf_batch_role]
}
# Create an spot instance0 environment with up to 32 vcpus with large disks
resource "aws_batch_compute_environment" "nf_spot_bigdisk" {
compute_environment_name = "nextflow-spot-compute-bigdisk"
tags = var.default_tags
compute_resources {
instance_role = aws_iam_instance_profile.nf_ecs_instance_role.arn
instance_type = [
"optimal",
]
allocation_strategy = "SPOT_CAPACITY_OPTIMIZED"
spot_iam_fleet_role = aws_iam_role.nf_spotfleet_role.arn
bid_percentage = 100
max_vcpus = 32
min_vcpus = 0
# large disk launch template
launch_template {
launch_template_id = aws_launch_template.nf_lt_bigdisk.id
}
# ec2_key_pair = aws_key_pair.nf_keypair.key_name
security_group_ids = [
aws_security_group.nf_security.id,
]
subnets = [
aws_subnet.nf_subnet.id,
]
type = "SPOT"
tags = merge(
var.default_tags,
{
parent = "nextflow-spot-compute"
}
)
}
service_role = aws_iam_role.nf_batch_role.arn
type = "MANAGED"
depends_on = [aws_iam_role_policy_attachment.nf_batch_role]
}
# # Create an ondemand environment with up to 32 vcpus
# # the AMI used is described in setup-log.md
# resource "aws_batch_compute_environment" "nf_ondemand" {
# compute_environment_name = "nextflow-ondemand-compute"
# tags = var.default_tags
# compute_resources {
# instance_role = aws_iam_instance_profile.nf_ecs_instance_role.arn
# instance_type = [
# "optimal",
# ]
# allocation_strategy = "BEST_FIT"
# max_vcpus = 32
# min_vcpus = 0
# # standard launch template
# launch_template {
# launch_template_id = aws_launch_template.nf_lt_standard.id
# }
# # ec2_key_pair = aws_key_pair.nf_keypair.key_name
# security_group_ids = [
# aws_security_group.nf_security.id,
# ]
# subnets = [
# aws_subnet.nf_subnet.id,
# ]
# type = "EC2"
# tags = merge(
# var.default_tags,
# {
# parent = "nextflow-ondemand-compute"
# }
# )
# }
# service_role = aws_iam_role.nf_batch_role.arn
# type = "MANAGED"
# depends_on = [aws_iam_role_policy_attachment.nf_batch_role]
# }