Skip to content

Commit 5cd35ee

Browse files
authored
Add numberOfAvailabilityZones param to Project constructor (#16)
1 parent aeda3c0 commit 5cd35ee

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,15 @@ type ProjectArgs = {
9494
| EcsServiceOptions
9595
)[];
9696
enableSSMConnect?: pulumi.Input<boolean>;
97+
numberOfAvailabilityZones?: number;
9798
};
9899
```
99100

100101
| Argument | Description |
101102
| :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------: |
102103
| services \* | Service list. |
103104
| enableSSMConnect | Setup ec2 instance and SSM in order to connect to the database in the private subnet. Please refer to the [SSM Connect](#ssm-connect) section for more info. |
105+
| numberOfAvailabilityZones | Default is 2 which is recommended. If building a dev server, we can reduce to 1 availability zone to reduce hosting cost. |
104106

105107
```ts
106108
type DatabaseServiceOptions = {

src/components/project.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ export type ProjectArgs = {
116116
| EcsServiceOptions
117117
)[];
118118
enableSSMConnect?: pulumi.Input<boolean>;
119+
numberOfAvailabilityZones?: number;
119120
};
120121

121122
export class MissingEcsCluster extends Error {
@@ -141,7 +142,7 @@ export class Project extends pulumi.ComponentResource {
141142
super('studion:Project', name, {}, opts);
142143
this.name = name;
143144

144-
this.vpc = this.createVpc();
145+
this.vpc = this.createVpc(args.numberOfAvailabilityZones);
145146
this.createServices(args.services);
146147

147148
if (args.enableSSMConnect) {
@@ -155,11 +156,13 @@ export class Project extends pulumi.ComponentResource {
155156
this.registerOutputs();
156157
}
157158

158-
private createVpc() {
159+
private createVpc(
160+
numberOfAvailabilityZones: ProjectArgs['numberOfAvailabilityZones'] = 2,
161+
) {
159162
const vpc = new awsx.ec2.Vpc(
160163
`${this.name}-vpc`,
161164
{
162-
numberOfAvailabilityZones: 2,
165+
numberOfAvailabilityZones,
163166
enableDnsHostnames: true,
164167
enableDnsSupport: true,
165168
subnetSpecs: [

0 commit comments

Comments
 (0)