This tutorial demonstrates a simplistic case of aggregating Distributed Energy Resources (DERs) and managing them at scale for wholesale electricity market bidding.
The solution meets the following requirements
- Connect to heterogenous distributed energy resources (DERs) at scale
- Collect device measurements such as power output and run time every 5 min (minimum req: 5 min, most RT energy markets settle every 5 min)
- Keep data for 5 years for auditing and forensic purpose
- Analyze data via structured queries on-demand and periodically
- Visualize data thru charts on dashboard
- Identify the time slots when the aggregated capacity >= 100 kW (minimum size requirement for aggregated DERs in market participation)
- Keep the cost low
- Anomaly detection and automatic notification
- Back up data in a different geographic region
The solution is neither a utility prototype nor an abstraction of any vendor's offering (not even close). It is just intended to showcase how a cloud native design is capable of addressing the business needs involved in DER aggregation and management.
- AWS IoT Core
- AWS IoT Greengrass
- AWS Kinesis (alternative: AWS MSK, i.e.,AWS Managed Streaming for Apache Kafka)
- AWS Glue
- AWS S3
- AWS Athena
- AWS QuickSight
- AWS SNS
- AWS KMS
- AWS CloudWatch
- AWS CloudTrail
- AWS IAM
Check here to learn how to install Node.js and npm
Install the AWS CDK Toolkit globally using the following Node Package Manager command.
npm install -g aws-cdk
Run the following command to verify correct installation and print the version number of the AWS CDK.
cdk --version
Create a CDK project in your project folder
cdk init der-management --language=typescript
Deploying stacks with the AWS CDK requires dedicated Amazon S3 buckets and other containers to be available to AWS CloudFormation during deployment. Creating these is called bootstrapping. To bootstrap, issue:
cdk bootstrap aws:https://${ACCOUNT-ID}/${AWS-REGION}
To build the project, run the command below
cdk synth
To deploy the template that you synthesized with CDK synth in an AWS account, run the following command. You may need to install AWS CLI on the build machine and set up an AWS profile
cdk deploy
If you wish to remove the stack from your AWS account, then run the following command
cdk destroy