You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/sysadmins/architecture.md
+78-35Lines changed: 78 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,51 +2,81 @@
2
2
3
3

4
4
5
-
Reference for the [Cloudformation script](../scripts/aws/cloudformation/tasking-manager.template.js):
5
+
Reference for the [Cloudformation script](https://github.com/hotosm/tasking-manager/blob/develop/scripts/aws/cloudformation/tasking-manager.template.js):
6
6
7
-
**TaskingManagerASG** AutoScalingGroup configures the properties of the Autoscaling Group. There is a condition that determines three levels of autoscaling: development (1 instance only), demo (max 3 instances), and production (min 2 max 6 instances).
7
+
**TaskingManagerASG** AutoScalingGroup configures the properties of
8
+
the Autoscaling Group. There is a condition that determines three
9
+
levels of autoscaling: development (1 instance only), demo (max 3
10
+
instances), and production (min 2 max 6 instances).
8
11
9
-
**TaskingManagerScaleUp** Scaling Policy determines the threshold at which the ASG scales up. We use the CloudWatch metric ALBRequestCountPerTarget to keep the number of requests per instance below a certain level.
12
+
**TaskingManagerScaleUp** Scaling Policy determines the threshold at
13
+
which the ASG scales up. We use the CloudWatch metric
14
+
ALBRequestCountPerTarget to keep the number of requests per instance
15
+
below a certain level.
10
16
11
-
**TaskingManagerLaunchConfiguration** has a number of metadata files and commands which are loaded and run during instantiation of a new server into the ASG. The Tasking Manager environment variables are set in this resource.
17
+
**TaskingManagerLaunchConfiguration** has a number of metadata files
18
+
and commands which are loaded and run during instantiation of a new
19
+
server into the ASG. The Tasking Manager environment variables are set
20
+
in this resource.
12
21
13
-
**TaskingManagerEC2Role** IAM role enables the backend servers to communicate with CodeDeploy, CloudWatch monitoring, Cloudformation, and the RDS Database.
22
+
**TaskingManagerEC2Role** IAM role enables the backend servers to
23
+
communicate with CodeDeploy, CloudWatch monitoring, Cloudformation,
24
+
and the RDS Database.
14
25
15
-
**TaskingManagerDatabaseDumpAccessRole** is an EC2 IAM Role that is only used if a database dump file is given in the configuration, enabling access to the s3 bucket containing that file.
26
+
**TaskingManagerDatabaseDumpAccessRole** is an EC2 IAM Role that is
27
+
only used if a database dump file is given in the configuration,
28
+
enabling access to the s3 bucket containing that file.
16
29
17
-
**TaskingManagerEC2InstanceProfile** is a required resource for giving a server programmatic access to AWS services.
30
+
**TaskingManagerEC2InstanceProfile** is a required resource for giving
31
+
a server programmatic access to AWS services.
18
32
19
-
**TaskingManagerLoadBalancer** configures the security groups and subnets for the Application Load Balancer AWS resource.
33
+
**TaskingManagerLoadBalancer** configures the security groups and
34
+
subnets for the Application Load Balancer AWS resource.
20
35
21
-
**TaskingManagerLoadBalancerRoute53** record set for the load balancer.
36
+
**TaskingManagerLoadBalancerRoute53** record set for the load
37
+
balancer.
22
38
23
-
**TaskingManagerTargetGroup** configures health checks for each target in the Load Balancer.
39
+
**TaskingManagerTargetGroup** configures health checks for each target
40
+
in the Load Balancer.
24
41
25
-
**TaskingManagerLoadBalancerHTTPSListener** assigns the SSL Certificate, protocol, and port to the HTTPS Listener.
42
+
**TaskingManagerLoadBalancerHTTPSListener** assigns the SSL
43
+
Certificate, protocol, and port to the HTTPS Listener.
26
44
27
-
**TaskingManagerLoadBalancerHTTPListener** redirects requests to HTTPS.
45
+
**TaskingManagerLoadBalancerHTTPListener** redirects requests to
46
+
HTTPS.
28
47
29
-
**TaskingManagerRDS** configures all the properties of the database RDS.
48
+
**TaskingManagerRDS** configures all the properties of the database
49
+
RDS.
30
50
31
-
**TaskingManagerReactBucket** is the bucket where the frontend code is stored and served.
51
+
**TaskingManagerReactBucket** is the bucket where the frontend code is
52
+
stored and served.
32
53
33
-
**TaskingManagerReactBucketPolicy** gives read access to the objects stored in the bucket.
54
+
**TaskingManagerReactBucketPolicy** gives read access to the objects
55
+
stored in the bucket.
34
56
35
-
**TaskingManagerReactCloudfront** configures the CloudFront Distribution for the static frontend stored on S3.
57
+
**TaskingManagerReactCloudfront** configures the CloudFront
58
+
Distribution for the static frontend stored on S3.
36
59
37
-
**TaskingManagerRoute53** is the Route53 Record for the frontend, i.e. `tasks.hotosm.org`
60
+
**TaskingManagerRoute53** is the Route53 Record for the frontend,
61
+
i.e. `tasks.hotosm.org`
38
62
39
63
### Parameters
40
64
41
-
**GitSha** is the commit hash from the HOTOSM Tasking Manager repository to be deployed
65
+
**GitSha** is the commit hash from the HOTOSM Tasking Manager
66
+
repository to be deployed.
42
67
43
-
**NetworkEnvironment** has only two options- `staging` and `production`, and determines the security groups used for the EC2s and Load Balancer.
68
+
**NetworkEnvironment** has only two options- `staging` and
69
+
`production`, and determines the security groups used for the EC2s and
70
+
Load Balancer.
44
71
45
-
**AutoscalingPolicy** can be `development`, `demo`, or `production` and determines the min/max number of instances
72
+
**AutoscalingPolicy** can be `development`, `demo`, or `production`
73
+
and determines the min/max number of instances.
46
74
47
-
**DBSnapshot** is an optional parameter. Specify the RDS Snapshot ID to create the database from a snapshot
75
+
**DBSnapshot** is an optional parameter. Specify the RDS Snapshot ID
76
+
to create the database from a snapshot.
48
77
49
-
**DatabaseDump** is an optional parameter. Specify the s3 bucket object path to create the database from a plaintext dump file.
78
+
**DatabaseDump** is an optional parameter. Specify the s3 bucket
79
+
object path to create the database from a plaintext dump file.
50
80
51
81
**NewRelicLicense**
52
82
@@ -58,35 +88,48 @@ Reference for the [Cloudformation script](../scripts/aws/cloudformation/tasking-
58
88
59
89
**DatabaseEngineVersion** AWS PostgreSQL Engine version
60
90
61
-
**DatabaseInstanceType** is the AWS database instance tier (eg db.t3.large)
91
+
**DatabaseInstanceType** is the AWS database instance tier (eg
92
+
db.t3.large)
62
93
63
-
**DatabaseDiskSize** is the size (in GB) of the RDS instance. Recommended at least 100GB for better IOPS
94
+
**DatabaseDiskSize** is the size (in GB) of the RDS
95
+
instance. Recommended at least 100GB for better IOPS
64
96
65
-
**DatabaseParameterGroupName** use the default parameter group if you don't know what this is
97
+
**DatabaseParameterGroupName** use the default parameter group if you
98
+
don't know what this is.
66
99
67
-
**DatabaseSnapshotRetentionPeriod** Retention period for automatic (scheduled) snapshots in days
100
+
**DatabaseSnapshotRetentionPeriod** Retention period for automatic
101
+
(scheduled) snapshots in days.
68
102
69
-
**ELBSubnets** is a comma-separated string of subnets for your AWS region. Make sure the subnets support the EC2 instance type.
103
+
**ELBSubnets** is a comma-separated string of subnets for your AWS
104
+
region. Make sure the subnets support the EC2 instance type.
70
105
71
106
**SSLCertificateIdentifier** the ID for the AWS SSL Certificate
72
107
73
-
**TaskingManagerLogDirectory** the path on the instance where the logs are stored on the server, e.g. `/var/log/tasking-manager/`
108
+
**TaskingManagerLogDirectory** the path on the instance where the logs
109
+
are stored on the server, e.g. `/var/log/tasking-manager/`
74
110
75
-
**TaskingManagerClientId** is a key generated by creating and OSM OAuth Client Application.
111
+
**TaskingManagerClientId** is a key generated by creating and OSM
112
+
OAuth Client Application.
76
113
77
-
**TaskingManagerClientSecret** is a secret key generated by creating and OSM OAuth Client Application.
114
+
**TaskingManagerClientSecret** is a secret key generated by creating
115
+
and OSM OAuth Client Application.
78
116
79
-
**TaskingManagerRedirectUri** allowed URIs to which the user can be redirected after authorizing the application.
117
+
**TaskingManagerRedirectUri** allowed URIs to which the user can be
118
+
redirected after authorizing the application.
80
119
81
120
**TaskingManagerScope** are scope(s) which may be requested by a client.
82
121
83
-
**TaskingManagerSecret** a random string for the frontend and backend to communicate.
122
+
**TaskingManagerSecret** a random string for the frontend and backend
123
+
to communicate.
84
124
85
-
**TaskingManagerAppBaseUrl** the full base url of the site, e.g. `https://tasks.hotosm.org/`
125
+
**TaskingManagerAppBaseUrl** the full base url of the site,
126
+
e.g. `https://tasks.hotosm.org/`.
86
127
87
-
**TaskingManagerEmailFromAddress** an email address from which messages will be sent to users.
128
+
**TaskingManagerEmailFromAddress** an email address from which
129
+
messages will be sent to users.
88
130
89
-
**TaskingManagerEmailContactAddress** a contact address which will show up in places around the site
131
+
**TaskingManagerEmailContactAddress** a contact address which will
132
+
show up in places around the site
90
133
91
134
**TaskingManagerLogLevel** can be either `DEBUG` or `INFO`
0 commit comments