Edited at

AWS-PlantUMLで使える全AWSリソースの定義と画像表示


お題

PlantUMLという、ダイアグラムを独自のDSLで生成するツールがある。

(名前にUMLは付くもののUML以外にも、ワイヤーフレーム、ガントチャート、マインドマップ、ER図などさまざまなダイアグラムを生成できる。)

そのPlantUMLの公式ライブラリとして、AWS-PlantUMLというものがあり、これを使うとテキスト形式のファイルでAWSリソースを使ったアーキテクチャ図を表現できる。

具体的には以下の通り。

1) 以下のようなPlantUML独自のDSLでテキストファイルを作る。


aws.puml

@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/AWSLambda.puml
!includeurl AWSPUML/Compute/AWSLambda/LambdaFunction/LambdaFunction.puml
!includeurl AWSPUML/Database/AmazonDynamoDB/AmazonDynamoDB.puml
!includeurl AWSPUML/Database/AmazonDynamoDB/table/table.puml
!includeurl AWSPUML/General/AWScloud/AWScloud.puml
!includeurl AWSPUML/General/client/client.puml
!includeurl AWSPUML/General/user/user.puml
!includeurl AWSPUML/SDKs/JavaScript/JavaScript.puml
!includeurl AWSPUML/Storage/AmazonS3/AmazonS3.puml
!includeurl AWSPUML/Storage/AmazonS3/bucket/bucket.puml

skinparam componentArrowColor Black
skinparam componentBackgroundColor White
skinparam nodeBackgroundColor White
skinparam agentBackgroundColor White
skinparam artifactBackgroundColor White

USER(user)
CLIENT(browser)
JAVASCRIPT(js,SDK)

AWSCLOUD(aws) {

AMAZONS3(s3) {
BUCKET(site,www.insecurity.co)
BUCKET(logs,logs.insecurity.co)
}

AMAZONAPIGATEWAY(api)

AWSLAMBDA(lambda) {
LAMBDAFUNCTION(addComments,addComments)
}

AMAZONDYNAMODB(dynamo) {
TABLE(comments,Comments)
}
}

user - browser

browser -d-> site :**1a**) get\nstatic\ncontent
site ~> logs :1a
site .u.> browser :**1b**
browser - js
js -r-> comments :**2a**) get\ncomments
comments ..> js :**2b**

js -r-> api :**3**) add\ncomment

api -d-> addComments :**4**

addComments -> comments :**5**

comments ..> js :**6**) new\ncomments
@enduml


2)(あらかじめローカルにDLしておいたplantuml.jarを使って)以下のコマンドを実行

java -jar plantuml.jar aws.puml

3) 以下のような(PNG形式の)画像ファイルが出来上がる。

sample.png

ちなみに、上の図及びpumlファイルについてはAWS-PlantUMLのREADMEに記載のもの。

何が良いって、テキストなので軽量。IDEのプレビュー機能を使えば都度画像変換するコマンドを叩かなくても、修正のたびに出来栄えが確認できるので、管理上、いちいち画像ファイルを置く必要がない。

そして、テキストゆえに変更差分がわかりやすい。GitHub等で管理すれば誰がいつどこをいじったか一目瞭然。

逆にデメリットは、PlantUML独自のDSLを覚えるのに、ややコストがかかること。

冒頭に記載の通り、適用範囲の広いPlantUMLでは公式ライブラリとしてAWSアイコンを使った図が用意されている。

AWSサービスに関するpumlファイルが数多く用意されているので、AWSのアーキテクチャを図に起こそうと思った際にこのGitHubリポジトリから使うサービスのpumlファイルを探すことになる。

けど、あらかじめ一覧になっていると嬉しいなと思い、作ってみた。


ジャンル別のAWSリソース群

都合上、以下は省略してしまった。


  • InternetOfThings/AWSIoT

  • NetworkingContentDelivery/AmazonVPC ... Computeの方のVPCと重複がある気がしたので。

  • SDKs


AI

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/AI/AmazonLex/AmazonLex.puml

!includeurl AWSPUML/AI/AmazonMachineLearning/AmazonMachineLearning.puml

!includeurl AWSPUML/AI/AmazonPolly/AmazonPolly.puml

!includeurl AWSPUML/AI/AmazonRekognition/AmazonRekognition.puml

package "AI" {
AMAZONLEX("AMAZONLEX")

AMAZONMACHINELEARNING("AMAZONMACHINELEARNING")

AMAZONPOLLY("AMAZONPOLLY")

AMAZONREKOGNITION("AMAZONREKOGNITION")
}

@enduml

AI.png


AmazonConnect

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/ContactCenter/AmazonConnect/AmazonConnect.puml

package "ContactCenter" {
AMAZONCONNECT("AMAZONCONNECT")
}

@enduml

AmazonConnect.png


AmazonGameLift

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/GameDevelopment/AmazonGameLift/AmazonGameLift.puml

package "AmazonGameLift" {
AMAZONGAMELIFT("AMAZONGAMELIFT")
}

@enduml

AmazonGameLift.png


Analytics


AmazonEMR

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Analytics/AmazonEMR/AmazonEMR.puml
!includeurl AWSPUML/Analytics/AmazonEMR/EMRengine/EMRengine.puml
!includeurl AWSPUML/Analytics/AmazonEMR/EMRengineMapRM3/EMRengineMapRM3.puml
!includeurl AWSPUML/Analytics/AmazonEMR/EMRengineMapRM5/EMRengineMapRM5.puml
!includeurl AWSPUML/Analytics/AmazonEMR/EMRengineMapRM7/EMRengineMapRM7.puml
!includeurl AWSPUML/Analytics/AmazonEMR/cluster/cluster.puml
!includeurl AWSPUML/Analytics/AmazonEMR_HDFScluster/AmazonEMR_HDFScluster.puml

package "Analytics" {
AMAZONEMR("AMAZONEMR") {
EMRENGINE("EMRENGINE")
EMRENGINEMAPRM3("EMRENGINEMAPRM3")
EMRENGINEMAPRM5("EMRENGINEMAPRM5")
EMRENGINEMAPRM7("EMRENGINEMAPRM7")
CLUSTER("CLUSTER")
}
}

@enduml

Analytics-EMR.png


AmazonKinesis

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Analytics/AmazonKinesis/AmazonKinesis.puml
!includeurl AWSPUML/Analytics/AmazonKinesis/AmazonKinesisAnalytics/AmazonKinesisAnalytics.puml
!includeurl AWSPUML/Analytics/AmazonKinesis/AmazonKinesisFirehose/AmazonKinesisFirehose.puml
!includeurl AWSPUML/Analytics/AmazonKinesis/AmazonKinesisStreams/AmazonKinesisStreams.puml
!includeurl AWSPUML/Analytics/AmazonKinesis/AmazonKinesis_enabledapp/AmazonKinesis_enabledapp.puml

