PlantUMLでAWSのシステム構成図がなるべく管理される世界観を考えてみた

# 先日、パブリックの方も対応したようです :eyes: :bow_tone2: 
[リリースノート - Qiita](https://qiita.com/release-notes#2021-05-07)

# これをやった経緯
これまで経験してきたプロジェクトでも多くのシステム構成図を作成してきましたが、ER図とか仕様書とか構成図も含め、
ドキュメントってやっぱり最新の状態で管理されないなー :thinking: というのを結構、課題に感じていまして、しばらくどうしたらいいんだろう :question: 
と考えを巡らせていたのですが、システム構成図に関してはこうするのはどうだろう :question: という僕以外の優秀なエンジニアの皆様への問題提起となります。

# これまでは何が問題だったのか？
- 図を描きやすいツール(Cacooとかね)を使って構成図を作成していて、開発するソースや使ってるツールとは離れた場所で管理される状態だった :sweat_drops: 
- 開発プロジェクトへ参加した際に最低限必要なもの(ソースとか、ミドルウェアとか、タスク管理ツールとか)の中にいないため、途中から入った人には共有されないこともあった :sweat_drops: 
- 別にこれがなくても正直何も問題ない人もいるので、作ってもそれ以降の修正はされない(バージョン管理されない)状態だった。 :sweat_drops: 

# どうしたらいいんだろう？
- 開発してるソースと一緒にGit管理されたほうが良いのでは :question: 
- Githubとかでソース管理してるならもう、 **Readme.md** とかでシステム構成図確認できる状態にしちゃったほうが良さそう :question: 
- そうなると、**Readme.md**が**Markdown**なのもあり、今後のバージョン管理で変更しやすい状態にするのも考えると、**Markdown**みたいなものがいい :question: 
- うーん、テキストで図を書けるものって何かなかったっけ :question: :question: :question: 

# PlantUMLがあるじゃないか :exclamation: :exclamation: :exclamation:
ということで、色々と調べてみた :eyes: :eyes: :eyes:ところ、下記の参考記事が見つかり、軽くQiita:Teamでも試してみたところできちゃったので、
次は**Qiita**でということでさらに調べてみたところ、応用でできそうだったので、QiitaでPlantUMLであるシステムの構成図を書いてみました。

#### 参考にした記事
- [シンプルなテキストファイルで UML が書ける、オープンソースのツール](https://plantuml.com/ja/)
- [PlantUMLによってコードベースでAWSのアーキテクチャー図を作る方法 - Qiita](https://qiita.com/munieru_jp/items/088dfc3e5e91b5ea17c3#fn1)
- [awslabs/aws-icons-for-plantuml: PlantUML sprites, macros, and other includes for Amazon Web Services services and resources](https://github.com/awslabs/aws-icons-for-plantuml)
- [QiitaにUMLを載せられるようにPlantUMLつかってWebサービス作ろうと思ったら本家にあった話 - Qiita](https://qiita.com/ryskiwt/items/c6c0760b341b5a5fe560)

# できあがったのがこちら :bowtie: :bowtie: :bowtie: 
AWSで構成されているあるシステムの開発環境をPlantUML化してみました :thumbsup: 
この画像のURLをそのまま [こちらのサイト](http://www.plantuml.com/plantuml) で入力してSubmitすると、元のPlantUML内容も確認できます :eyes: 

[![alt](http://www.plantuml.com/plantuml/png/TL9DQnH14BtFhvZCQGLd9uaV1maXPbqaeB1nqEJQCrkPRUpfxlJ7helaaha88dWIF8fwzEH14C4VCmVnNrZTBEFkf7SFsrslNjMhULr7sX1bRCsYdIbSK0xnmxDyWd4yCqRg1rcco69OKJEpXTMWIi4DS3CiHPsHXMQaqEvCAIPqUY5KAXdXhc5M4sr0PLEgJRH3USdijEkUuJaITItuK69uC_yOE2Z2ikUegRTmi86q1hBnQ7-JOHNxBoGbeoKnLF0J7BrI_fhbf_asPIMiF76VausOiDDjubORKOCQyufKKACdMKvhoM1S4yfoK7DQGZvUgKJ-EmPQM5M2lXqdVp-y_VFnPzjyQfllRVC-GKXZkzWwNd8hyjA3qlrZght-udZNlzlcLzkyQvkcRTwuchFnCP8Z1QKXl68G9qIcN2Wp0tG_tKlYWuCNaz7XOVmwYl6tHjpR7TxP7TuRdf-VP_jt7N5Y2xGgpct1mM09qR6qXRR5gjZzqEk1LEBL4iKdxdHJp90fECHZXgBOuMI2GpdsLLZq_hgeedDYO5DLpM-gBg1m7mp5LiLrTa5CEKFYiJjTXGTw90Mud9Xxvix4-_ojRJuxUwz_jCtN7hrUwak6hAVB_FI9epywxZ60-N4q4ENLL-FbFdOLeFiznPmK3CnI0gRBMYV-wDCaNT2Nc15QfnL9kjiQ3JTwS6d1kZvuTnmVKbwjiO8xEj1-9_7cPtH9BEbgLbiRf-bXx3Uoo_Z8utudEjn77iTN2w3-CGAuVv00xfqFu1j-1_9hxWQotjGEnqa3MdxI08ximCIU7S2H7PwtL-KVhCDz5AhhTTKGcW3HFZFe1-PwRbn5Lz4HyAcjsJy0)](http://www.plantuml.com/plantuml/png/TL9DQnH14BtFhvZCQGLd9uaV1maXPbqaeB1nqEJQCrkPRUpfxlJ7helaaha88dWIF8fwzEH14C4VCmVnNrZTBEFkf7SFsrslNjMhULr7sX1bRCsYdIbSK0xnmxDyWd4yCqRg1rcco69OKJEpXTMWIi4DS3CiHPsHXMQaqEvCAIPqUY5KAXdXhc5M4sr0PLEgJRH3USdijEkUuJaITItuK69uC_yOE2Z2ikUegRTmi86q1hBnQ7-JOHNxBoGbeoKnLF0J7BrI_fhbf_asPIMiF76VausOiDDjubORKOCQyufKKACdMKvhoM1S4yfoK7DQGZvUgKJ-EmPQM5M2lXqdVp-y_VFnPzjyQfllRVC-GKXZkzWwNd8hyjA3qlrZght-udZNlzlcLzkyQvkcRTwuchFnCP8Z1QKXl68G9qIcN2Wp0tG_tKlYWuCNaz7XOVmwYl6tHjpR7TxP7TuRdf-VP_jt7N5Y2xGgpct1mM09qR6qXRR5gjZzqEk1LEBL4iKdxdHJp90fECHZXgBOuMI2GpdsLLZq_hgeedDYO5DLpM-gBg1m7mp5LiLrTa5CEKFYiJjTXGTw90Mud9Xxvix4-_ojRJuxUwz_jCtN7hrUwak6hAVB_FI9epywxZ60-N4q4ENLL-FbFdOLeFiznPmK3CnI0gRBMYV-wDCaNT2Nc15QfnL9kjiQ3JTwS6d1kZvuTnmVKbwjiO8xEj1-9_7cPtH9BEbgLbiRf-bXx3Uoo_Z8utudEjn77iTN2w3-CGAuVv00xfqFu1j-1_9hxWQotjGEnqa3MdxI08ximCIU7S2H7PwtL-KVhCDz5AhhTTKGcW3HFZFe1-PwRbn5Lz4HyAcjsJy0)

# まとめ
- システム構成図もちゃんとバージョン管理するなら、PlantUMLで管理したらうまく管理される可能性が高まるかも :question: 
- Githubの**Readme.md**で確認できるとなお良しですが、 [PlantUMLの公式サイト？](http://www.plantuml.com/plantuml) が生きてる必要はありそう :question: 
- 同じ流れでER図やユースケース図とかも対応はできそうだなー :thinking: と感じましたが、果たしてどこまでちゃんと管理できるのかしら :question: