PlantUML:AWS
[https://plantuml-proxy.vercel.app/svg/https://scrapbox.io/api/code/suto3/PlantUML:AWS/aws01.uml#.svg]
code:aws01.uml
@startuml
'Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
!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
https://plantuml-proxy.vercel.app/svg/https://scrapbox.io/api/code/suto3/PlantUML:AWS/aws02.uml#.svg
code:aws02.uml
@startuml
!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
@enduml