package "Analytics" {
AMAZONKINESIS("AMAZONKINESIS") {
AMAZONKINESISANALYTICS("AMAZONKINESISANALYTICS")
AMAZONKINESISFIREHOSE("AMAZONKINESISFIREHOSE")
AMAZONKINESISSTREAMS("AMAZONKINESISSTREAMS")
AMAZONKINESIS_ENABLEDAPP("AMAZONKINESIS_ENABLEDAPP")
}
}

@enduml

Analytics-Kinesis.png


AmazonRedshift

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Analytics/AmazonRedshift/AmazonRedshift.puml
!includeurl AWSPUML/Analytics/AmazonRedshift/densecomputenode/densecomputenode.puml
!includeurl AWSPUML/Analytics/AmazonRedshift/densestoragenode/densestoragenode.puml

package "Analytics" {
AMAZONREDSHIFT("AMAZONREDSHIFT") {
DENSECOMPUTENODE("DENSECOMPUTENODE")
ANALYTICS_AMAZONREDSHIFT_DENSECOMPUTENODE("ANALYTICS_AMAZONREDSHIFT_DENSECOMPUTENODE")
DENSESTORAGENODE("DENSESTORAGENODE")
ANALYTICS_AMAZONREDSHIFT_DENSESTORAGENODE("ANALYTICS_AMAZONREDSHIFT_DENSESTORAGENODE")
}
}

@enduml

Analytics-Redshift.png


その他

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Analytics/AWSDataPipeline/AWSDataPipeline.puml

!includeurl AWSPUML/Analytics/AWSGlue/AWSGlue.puml

!includeurl AWSPUML/Analytics/AmazonAthena/AmazonAthena.puml

!includeurl AWSPUML/Analytics/AmazonCloudSearch/AmazonCloudSearch.puml
!includeurl AWSPUML/Analytics/AmazonCloudSearch/searchdocuments/searchdocuments.puml

!includeurl AWSPUML/Analytics/AmazonES/AmazonES.puml

!includeurl AWSPUML/Analytics/AmazonQuickSight/AmazonQuickSight.puml

package "Analytics" {
AWSDATAPIPELINE("AWSDATAPIPELINE")

AWSGLUE("AWSGLUE")

AMAZONATHENA("AMAZONATHENA")

AMAZONCLOUDSEARCH("AMAZONCLOUDSEARCH") {
SEARCHDOCUMENTS("SEARCHDOCUMENTS")
}

AMAZONES("AMAZONES")

AMAZONQUICKSIGHT("AMAZONQUICKSIGHT")
}

@enduml

Analytics-Others.png


ApplicationServices

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/ApplicationServices/AWSStepFunctions/AWSStepFunctions.puml

!includeurl AWSPUML/ApplicationServices/AmazonAPIGateway/AmazonAPIGateway.puml

!includeurl AWSPUML/ApplicationServices/AmazonElasticTranscoder/AmazonElasticTranscoder.puml

!includeurl AWSPUML/ApplicationServices/AmazonSWF/AmazonSWF.puml
!includeurl AWSPUML/ApplicationServices/AmazonSWF/decider/decider.puml
!includeurl AWSPUML/ApplicationServices/AmazonSWF/worker/worker.puml

package "ApplicationServices" {
AWSSTEPFUNCTIONS("AWSSTEPFUNCTIONS")

AMAZONAPIGATEWAY("AMAZONAPIGATEWAY")

AMAZONELASTICTRANSCODER("AMAZONELASTICTRANSCODER")

AMAZONSWF("AMAZONSWF") {
DECIDER("DECIDER")
WORKER("WORKER")
}
}

@enduml

ApplicationServices.png


BusinessProductivity

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/BusinessProductivity/AmazonChime/AmazonChime.puml

!includeurl AWSPUML/BusinessProductivity/AmazonWorkDocs/AmazonWorkDocs.puml

!includeurl AWSPUML/BusinessProductivity/AmazonWorkMail/AmazonWorkMail.puml

package "BusinessProductivity" {
AMAZONCHIME("AMAZONCHIME")

AMAZONWORKDOCS("AMAZONWORKDOCS")

AMAZONWORKMAIL("AMAZONWORKMAIL")
}

@enduml

BusinessProductivity.png


Compute


EC2

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Compute/AmazonEC2/AmazonEC2.puml
!includeurl AWSPUML/Compute/AmazonEC2/AMI/AMI.puml
!includeurl AWSPUML/Compute/AmazonEC2/AutoScaling/AutoScaling.puml
!includeurl AWSPUML/Compute/AmazonEC2/DBoninstance/DBoninstance.puml
!includeurl AWSPUML/Compute/AmazonEC2/EC2rescue/EC2rescue.puml
!includeurl AWSPUML/Compute/AmazonEC2/ElasticIPaddress/ElasticIPaddress.puml
!includeurl AWSPUML/Compute/AmazonEC2/SpotFleet/SpotFleet.puml
!includeurl AWSPUML/Compute/AmazonEC2/SpotInstance/SpotInstance.puml
!includeurl AWSPUML/Compute/AmazonEC2/X1instance/X1instance.puml
!includeurl AWSPUML/Compute/AmazonEC2/instance/instance.puml
!includeurl AWSPUML/Compute/AmazonEC2/instances/instances.puml
!includeurl AWSPUML/Compute/AmazonEC2/instancewithCloudWatch/instancewithCloudWatch.puml
!includeurl AWSPUML/Compute/AmazonEC2/optimizedinstance/optimizedinstance.puml

package "Compute" {
AMAZONEC2("AMAZONEC2") {
AMI("AMI")
AUTOSCALING("AutoScaling")
DBONINSTANCE("DBONINSTANCE")
EC2RESCUE("EC2RESCUE")
ELASTICIPADDRESS("ELASTICIPADDRESS")
SPOTFLEET("SPOTFLEET")
SPOTINSTANCE("SPOTINSTANCE")
X1INSTANCE("X1INSTANCE")
INSTANCE("INSTANCE")
INSTANCES("INSTANCES")
AMAZONEC2_INSTANCES("AMAZONEC2_INSTANCES")
INSTANCEWITHCLOUDWATCH("INSTANCEWITHCLOUDWATCH")
OPTIMIZEDINSTANCE("OPTIMIZEDINSTANCE")
}
}

@enduml

Compute-EC2.png


ECS

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Compute/AmazonECS/AmazonECS.puml
!includeurl AWSPUML/Compute/AmazonECS/ECScontainer/ECScontainer.puml
!includeurl AWSPUML/Compute/AmazonECS/ECScontainer_Alt1/ECScontainer_Alt1.puml
!includeurl AWSPUML/Compute/AmazonECS/ECScontainer_Alt2/ECScontainer_Alt2.puml

package "Compute" {
AMAZONECS("AMAZONECS") {
ECSCONTAINER("ECSCONTAINER")
ECSCONTAINER_ALT1("ECSCONTAINER_ALT1")
ECSCONTAINER_ALT2("ECSCONTAINER_ALT2")
}
}

@enduml

Compute-ECS.png


ELB

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Compute/ElasticLoadBalancing/ElasticLoadBalancing.puml
!includeurl AWSPUML/Compute/ElasticLoadBalancing/ApplicationLoadBalancer/ApplicationLoadBalancer.puml
!includeurl AWSPUML/Compute/ElasticLoadBalancing/ClassicLoadbalancer/ClassicLoadbalancer.puml

package "Compute" {
ELASTICLOADBALANCING("ELASTICLOADBALANCING") {
APPLICATIONLOADBALANCER("APPLICATIONLOADBALANCER")
COMPUTE_ELASTICLOADBALANCING_APPLICATIONLOADBALANCER("COMPUTE_ELASTICLOADBALANCING_APPLICATIONLOADBALANCER")
CLASSICLOADBALANCER("CLASSICLOADBALANCER")
}
}

@enduml

Compute-ELB.png


VPC

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Compute/AmazonVPC/AmazonVPC.puml
!includeurl AWSPUML/Compute/AmazonVPC/Internetgateway/Internetgateway.puml
!includeurl AWSPUML/Compute/AmazonVPC/VPCNATgateway/VPCNATgateway.puml
!includeurl AWSPUML/Compute/AmazonVPC/VPCpeering/VPCpeering.puml
!includeurl AWSPUML/Compute/AmazonVPC/VPNconnection/VPNconnection.puml
!includeurl AWSPUML/Compute/AmazonVPC/VPNgateway/VPNgateway.puml
!includeurl AWSPUML/Compute/AmazonVPC/customergateway/customergateway.puml
!includeurl AWSPUML/Compute/AmazonVPC/elasticnetworkadapter/elasticnetworkadapter.puml
!includeurl AWSPUML/Compute/AmazonVPC/elasticnetworkinterface/elasticnetworkinterface.puml
!includeurl AWSPUML/Compute/AmazonVPC/endpoints/endpoints.puml
!includeurl AWSPUML/Compute/AmazonVPC/flowlogs/flowlogs.puml
!includeurl AWSPUML/Compute/AmazonVPC/networkaccesscontrollist/networkaccesscontrollist.puml
!includeurl AWSPUML/Compute/AmazonVPC/router/router.puml

package "Compute" {
AMAZONVPC("AMAZONVPC") {
INTERNETGATEWAY("INTERNETGATEWAY")
VPCNATGATEWAY("VPCNATGATEWAY")
COMPUTE_AMAZONVPC_VPCNATGATEWAY("COMPUTE_AMAZONVPC_VPCNATGATEWAY")
VPCPEERING("VPCPEERING")
COMPUTE_AMAZONVPC_VPCPEERING("COMPUTE_AMAZONVPC_VPCPEERING")
VPNCONNECTION("VPNCONNECTION")
COMPUTE_AMAZONVPC_VPNCONNECTION("COMPUTE_AMAZONVPC_VPNCONNECTION")
VPNGATEWAY("VPNGATEWAY")
COMPUTE_AMAZONVPC_VPNGATEWAY("COMPUTE_AMAZONVPC_VPNGATEWAY")
CUSTOMERGATEWAY("CUSTOMERGATEWAY")
COMPUTE_AMAZONVPC_CUSTOMERGATEWAY("COMPUTE_AMAZONVPC_CUSTOMERGATEWAY")
ELASTICNETWORKADAPTER("ELASTICNETWORKADAPTER")
COMPUTE_AMAZONVPC_ELASTICNETWORKADAPTER("COMPUTE_AMAZONVPC_ELASTICNETWORKADAPTER")
ELASTICNETWORKINTERFACE("ELASTICNETWORKINTERFACE")
COMPUTE_AMAZONVPC_ELASTICNETWORKINTERFACE("COMPUTE_AMAZONVPC_ELASTICNETWORKINTERFACE")
ENDPOINTS("ENDPOINTS")
COMPUTE_AMAZONVPC_ENDPOINTS("COMPUTE_AMAZONVPC_ENDPOINTS")
FLOWLOGS("FLOWLOGS")
COMPUTE_AMAZONVPC_FLOWLOGS("COMPUTE_AMAZONVPC_FLOWLOGS")
NETWORKACCESSCONTROLLIST("NETWORKACCESSCONTROLLIST")
COMPUTE_AMAZONVPC_NETWORKACCESSCONTROLLIST("COMPUTE_AMAZONVPC_NETWORKACCESSCONTROLLIST")
ROUTER("ROUTER")
COMPUTE_AMAZONVPC_ROUTER("COMPUTE_AMAZONVPC_ROUTER")
}
}

@enduml

Compute-VPC.png


その他

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Compute/AWSBatch/AWSBatch.puml

!includeurl AWSPUML/Compute/AWSElasticBeanstalk/AWSElasticBeanstalk.puml
!includeurl AWSPUML/Compute/AWSElasticBeanstalk/application/application.puml
!includeurl AWSPUML/Compute/AWSElasticBeanstalk/deployment/deployment.puml

!includeurl AWSPUML/Compute/AWSLambda/AWSLambda.puml
!includeurl AWSPUML/Compute/AWSLambda/LambdaFunction/LambdaFunction.puml

!includeurl AWSPUML/Compute/AmazonECR/AmazonECR.puml
!includeurl AWSPUML/Compute/AmazonECR/ECRRegistry/ECRRegistry.puml

!includeurl AWSPUML/Compute/AmazonLightsail/AmazonLightsail.puml

package "Compute" {
AWSBATCH("AWSBATCH")

AWSELASTICBEANSTALK("AWSELASTICBEANSTALK") {
APPLICATION("APPLICATION")
DEPLOYMENT("DEPLOYMENT")
}

AWSLAMBDA("AWSLAMBDA") {
LAMBDAFUNCTION("LAMBDAFUNCTION")
}

AMAZONECR("AMAZONECR") {
ECRREGISTRY("ECRREGISTRY")
}

AMAZONLIGHTSAIL("AMAZONLIGHTSAIL")
}

@enduml

Compute-Others.png


Database


DynamoDB

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Database/AmazonDynamoDB/AmazonDynamoDB.puml
!includeurl AWSPUML/Database/AmazonDynamoDB/attribute/attribute.puml
!includeurl AWSPUML/Database/AmazonDynamoDB/attributes/attributes.puml
!includeurl AWSPUML/Database/AmazonDynamoDB/globalsecondaryindex/globalsecondaryindex.puml
!includeurl AWSPUML/Database/AmazonDynamoDB/item/item.puml
!includeurl AWSPUML/Database/AmazonDynamoDB/items/items.puml
!includeurl AWSPUML/Database/AmazonDynamoDB/table/table.puml

package "Database" {
AMAZONDYNAMODB("AMAZONDYNAMODB") {
ATTRIBUTE("ATTRIBUTE")
ATTRIBUTES("ATTRIBUTES")
GLOBALSECONDARYINDEX("GLOBALSECONDARYINDEX")
ITEM("ITEM")
ITEMS("ITEMS")
TABLE("TABLE")
}
}

@enduml

Database-DynamoDB.png


RDS

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Database/AmazonRDS/AmazonRDS.puml
!includeurl AWSPUML/Database/AmazonRDS/DBinstance/DBinstance.puml
!includeurl AWSPUML/Database/AmazonRDS/MSSQLinstance/MSSQLinstance.puml
!includeurl AWSPUML/Database/AmazonRDS/MSSQLinstancealternate/MSSQLinstancealternate.puml
!includeurl AWSPUML/Database/AmazonRDS/MySQLDBinstance/MySQLDBinstance.puml
!includeurl AWSPUML/Database/AmazonRDS/MySQLinstancealternate/MySQLinstancealternate.puml
!includeurl AWSPUML/Database/AmazonRDS/OracleDBinstancealternate/OracleDBinstancealternate.puml
!includeurl AWSPUML/Database/AmazonRDS/PIOP/PIOP.puml
!includeurl AWSPUML/Database/AmazonRDS/PostgreSQLinstance/PostgreSQLinstance.puml
!includeurl AWSPUML/Database/AmazonRDS/SQLmaster/SQLmaster.puml
!includeurl AWSPUML/Database/AmazonRDS/SQLslave/SQLslave.puml
!includeurl AWSPUML/Database/AmazonRDS/instancereadreplica/instancereadreplica.puml
!includeurl AWSPUML/Database/AmazonRDS/instancestandby/instancestandby.puml
!includeurl AWSPUML/Database/AmazonRDS/oracleDBinstance/oracleDBinstance.puml

package "Database" {
AMAZONRDS("AMAZONRDS") {
DBINSTANCE("DBINSTANCE")
MSSQLINSTANCE("MSSQLINSTANCE")
MSSQLINSTANCEALTERNATE("MSSQLINSTANCEALTERNATE")
MYSQLDBINSTANCE("MYSQLDBINSTANCE")
MYSQLINSTANCEALTERNATE("MYSQLINSTANCEALTERNATE")
ORACLEDBINSTANCEALTERNATE("ORACLEDBINSTANCEALTERNATE")
PIOP("PIOP")
POSTGRESQLINSTANCE("POSTGRESQLINSTANCE")
SQLMASTER("SQLMASTER")
SQLSLAVE("SQLSLAVE")
INSTANCEREADREPLICA("INSTANCEREADREPLICA")
INSTANCESTANDBY("INSTANCESTANDBY")
ORACLEDBINSTANCE("ORACLEDBINSTANCE")
}
}

@enduml

Database-RDS.png


Redshift

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Database/AmazonRedshift/AmazonRedshift.puml
!includeurl AWSPUML/Database/AmazonRedshift/densecomputenode/densecomputenode.puml
!includeurl AWSPUML/Database/AmazonRedshift/densestoragenode/densestoragenode.puml

package "Database" {
AMAZONREDSHIFT("AMAZONREDSHIFT") {
DENSECOMPUTENODE("DENSECOMPUTENODE")
DATABASE_AMAZONREDSHIFT_DENSECOMPUTENODE("DATABASE_AMAZONREDSHIFT_DENSECOMPUTENODE")
DENSESTORAGENODE("DENSESTORAGENODE")
DATABASE_AMAZONREDSHIFT_DENSESTORAGENODE("DATABASE_AMAZONREDSHIFT_DENSESTORAGENODE")
}
}

@enduml

Database-Redshift.png


DesktopAppStreaming

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/DesktopAppStreaming/AmazonAppStream2_0/AmazonAppStream2_0.puml

!includeurl AWSPUML/DesktopAppStreaming/AmazonWorkSpaces/AmazonWorkSpaces.puml

package "DesktopAppStreaming" {
AMAZONAPPSTREAM2_0("AMAZONAPPSTREAM2_0")

AMAZONWORKSPACES("AMAZONWORKSPACES")
}

@enduml

DesktopAppStreaming.png


その他

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Database/AWSDMS/AWSDMS.puml
!includeurl AWSPUML/Database/AWSDMS/databasemigrationworkflowjob/databasemigrationworkflowjob.puml

!includeurl AWSPUML/Database/AmazonDynamoDBAccelerator/AmazonDynamoDBAccelerator.puml

!includeurl AWSPUML/Database/AmazonElasticCache/AmazonElasticCache.puml
!includeurl AWSPUML/Database/AmazonElasticCache/Memcached/Memcached.puml
!includeurl AWSPUML/Database/AmazonElasticCache/Redis/Redis.puml
!includeurl AWSPUML/Database/AmazonElasticCache/cachenode/cachenode.puml

package "Database" {
AWSDMS("AWSDMS") {
DATABASEMIGRATIONWORKFLOWJOB("DATABASEMIGRATIONWORKFLOWJOB")
}
DATABASE_AWSDMS("DATABASE_AWSDMS") {
DATABASEMIGRATIONWORKFLOWJOB("DATABASEMIGRATIONWORKFLOWJOB")
}

AMAZONDYNAMODBACCELERATOR("AMAZONDYNAMODBACCELERATOR")

AMAZONELASTICCACHE("AMAZONELASTICCACHE") {
MEMCACHED("MEMCACHED")
REDIS("REDIS")
CACHENODE("CACHENODE")
}
}

@enduml

Database-Others.png


DeveloperTools

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/DeveloperTools/AWSCodeBuild/AWSCodeBuild.puml

!includeurl AWSPUML/DeveloperTools/AWSCodeCommit/AWSCodeCommit.puml

!includeurl AWSPUML/DeveloperTools/AWSCodeDeploy/AWSCodeDeploy.puml

!includeurl AWSPUML/DeveloperTools/AWSCodePipeline/AWSCodePipeline.puml

!includeurl AWSPUML/DeveloperTools/AWSCodeStar/AWSCodeStar.puml

!includeurl AWSPUML/DeveloperTools/AWSX_Ray/AWSX_Ray.puml

package "DeveloperTools" {
AWSCODEBUILD("AWSCODEBUILD")

AWSCODECOMMIT("AWSCODECOMMIT")

AWSCODEDEPLOY("AWSCODEDEPLOY")

AWSCODEPIPELINE("AWSCODEPIPELINE")

AWSCODESTAR("AWSCODESTAR")

AWSX_RAY("AWSX_RAY")
}

