PlantUML:AWS
[https://plantuml-proxy.vercel.app/svg/https://scrapbox.io/api/code/suto3/PlantUML:AWS/aws01.uml#.svg]
aws01.uml@startuml
'Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
'SPDX-License-Identifier: MIT (For details, see https://github.com/awslabs/aws-icons-for-plantuml/blob/master/LICENSE)
!include <awslib/AWSCommon>
' Uncomment the following line to create simplified view
' !include <awslib/AWSSimplified>
!include <awslib/General/Users>
!include <awslib/Mobile/APIGateway>
!include <awslib/SecurityIdentityAndCompliance/Cognito>
!include <awslib/Compute/Lambda>
!include <awslib/Database/DynamoDB>
left to right direction
Users(sources, "Events", "millions of users")
APIGateway(votingAPI, "Voting API", "user votes")
Cognito(userAuth, "User Authentication", "jwt to submit votes")
Lambda(generateToken, "User Credentials", "return jwt")
Lambda(recordVote, "Record Vote", "enter or update vote per user")
DynamoDB(voteDb, "Vote Database", "one entry per user")
sources --> userAuth
sources --> votingAPI
userAuth <--> generateToken
votingAPI --> recordVote
recordVote --> voteDb
@enduml

aws02.uml@startuml
!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist
!includeurl AWSPUML/common.puml
!includeurl AWSPUML/ApplicationServices/AmazonAPIGateway/AmazonAPIGateway.puml
!includeurl AWSPUML/Compute/AWSLambda/LambdaFunction/LambdaFunction.puml
!includeurl AWSPUML/Database/AmazonDynamoDB/table/table.puml
!includeurl AWSPUML/General/AWScloud/AWScloud.puml
!includeurl AWSPUML/General/client/client.puml
!includeurl AWSPUML/General/users/users.puml
!includeurl AWSPUML/NetworkingContentDelivery/AmazonCloudFront/AmazonCloudFront.puml
!includeurl AWSPUML/NetworkingContentDelivery/AmazonRoute53/AmazonRoute53.puml
!includeurl AWSPUML/NetworkingContentDelivery/AmazonVPC/AmazonVPC.puml
!includeurl AWSPUML/Storage/AmazonS3/bucket/bucket.puml
AWSCLOUD(aws) {
AMAZONROUTE53(route53)
AMAZONCLOUDFRONT(cloudfront)
AMAZONVPC(vpc) {
LAMBDAFUNCTION(lambda,RestFunction)
AMAZONAPIGATEWAY(api,RestApi)
BUCKET(web_bucket,web)
BUCKET(log_bucket,log)
TABLE(table, records)
}
}
USERS(users,Users)
CLIENT(client)
users -> client
client -> route53
client -> cloudfront
cloudfront -> api
api -> lambda
lambda -> web_bucket
lambda -> table
web_bucket .> log_bucket
route53 .[hidden]. cloudfront
table .[hidden]. web_bucket
@enduml