Skip to content

Commit b8bdaa9

Browse files
Vikram ThakurVikram Thakur
Vikram Thakur
authored and
Vikram Thakur
committed
initial commit
1 parent 0c25c3f commit b8bdaa9

15 files changed

+7915
-39
lines changed

.idea/.gitignore

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/aws-cdk-ecs-fargate-load-balancer.iml

+12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/aws.xml

+17
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bin/aws-cdk-ecs-fargate-load-balancer.ts

-21
This file was deleted.

bin/main.ts

+103
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
#!/usr/bin/env node
2+
import 'source-map-support/register';
3+
import * as cdk from 'aws-cdk-lib';
4+
import { AppInfraStack } from '../lib/app-infra-stack';
5+
import { VPCStack } from '../lib/vpc-stack';
6+
import { ECSStack } from "../lib/cluster";
7+
8+
const app = new cdk.App();
9+
10+
const awsAccountId = process.env.AWS_ACCOUNT_ID || '';
11+
const stackSuffix = process.env.STACK_SUFFIX || 'dev';
12+
const appTag = 'TEST_APPLICATION_TAG';
13+
const env = process.env.STACK_SUFFIX || 'dev';
14+
const region = process.env.AWS_REGION || 'us-east-1';
15+
const vpcId = process.env.VPC_ID || 'vpc-07d74850b22a2a9e5';
16+
// const vpcId = process.env.VPC_ID || '';
17+
18+
const stackName = process.env.STACK_NAME || `${stackSuffix}-app-infra`;
19+
const fargateTaskCpu = Number(process.env.FARGET_TASK_CPU) || 256;
20+
const fargateTaskMemory = Number(process.env.FARGATE_TASK_MEMORY) || 512;
21+
const desiredTaskCount = Number(process.env.FARGATE_DESIRED_COUNT) || 1;
22+
const autoScaleMaxCap = Number(process.env.AUTO_SCALE_MAX_CAP);
23+
24+
const vpcName = process.env.STACk_VPC_NAME || 'app-vpc';
25+
26+
const apiLbName = `${env}-app-api`;
27+
const uiLbName = `${env}-app-ui`;
28+
29+
const dbName = process.env.DB_NAME || 'app-db';
30+
const dbUserName = process.env.DB_USER_NAME || 'admin';
31+
32+
const apiEnvList = {
33+
SPRING_PROFILES_ACTIVE: process.env.SPRING_PROFILES_ACTIVE || 'dev',
34+
}
35+
36+
const uiEnvList = {
37+
REACT_APP_API_URL: process.env.REACT_APP_API_URL || 'http://localhost:8080',
38+
}
39+
40+
console.log(env, 'env');
41+
console.log(process.env.ENVIROMENT_NAME, stackSuffix, 'env from process');
42+
43+
function stackMetaData() {
44+
return {
45+
tags: {
46+
AppTag: appTag,
47+
Environment: env,
48+
},
49+
env: {
50+
region: region,
51+
account: awsAccountId,
52+
}
53+
}
54+
}
55+
// create stuff that will be useful for both the stacks
56+
// creating vpc here
57+
const vpcStack = new VPCStack(app, `${stackName}-vpc`, {
58+
...stackMetaData(),
59+
vpcId: vpcId,
60+
});
61+
62+
63+
const clusterStack = new ECSStack(app, `${stackName}-ecs-cluster`,{
64+
...stackMetaData(),
65+
stackName: `${stackName}-ecs-cluster`,
66+
vpc: vpcStack.vpc,
67+
});
68+
69+
const commonStackProps = {
70+
...stackMetaData(),
71+
vpc: vpcStack.vpc,
72+
cluster: clusterStack.cluster,
73+
// loadBalancerName: loadBalancerName,
74+
suppressTemplateIndentation: false,
75+
synthesizer: undefined,
76+
terminationProtection: false,
77+
containerPort: 8080,
78+
stackName: stackName,
79+
cpuLimit: fargateTaskCpu,
80+
fargateTaskMemory: fargateTaskMemory,
81+
desiredTaskCount: desiredTaskCount,
82+
autoScaleMaxCap: autoScaleMaxCap,
83+
retainLogs: true,
84+
}
85+
86+
87+
function createAPIStack() {
88+
return new AppInfraStack(app, 'InfraStack', {
89+
...commonStackProps,
90+
loadBalancerName: apiLbName,
91+
containerPort: 8080,
92+
envVars: apiEnvList,
93+
dbName: `${env}-${dbName}`,
94+
dbUserName: dbUserName,
95+
});
96+
}
97+
98+
99+
async function createStacks() {
100+
await createAPIStack();
101+
}
102+
103+
createStacks();

