LoginSignup
110
95

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-06-30

お題

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で依存関係の線は可視化できるけど、アーキテクチャ図みたいなものまでは出来ないし。
何か既存でツールあるのかな。フリーで。
ないなら、コンバーター作りを試みようか。。。

110
95
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
110
95