@enduml

DeveloperTools.png


General

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/General/AWSManagementConsole/AWSManagementConsole.puml
!includeurl AWSPUML/General/AWScloud/AWScloud.puml
!includeurl AWSPUML/General/Internet/Internet.puml
!includeurl AWSPUML/General/Internetalternate1/Internetalternate1.puml
!includeurl AWSPUML/General/Internetalternate2/Internetalternate2.puml
!includeurl AWSPUML/General/SAMLtoken/SAMLtoken.puml
!includeurl AWSPUML/General/SSLpadlock/SSLpadlock.puml
!includeurl AWSPUML/General/client/client.puml
!includeurl AWSPUML/General/corporatedatacenter/corporatedatacenter.puml
!includeurl AWSPUML/General/disk/disk.puml
!includeurl AWSPUML/General/forums/forums.puml
!includeurl AWSPUML/General/genericdatabase/genericdatabase.puml
!includeurl AWSPUML/General/mobileclient/mobileclient.puml
!includeurl AWSPUML/General/multimedia/multimedia.puml
!includeurl AWSPUML/General/officebuilding/officebuilding.puml
!includeurl AWSPUML/General/tapestorage/tapestorage.puml
!includeurl AWSPUML/General/traditionalserver/traditionalserver.puml
!includeurl AWSPUML/General/user/user.puml
!includeurl AWSPUML/General/users/users.puml
!includeurl AWSPUML/General/virtualprivatecloud/virtualprivatecloud.puml

package "General" {
AWSMANAGEMENTCONSOLE("AWSMANAGEMENTCONSOLE")
AWSCLOUD("AWSCLOUD")
INTERNET("INTERNET")
INTERNETALTERNATE1("INTERNETALTERNATE1")
INTERNETALTERNATE2("INTERNETALTERNATE2")
SAMLTOKEN("SAMLTOKEN")
SSLPADLOCK("SSLPADLOCK")
CLIENT("CLIENT")
CORPORATEDATACENTER("CORPORATEDATACENTER")
DISK("DISK")
FORUMS("FORUMS")
GENERICDATABASE("GENERICDATABASE")
MOBILECLIENT("MOBILECLIENT")
MULTIMEDIA("MULTIMEDIA")
OFFICEBUILDING("OFFICEBUILDING")
TAPESTORAGE("TAPESTORAGE")
TRADITIONALSERVER("TRADITIONALSERVER")
USER("USER")
USERS("USERS")
VIRTUALPRIVATECLOUD("VIRTUALPRIVATECLOUD")
}

@enduml

General.png


ManagementTools


CloudWatch

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/ManagementTools/AmazonCloudWatch/AmazonCloudWatch.puml
!includeurl AWSPUML/ManagementTools/AmazonCloudWatch/alarm/alarm.puml
!includeurl AWSPUML/ManagementTools/AmazonCloudWatch/eventeventbased/eventeventbased.puml
!includeurl AWSPUML/ManagementTools/AmazonCloudWatch/eventtimebased/eventtimebased.puml
!includeurl AWSPUML/ManagementTools/AmazonCloudWatch/rule/rule.puml

package "ManagementTools" {
AMAZONCLOUDWATCH("AMAZONCLOUDWATCH") {
ALARM("ALARM")
EVENTEVENTBASED("EVENTEVENTBASED")
EVENTTIMEBASED("EVENTTIMEBASED")
RULE("RULE")
AMAZONCLOUDWATCH_RULE("AMAZONCLOUDWATCH_RULE")
}
}

@enduml

ManagementTools-AmazonCloudWatch.png


EC2SystemsManager

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/ManagementTools/AmazonEC2SystemsManager/AmazonEC2SystemsManager.puml
!includeurl AWSPUML/ManagementTools/AmazonEC2SystemsManager/Automation/Automation.puml
!includeurl AWSPUML/ManagementTools/AmazonEC2SystemsManager/Inventory/Inventory.puml
!includeurl AWSPUML/ManagementTools/AmazonEC2SystemsManager/MaintenanceWindow/MaintenanceWindow.puml
!includeurl AWSPUML/ManagementTools/AmazonEC2SystemsManager/ParameterStore/ParameterStore.puml
!includeurl AWSPUML/ManagementTools/AmazonEC2SystemsManager/PatchManager/PatchManager.puml
!includeurl AWSPUML/ManagementTools/AmazonEC2SystemsManager/RunCommand/RunCommand.puml
!includeurl AWSPUML/ManagementTools/AmazonEC2SystemsManager/StateManager/StateManager.puml
!includeurl AWSPUML/ManagementTools/AmazonEC2SystemsManager/documents/documents.puml

package "ManagementTools" {
AMAZONEC2SYSTEMSMANAGER("AMAZONEC2SYSTEMSMANAGER") {
AUTOMATION("AUTOMATION")
INVENTORY("INVENTORY")
MAINTENANCEWINDOW("MAINTENANCEWINDOW")
PARAMETERSTORE("PARAMETERSTORE")
PATCHMANAGER("PATCHMANAGER")
RUNCOMMAND("RUNCOMMAND")
STATEMANAGER("STATEMANAGER")
DOCUMENTS("DOCUMENTS")
}
}

@enduml

ManagementTools-AmazonEC2SystemsManager.png


CloudFormation

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/ManagementTools/AWSCloudFormation/AWSCloudFormation.puml
!includeurl AWSPUML/ManagementTools/AWSCloudFormation/changeset/changeset.puml
!includeurl AWSPUML/ManagementTools/AWSCloudFormation/stack/stack.puml
!includeurl AWSPUML/ManagementTools/AWSCloudFormation/template/template.puml

package "ManagementTools" {
AWSCLOUDFORMATION("AWSCLOUDFORMATION") {
CHANGESET("CHANGESET")
STACK("STACK")
AWSCLOUDFORMATION_STACK("AWSCLOUDFORMATION_STACK")
TEMPLATE("TEMPLATE")
}
}

@enduml

ManagementTools-AWSCloudFormation.png


OpsWorks

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/ManagementTools/AWSOpsWorks/AWSOpsWorks.puml
!includeurl AWSPUML/ManagementTools/AWSOpsWorks/apps/apps.puml
!includeurl AWSPUML/ManagementTools/AWSOpsWorks/deployments/deployments.puml
!includeurl AWSPUML/ManagementTools/AWSOpsWorks/instances/instances.puml
!includeurl AWSPUML/ManagementTools/AWSOpsWorks/layers/layers.puml
!includeurl AWSPUML/ManagementTools/AWSOpsWorks/monitoring/monitoring.puml
!includeurl AWSPUML/ManagementTools/AWSOpsWorks/permissions/permissions.puml
!includeurl AWSPUML/ManagementTools/AWSOpsWorks/resources/resources.puml
!includeurl AWSPUML/ManagementTools/AWSOpsWorks/stack/stack.puml

