お題
PlantUMLという、ダイアグラムを独自のDSLで生成するツールがある。
(名前にUMLは付くもののUML以外にも、ワイヤーフレーム、ガントチャート、マインドマップ、ER図などさまざまなダイアグラムを生成できる。)
そのPlantUMLの公式ライブラリとして、AWS-PlantUMLというものがあり、これを使うとテキスト形式のファイルでAWSリソースを使ったアーキテクチャ図を表現できる。
具体的には以下の通り。
- 以下のようなPlantUML独自のDSLでテキストファイルを作る。
@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
- 以下のような(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
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
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
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
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
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
その他
@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
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
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
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
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
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
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
その他
@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
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
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
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
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
その他
@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
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
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
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
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
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
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
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
その他
@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
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
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
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
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
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
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
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
その他
@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
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
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
その他
@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
備考
今回のPlantUMLファイルと生成画像の一式は↓に上げてある。
https://github.com/sky0621/try-plantuml/tree/master/aws
ふと思ったけど、Terraformのテンプレートファイルを読み込んでPlantUMLのpumlファイルに変換するコンバーターでもあれば、Terraformのコード書いたらそのままAWS上、どのように表現されるか可視化されるのでは?
terraform graph
で依存関係の線は可視化できるけど、アーキテクチャ図みたいなものまでは出来ないし。
何か既存でツールあるのかな。フリーで。
ないなら、コンバーター作りを試みようか。。。