@@ -10,22 +10,20 @@ locals {
10
10
}
11
11
}
12
12
13
- resource "aws_instance" "allinone " {
14
- ami = var. allinone_ami
15
- instance_type = var. allinone_instance_type
13
+ resource "aws_instance" "comet_ec2 " {
14
+ ami = var. comet_ec2_ami
15
+ instance_type = var. comet_ec2_instance_type
16
16
key_name = var. key_name
17
- count = var. allinone_instance_count
18
- iam_instance_profile = aws_iam_instance_profile. comet-ml-s3-access-profile . name
19
- # Recommended place it in a private subnet along with a bastion host
20
- # subnet_id = module.vpc.private_subnets[count.index % length(module.vpc.private_subnets)]
21
- subnet_id = var. allinone_subnet
17
+ count = var. comet_ec2_instance_count
18
+ iam_instance_profile = aws_iam_instance_profile. comet-ec2-instance-profile . name
19
+ subnet_id = var. comet_ec2_subnet
22
20
23
21
# need enable multiple SGs
24
- vpc_security_group_ids = [aws_security_group . allinone_sg . id ]
22
+ vpc_security_group_ids = [aws_security_group . comet_ec2_sg . id ]
25
23
26
24
root_block_device {
27
- volume_type = var. allinone_volume_type
28
- volume_size = var. allinone_volume_size
25
+ volume_type = var. comet_ec2_volume_type
26
+ volume_size = var. comet_ec2_volume_size
29
27
}
30
28
31
29
tags = merge (local. tags , {
@@ -37,23 +35,23 @@ resource "aws_instance" "allinone" {
37
35
}
38
36
}
39
37
40
- resource "aws_security_group" "allinone_sg " {
38
+ resource "aws_security_group" "comet_ec2_sg " {
41
39
name = " comet_${ var . environment } _ec2_sg"
42
40
description = " Comet EC2 instance security group"
43
41
vpc_id = var. vpc_id
44
42
}
45
43
46
- resource "aws_vpc_security_group_ingress_rule" "allinone_ingress_ssh " {
47
- security_group_id = aws_security_group. allinone_sg . id
44
+ resource "aws_vpc_security_group_ingress_rule" "comet_ec2_ingress_ssh " {
45
+ security_group_id = aws_security_group. comet_ec2_sg . id
48
46
49
47
from_port = local. ssh_port
50
48
to_port = local. ssh_port
51
49
ip_protocol = " tcp"
52
50
cidr_ipv4 = local. cidr_anywhere
53
51
}
54
52
55
- resource "aws_vpc_security_group_ingress_rule" "allinone_ingress_http " {
56
- security_group_id = aws_security_group. allinone_sg . id
53
+ resource "aws_vpc_security_group_ingress_rule" "comet_ec2_ingress_http " {
54
+ security_group_id = aws_security_group. comet_ec2_sg . id
57
55
58
56
from_port = local. http_port
59
57
to_port = local. http_port
@@ -64,8 +62,8 @@ resource "aws_vpc_security_group_ingress_rule" "allinone_ingress_http" {
64
62
}
65
63
66
64
/* SG rule to allow ingress from LB SG; add later
67
- resource "aws_vpc_security_group_ingress_rule" "allinone_ingress_http " {
68
- security_group_id = aws_security_group.allinone_sg .id
65
+ resource "aws_vpc_security_group_ingress_rule" "comet_ec2_ingress_http " {
66
+ security_group_id = aws_security_group.comet_ec2_sg .id
69
67
70
68
from_port = local.http_port
71
69
to_port = local.http_port
@@ -74,25 +72,38 @@ resource "aws_vpc_security_group_ingress_rule" "allinone_ingress_http" {
74
72
}
75
73
*/
76
74
77
- resource "aws_vpc_security_group_egress_rule" "allinone_egress_any " {
78
- security_group_id = aws_security_group. allinone_sg . id
75
+ resource "aws_vpc_security_group_egress_rule" "comet_ec2_egress_any " {
76
+ security_group_id = aws_security_group. comet_ec2_sg . id
79
77
ip_protocol = " -1"
80
78
cidr_ipv4 = local. cidr_anywhere
81
79
}
82
80
83
- resource "aws_iam_role" "comet-ml-allinone -s3-access-role" {
81
+ resource "aws_iam_role" "comet-ec2 -s3-access-role" {
84
82
name = " comet-ml-s3-role"
85
- assume_role_policy = file (" ${ path . module } /templates/assume-role.json" )
83
+ assume_role_policy = jsonencode ({
84
+ " Version" : " 2012-10-17" ,
85
+ " Statement" : [
86
+ {
87
+ " Action" : " sts:AssumeRole" ,
88
+ " Principal" : {
89
+ " Service" : " ec2.amazonaws.com"
90
+ },
91
+ " Effect" : " Allow" ,
92
+ " Sid" : " "
93
+ }
94
+ ]
95
+ })
86
96
}
87
97
88
- resource "aws_iam_instance_profile" "comet-ml-s3-access -profile" {
89
- name = " ${ var . environment } -comet-ml-s3-access -profile"
90
- role = aws_iam_role. comet-ml-allinone -s3-access-role . name
98
+ resource "aws_iam_instance_profile" "comet-ec2-instance -profile" {
99
+ name = " ${ var . environment } -comet-ec2-instance -profile"
100
+ role = aws_iam_role. comet-ec2 -s3-access-role . name
91
101
}
92
102
93
103
resource "aws_iam_policy" "comet-ml-s3-policy" {
94
- name = " comet-ml-s3-access-policy"
95
- description = " comet-ml-s3-access-policy"
104
+ count = var. s3_enabled ? 1 : 0
105
+ name = " comet-s3-access-policy"
106
+ description = " comet-s3-access-policy"
96
107
policy = jsonencode ({
97
108
" Version" : " 2012-10-17" ,
98
109
" Statement" : [
@@ -109,6 +120,7 @@ resource "aws_iam_policy" "comet-ml-s3-policy" {
109
120
}
110
121
111
122
resource "aws_iam_role_policy_attachment" "comet-ml-s3-access-attachment" {
112
- role = aws_iam_role. comet-ml-allinone-s3-access-role . name
113
- policy_arn = aws_iam_policy. comet-ml-s3-policy . arn
123
+ count = var. s3_enabled ? 1 : 0
124
+ role = aws_iam_role. comet-ec2-s3-access-role . name
125
+ policy_arn = aws_iam_policy. comet-ml-s3-policy [0 ]. arn
114
126
}
0 commit comments