package "ManagementTools" {
AWSOPSWORKS("AWSOPSWORKS") {
APPS("APPS")
DEPLOYMENTS("DEPLOYMENTS")
INSTANCES("INSTANCES")
AWSOPSWORKS_INSTANCES("AWSOPSWORKS_INSTANCES")
LAYERS("LAYERS")
MONITORING("MONITORING")
PERMISSIONS("PERMISSIONS")
AWSOPSWORKS_PERMISSIONS("AWSOPSWORKS_PERMISSIONS")
RESOURCES("RESOURCES")
STACK("STACK")
AWSOPSWORKS_STACK("AWSOPSWORKS_STACK")
}
}

@enduml

ManagementTools-AWSOpsWorks.png


TrustedAdvisor

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/ManagementTools/AWSTrustedAdvisor/AWSTrustedAdvisor.puml
!includeurl AWSPUML/ManagementTools/AWSTrustedAdvisor/checklist/checklist.puml
!includeurl AWSPUML/ManagementTools/AWSTrustedAdvisor/checklistcost/checklistcost.puml
!includeurl AWSPUML/ManagementTools/AWSTrustedAdvisor/checklistfaulttolerance/checklistfaulttolerance.puml
!includeurl AWSPUML/ManagementTools/AWSTrustedAdvisor/checklistperformance/checklistperformance.puml
!includeurl AWSPUML/ManagementTools/AWSTrustedAdvisor/checklistsecurity/checklistsecurity.puml

package "ManagementTools" {
AWSTRUSTEDADVISOR("AWSTRUSTEDADVISOR") {
CHECKLIST("CHECKLIST")
CHECKLISTCOST("CHECKLISTCOST")
CHECKLISTFAULTTOLERANCE("CHECKLISTFAULTTOLERANCE")
CHECKLISTPERFORMANCE("CHECKLISTPERFORMANCE")
CHECKLISTSECURITY("CHECKLISTSECURITY")
}
}

@enduml

ManagementTools-AWSTrustedAdvisor.png


その他

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/ManagementTools/AWSCloudTrail/AWSCloudTrail.puml
!includeurl AWSPUML/ManagementTools/AWSConfig/AWSConfig.puml
!includeurl AWSPUML/ManagementTools/AWSManagedServices/AWSManagedServices.puml
!includeurl AWSPUML/ManagementTools/AWSServiceCatalog/AWSServiceCatalog.puml

package "ManagementTools" {
AWSCLOUDTRAIL("AWSCLOUDTRAIL")
AWSCONFIG("AWSCONFIG")
AWSMANAGEDSERVICES("AWSMANAGEDSERVICES")
AWSSERVICECATALOG("AWSSERVICECATALOG")
}

@enduml

ManagementTools-Others.png


Messaging

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Messaging/AmazonPinpoint/AmazonPinpoint.puml

!includeurl AWSPUML/Messaging/AmazonSES/AmazonSES.puml
!includeurl AWSPUML/Messaging/AmazonSES/email/email.puml

!includeurl AWSPUML/Messaging/AmazonSNS/AmazonSNS.puml
!includeurl AWSPUML/Messaging/AmazonSNS/HTTPnotification/HTTPnotification.puml
!includeurl AWSPUML/Messaging/AmazonSNS/emailnotification/emailnotification.puml
!includeurl AWSPUML/Messaging/AmazonSNS/topic/topic.puml

!includeurl AWSPUML/Messaging/AmazonSQS/AmazonSQS.puml
!includeurl AWSPUML/Messaging/AmazonSQS/message/message.puml
!includeurl AWSPUML/Messaging/AmazonSQS/queue/queue.puml

package "Messaging" {
AMAZONPINPOINT("AMAZONPINPOINT")
MESSAGING_AMAZONPINPOINT("MESSAGING_AMAZONPINPOINT")

AMAZONSES("AMAZONSES") {
EMAIL("EMAIL")
}

AMAZONSNS("AMAZONSNS") {
HTTPNOTIFICATION("HTTPNOTIFICATION")
EMAILNOTIFICATION("EMAILNOTIFICATION")
TOPIC("TOPIC")
AMAZONSNS_TOPIC("AMAZONSNS_TOPIC")
}

AMAZONSQS("AMAZONSQS") {
MESSAGE("MESSAGE")
QUEUE("QUEUE")
}
}

@enduml

Messaging.png


Migration

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Migration/AWSApplicationDiscoveryService/AWSApplicationDiscoveryService.puml

!includeurl AWSPUML/Migration/AWSDMS/AWSDMS.puml
!includeurl AWSPUML/Migration/AWSDMS/databasemigrationworkflow_job/databasemigrationworkflow_job.puml

!includeurl AWSPUML/Migration/AWSMigrationHub/AWSMigrationHub.puml

!includeurl AWSPUML/Migration/AWSSMS/AWSSMS.puml

!includeurl AWSPUML/Migration/AWSSnowball/AWSSnowball.puml
!includeurl AWSPUML/Migration/AWSSnowball/importexport/importexport.puml

package "Migration" {
AWSAPPLICATIONDISCOVERYSERVICE("AWSAPPLICATIONDISCOVERYSERVICE")

AWSDMS("AWSDMS") {
DATABASEMIGRATIONWORKFLOW_JOB("DATABASEMIGRATIONWORKFLOW_JOB")
}
MIGRATION_AWSDMS("MIGRATION_AWSDMS") {
DATABASEMIGRATIONWORKFLOW_JOB("DATABASEMIGRATIONWORKFLOW_JOB")
}

AWSMIGRATIONHUB("AWSMIGRATIONHUB")

AWSSMS("AWSSMS")

AWSSNOWBALL("AWSSNOWBALL") {
IMPORTEXPORT("IMPORTEXPORT")
MIGRATION_AWSSNOWBALL_IMPORTEXPORT("MIGRATION_AWSSNOWBALL_IMPORTEXPORT")
}
MIGRATION_AWSSNOWBALL("MIGRATION_AWSSNOWBALL") {
IMPORTEXPORT("IMPORTEXPORT")
MIGRATION_AWSSNOWBALL_IMPORTEXPORT("MIGRATION_AWSSNOWBALL_IMPORTEXPORT")
}
}

@enduml

Migration.png


MobileServices

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/MobileServices/AWSDeviceFarm/AWSDeviceFarm.puml

!includeurl AWSPUML/MobileServices/AWSMobileHub/AWSMobileHub.puml

!includeurl AWSPUML/MobileServices/AmazonAPIGateway/AmazonAPIGateway.puml

!includeurl AWSPUML/MobileServices/AmazonCognito/AmazonCognito.puml