cdk.context.json

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
{
2+
"vpc-provider:account=056640875000:filter.vpc-id=vpc-07d74850b22a2a9e5:region=us-east-1:returnAsymmetricSubnets=true": {
3+
"vpcId": "vpc-07d74850b22a2a9e5",
4+
"vpcCidrBlock": "10.0.224.0/24",
5+
"ownerAccountId": "056640875000",
6+
"availabilityZones": [],
7+
"subnetGroups": [
8+
{
9+
"name": "Private",
10+
"type": "Private",
11+
"subnets": [
12+
{
13+
"subnetId": "subnet-0479c2e3e55c11fd8",
14+
"cidr": "10.0.224.0/26",
15+
"availabilityZone": "us-east-1a",
16+
"routeTableId": "rtb-09af7e1e959838558"
17+
},
18+
{
19+
"subnetId": "subnet-0fdd22df45d69ceff",
20+
"cidr": "10.2.224.0/24",
21+
"availabilityZone": "us-east-1a",
22+
"routeTableId": "rtb-09af7e1e959838558"
23+
},
24+
{
25+
"subnetId": "subnet-0ff0c994a81604ec9",
26+
"cidr": "10.0.224.192/26",
27+
"availabilityZone": "us-east-1b",
28+
"routeTableId": "rtb-09af7e1e959838558"
29+
},
30+
{
31+
"subnetId": "subnet-0fe73e94e2ca5fa6a",
32+
"cidr": "10.0.224.64/26",
33+
"availabilityZone": "us-east-1b",
34+
"routeTableId": "rtb-09af7e1e959838558"
35+
},
36+
{
37+
"subnetId": "subnet-023dab1870ea68737",
38+
"cidr": "10.2.225.0/24",
39+
"availabilityZone": "us-east-1c",
40+
"routeTableId": "rtb-09af7e1e959838558"
41+
}
42+
]
43+
},
44+
{
45+
"name": "Public",
46+
"type": "Public",
47+
"subnets": [
48+
{
49+
"subnetId": "subnet-027c1a7193c29e3b0",
50+
"cidr": "10.0.224.128/28",
51+
"availabilityZone": "us-east-1a",
52+
"routeTableId": "rtb-0d2355945a268549d"
53+
},
54+
{
55+
"subnetId": "subnet-0c01e206dd55a48e3",
56+
"cidr": "10.0.224.160/27",
57+
"availabilityZone": "us-east-1a",
58+
"routeTableId": "rtb-0d2355945a268549d"
59+
},
60+
{
61+
"subnetId": "subnet-0fbd1703604d7fd1d",
62+
"cidr": "10.20.0.0/24",
63+
"availabilityZone": "us-east-1b",
64+
"routeTableId": "rtb-0d2355945a268549d"
65+
},
66+
{
67+
"subnetId": "subnet-06a7e50999f094e8a",
68+
"cidr": "10.0.224.144/28",
69+
"availabilityZone": "us-east-1b",
70+
"routeTableId": "rtb-0d2355945a268549d"
71+
}
72+
]
73+
}
74+
]
75+
}
76+
}

cdk.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"app": "npx ts-node --prefer-ts-exts bin/aws-cdk-ecs-fargate-load-balancer.ts",
2+
"app": "npx ts-node --prefer-ts-exts bin/main.ts",
33
"watch": {
44
"include": [
55
"**"

0 commit comments

Comments
 (0)