!includeurl AWSPUML/MobileServices/AmazonMobileAnalytics/AmazonMobileAnalytics.puml

!includeurl AWSPUML/MobileServices/AmazonPinpoint/AmazonPinpoint.puml

package "MobileServices" {
AWSDEVICEFARM("AWSDEVICEFARM")

AWSMOBILEHUB("AWSMOBILEHUB")

AMAZONAPIGATEWAY("AMAZONAPIGATEWAY")

AMAZONCOGNITO("AMAZONCOGNITO")

AMAZONMOBILEANALYTICS("AMAZONMOBILEANALYTICS")

AMAZONPINPOINT("AMAZONPINPOINT")
MOBILESERVICES_AMAZONPINPOINT("MOBILESERVICES_AMAZONPINPOINT")
}

@enduml

MobileServices.png


NetworkingContentDelivery

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/NetworkingContentDelivery/AWSDirectConnect/AWSDirectConnect.puml

!includeurl AWSPUML/NetworkingContentDelivery/AmazonCloudFront/AmazonCloudFront.puml
!includeurl AWSPUML/NetworkingContentDelivery/AmazonCloudFront/downloaddistribution/downloaddistribution.puml
!includeurl AWSPUML/NetworkingContentDelivery/AmazonCloudFront/edgelocation/edgelocation.puml
!includeurl AWSPUML/NetworkingContentDelivery/AmazonCloudFront/streamingdistribution/streamingdistribution.puml

!includeurl AWSPUML/NetworkingContentDelivery/AmazonRoute53/AmazonRoute53.puml
!includeurl AWSPUML/NetworkingContentDelivery/AmazonRoute53/hostedzone/hostedzone.puml
!includeurl AWSPUML/NetworkingContentDelivery/AmazonRoute53/routetable/routetable.puml

!includeurl AWSPUML/NetworkingContentDelivery/ElasticLoadBalancing/ElasticLoadBalancing.puml
!includeurl AWSPUML/NetworkingContentDelivery/ElasticLoadBalancing/ApplicationLoadBalancer/ApplicationLoadBalancer.puml
!includeurl AWSPUML/NetworkingContentDelivery/ElasticLoadBalancing/ClassicLoadBalancer/ClassicLoadBalancer.puml

package "NetworkingContentDelivery" {
AWSDIRECTCONNECT("AWSDIRECTCONNECT")

AMAZONCLOUDFRONT("AMAZONCLOUDFRONT") {
DOWNLOADDISTRIBUTION("DOWNLOADDISTRIBUTION")
EDGELOCATION("EDGELOCATION")
STREAMINGDISTRIBUTION("STREAMINGDISTRIBUTION")
}

AMAZONROUTE53("AMAZONROUTE53") {
HOSTEDZONE("HOSTEDZONE")
ROUTETABLE("ROUTETABLE")
}

ELASTICLOADBALANCING("ELASTICLOADBALANCING") {
APPLICATIONLOADBALANCER("APPLICATIONLOADBALANCER")
NETWORKINGCONTENTDELIVERY_ELASTICLOADBALANCING_APPLICATIONLOADBALANCER("NETWORKINGCONTENTDELIVERY_ELASTICLOADBALANCING_APPLICATIONLOADBALANCER")
CLASSICLOADBALANCER("CLASSICLOADBALANCER")
}
}

@enduml

NetworkingContentDelivery.png


OnDemandWorkforce

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/OnDemandWorkforce/AmazonMechanicalTurk/AmazonMechanicalTurk.puml
!includeurl AWSPUML/OnDemandWorkforce/AmazonMechanicalTurk/assignmenttask/assignmenttask.puml
!includeurl AWSPUML/OnDemandWorkforce/AmazonMechanicalTurk/humanintelligencetasks/humanintelligencetasks.puml
!includeurl AWSPUML/OnDemandWorkforce/AmazonMechanicalTurk/requester/requester.puml
!includeurl AWSPUML/OnDemandWorkforce/AmazonMechanicalTurk/workers/workers.puml

package "OnDemandWorkforce" {
AMAZONMECHANICALTURK("AMAZONMECHANICALTURK") {
ASSIGNMENTTASK("ASSIGNMENTTASK")
HUMANINTELLIGENCETASKS("HUMANINTELLIGENCETASKS")
REQUESTER("REQUESTER")
WORKERS("WORKERS")
}
}

@enduml

OnDemandWorkforce.png


SecurityIdentityCompliance


AWSIAM

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/SecurityIdentityCompliance/AWSIAM/AWSIAM.puml
!includeurl AWSPUML/SecurityIdentityCompliance/AWSIAM/AWSSTS/AWSSTS.puml
!includeurl AWSPUML/SecurityIdentityCompliance/AWSIAM/AWSSTS_2/AWSSTS_2.puml
!includeurl AWSPUML/SecurityIdentityCompliance/AWSIAM/addon/addon.puml
!includeurl AWSPUML/SecurityIdentityCompliance/AWSIAM/dataencryptionkey/dataencryptionkey.puml
!includeurl AWSPUML/SecurityIdentityCompliance/AWSIAM/encrypteddata/encrypteddata.puml

package "SecurityIdentityCompliance" {
AWSIAM("AWSIAM") {
AWSSTS("AWSSTS")
AWSSTS_2("AWSSTS_2")
ADDON("ADDON")
DATAENCRYPTIONKEY("DATAENCRYPTIONKEY")
ENCRYPTEDDATA("ENCRYPTEDDATA")
}
}

@enduml

SecurityIdentityCompliance-AWSIAM.png


IAM

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/SecurityIdentityCompliance/IAM/MFAtoken/MFAtoken.puml
!includeurl AWSPUML/SecurityIdentityCompliance/IAM/long_termsecuritycredential/long_termsecuritycredential.puml
!includeurl AWSPUML/SecurityIdentityCompliance/IAM/permissions/permissions.puml
!includeurl AWSPUML/SecurityIdentityCompliance/IAM/role/role.puml
!includeurl AWSPUML/SecurityIdentityCompliance/IAM/temporarysecuritycredential/temporarysecuritycredential.puml

package "SecurityIdentityCompliance" {
package "IAM" {
MFATOKEN("MFATOKEN")
LONG_TERMSECURITYCREDENTIAL("LONG_TERMSECURITYCREDENTIAL")
PERMISSIONS("PERMISSIONS")
IAM_PERMISSIONS("IAM_PERMISSIONS")
ROLE("ROLE")
TEMPORARYSECURITYCREDENTIAL("TEMPORARYSECURITYCREDENTIAL")
}
}

@enduml

SecurityIdentityCompliance-IAM.png


その他

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/SecurityIdentityCompliance/ACM/certificatemanager/certificatemanager.puml

!includeurl AWSPUML/SecurityIdentityCompliance/AWSArtifact/AWSArtifact.puml

!includeurl AWSPUML/SecurityIdentityCompliance/AWSCertificateManager/AWSCertificateManager.puml
!includeurl AWSPUML/SecurityIdentityCompliance/AWSCertificateManager/certificatemanager/certificatemanager.puml

!includeurl AWSPUML/SecurityIdentityCompliance/AWSCloudHSM/AWSCloudHSM.puml

!includeurl AWSPUML/SecurityIdentityCompliance/AWSDirectoryService/AWSDirectoryService.puml

!includeurl AWSPUML/SecurityIdentityCompliance/AWSKMS/AWSKMS.puml

!includeurl AWSPUML/SecurityIdentityCompliance/AWSOrganizations/AWSOrganizations.puml

!includeurl AWSPUML/SecurityIdentityCompliance/AWSShield/AWSShield.puml

!includeurl AWSPUML/SecurityIdentityCompliance/AWSWAF/AWSWAF.puml
!includeurl AWSPUML/SecurityIdentityCompliance/AWSWAF/filteringrule/filteringrule.puml

!includeurl AWSPUML/SecurityIdentityCompliance/AmazonCloudDirectory/AmazonCloudDirectory.puml

!includeurl AWSPUML/SecurityIdentityCompliance/AmazonInspector/AmazonInspector.puml
!includeurl AWSPUML/SecurityIdentityCompliance/AmazonInspector/agent/agent.puml

!includeurl AWSPUML/SecurityIdentityCompliance/AmazonMacie/AmazonMacie.puml

package "SecurityIdentityCompliance" {
CERTIFICATEMANAGER("CERTIFICATEMANAGER")
ACM_CERTIFICATEMANAGER("ACM_CERTIFICATEMANAGER")

AWSARTIFACT("AWSARTIFACT")

AWSCERTIFICATEMANAGER("AWSCERTIFICATEMANAGER") {
CERTIFICATEMANAGER("CERTIFICATEMANAGER")
AWSCERTIFICATEMANAGER_CERTIFICATEMANAGER("AWSCERTIFICATEMANAGER_CERTIFICATEMANAGER")
}

AWSCLOUDHSM("AWSCLOUDHSM")

AWSDIRECTORYSERVICE("AWSDIRECTORYSERVICE")

AWSKMS("AWSKMS")

AWSORGANIZATIONS("AWSORGANIZATIONS")

AWSSHIELD("AWSSHIELD")

AWSWAF("AWSWAF") {
FILTERINGRULE("FILTERINGRULE")
}

AMAZONCLOUDDIRECTORY("AMAZONCLOUDDIRECTORY")

AMAZONINSPECTOR("AMAZONINSPECTOR") {
AGENT("AGENT")
}

AMAZONMACIE("AMAZONMACIE")
}

@enduml

SecurityIdentityCompliance.png


Storage


S3

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Storage/AmazonS3/AmazonS3.puml
!includeurl AWSPUML/Storage/AmazonS3/bucket/bucket.puml
!includeurl AWSPUML/Storage/AmazonS3/bucketwithobjects/bucketwithobjects.puml
!includeurl AWSPUML/Storage/AmazonS3/object/object.puml

package "Storage" {
AMAZONS3("AMAZONS3") {
BUCKET("BUCKET")
BUCKETWITHOBJECTS("BUCKETWITHOBJECTS")
OBJECT("OBJECT")
}
}

@enduml

Storage-S3.png


StorageGateway

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Storage/AWSStorageGateway/AWSStorageGateway.puml
!includeurl AWSPUML/Storage/AWSStorageGateway/cachedvolume/cachedvolume.puml
!includeurl AWSPUML/Storage/AWSStorageGateway/non_cachedvolume/non_cachedvolume.puml
!includeurl AWSPUML/Storage/AWSStorageGateway/virtualtapelibrary/virtualtapelibrary.puml

package "Storage" {
AWSSTORAGEGATEWAY("AWSSTORAGEGATEWAY") {
CACHEDVOLUME("CACHEDVOLUME")
NON_CACHEDVOLUME("NON_CACHEDVOLUME")
VIRTUALTAPELIBRARY("VIRTUALTAPELIBRARY")
}
}

@enduml

Storage-StorageGateway.png


その他

@startuml

!define AWSPUML https://raw.githubusercontent.com/milo-minderbinder/AWS-PlantUML/release/18-2-22/dist

!includeurl AWSPUML/common.puml

!includeurl AWSPUML/Storage/AWSSnowball/AWSSnowball.puml
!includeurl AWSPUML/Storage/AWSSnowball/importexport/importexport.puml

!includeurl AWSPUML/Storage/AmazonEBS/AmazonEBS.puml

!includeurl AWSPUML/Storage/AmazonEFS/AmazonEFS.puml
!includeurl AWSPUML/Storage/AmazonEFS/EFSfilesystem/EFSfilesystem.puml

!includeurl AWSPUML/Storage/AmazonGlacier/AmazonGlacier.puml
!includeurl AWSPUML/Storage/AmazonGlacier/archive/archive.puml
!includeurl AWSPUML/Storage/AmazonGlacier/vault/vault.puml

!includeurl AWSPUML/Storage/snapshot/snapshot.puml
!includeurl AWSPUML/Storage/volume/volume.puml

package "Storage" {
AWSSNOWBALL("AWSSNOWBALL") {
IMPORTEXPORT("IMPORTEXPORT")
STORAGE_AWSSNOWBALL_IMPORTEXPORT("STORAGE_AWSSNOWBALL_IMPORTEXPORT")
}
STORAGE_AWSSNOWBALL("STORAGE_AWSSNOWBALL") {
IMPORTEXPORT("IMPORTEXPORT")
STORAGE_AWSSNOWBALL_IMPORTEXPORT("STORAGE_AWSSNOWBALL_IMPORTEXPORT")
}

AMAZONEBS("AMAZONEBS")

AMAZONEFS("AMAZONEFS") {
EFSFILESYSTEM("EFSFILESYSTEM")
}

AMAZONGLACIER("AMAZONGLACIER") {
ARCHIVE("ARCHIVE")
VAULT("VAULT")
}

SNAPSHOT("SNAPSHOT")

VOLUME("VOLUME")
}

@enduml

Storage.png


備考

今回のPlantUMLファイルと生成画像の一式は↓に上げてある。

https://github.com/sky0621/try-plantuml/tree/master/aws

ふと思ったけど、Terraformのテンプレートファイルを読み込んでPlantUMLのpumlファイルに変換するコンバーターでもあれば、Terraformのコード書いたらそのままAWS上、どのように表現されるか可視化されるのでは?

terraform graphで依存関係の線は可視化できるけど、アーキテクチャ図みたいなものまでは出来ないし。

何か既存でツールあるのかな。フリーで。

ないなら、コンバーター作りを試みようか。。。