【AWSの呼吸 捌ノ型】実機情報からAWSのシステム構成図を自動生成する

f:id:wingfair:20210513235323p:plain

目次

はじめに

AWSを使っている方なら誰しもタイトルのようなことができたらいいのになーと1度は考えたことがあるのではないでしょうか?
今回はそんな理想を叶えてくれる(かもしれない)Former2というツールを使って、システム構成図を描いてみたいと思います。

Former2ってそもそも何か?どのように設定したらよいか?については、こちらの記事で紹介していますので、参考にしてみてください。

理想 (drawioで手動作成)

まずは今回想定するシステム構成図の姿から。
こんな構成をボタン一つでシステム構成図に起こしてくれることを願って試してみました。
(あくまでお試しなので、あえてシンプルな構成を選んでいます)

f:id:wingfair:20210513232306p:plain
システム構成図 (理想)

現実 (Former2で自動作成)

が・・・しかし、現実はそう甘くはありませんでした・・泣
なんとも中途半端な構成図になってしまいました。

f:id:wingfair:20210514213826p:plain
システム構成図 (現実)

設定

上記のような図をFormer2でアウトプットさせるにはSetup->Settingsの[Default Output]に”Daiagram”を選択しておきます。

f:id:wingfair:20210513232232p:plain
Settings

AWSリソースの追加と構成図の作成

設定が終わったら、図にしたいリソースを[Add Selected]で追加し、[Generate]ボタンを押したら、自動で図を作成してくれます。
今回、実際に描画対象としてみたAWSリソースは以下の通りです。

  • Compute->EC2->Instances
  • Compute->EC2->V2 Load Balancers
  • Compute->EC2->V2 Load Balancer Listener Rules
  • Database->RDS->Clusters
  • Database->ElastiCache->Clusters
  • Networking & Content Delivery-> VPC->VPCs
  • Networking & Content Delivery-> VPC->Subnets
  • Networking & Content Delivery-> VPC->Internet Gateways
  • Networking & Content Delivery->VPC->NAT Gateways
  • Networking & Content Delivery->CloudFront->Distributions
  • Networking & Content Delivery->Route 53->Hosted Zones
  • Networking & Content Delivery->Route 53->Records

気づいた点

  • 線を引いてくれない
    • Route53=>CloudFront=>ELB=>EC2の一連の線を引いてくれませんでした
  • Diagram機能として描画できないリソースがある
    • 以下のVPCまわりのリソースは描画されなかったので、未対応なのかもしれません
      • VPCs、Subnets
      • Internet Gateways、NAT Gateways
    • その他、AZやSGなど表現する階層がたくさんあるような複雑な絵には対応しきれないかもしれません
  • そもそもFormer2自身が読み込めてないリソースがある
    • 今回の環境依存で何か設定が悪くて読み取れてないのか、Former2自体の不具合なのか不明ですが、no recordでした
    • 例えば以下のリソース情報が参照できませんでした (実機上にはリソース自体は存在するにも関わらず)
      • Compute->EC2->V2 Target Groups
      • Compute->EC2->Security Groups
      • Compute->EC2->Volumes
      • Storage->S3->Buckets
    • EC2とELB間の線はTarget Groupsが設定できれば、引けるのかもしれません
  • 実はDiagramはまだBeta扱い
    • CloudFormationはBetaがついてませんが、Diagram機能はまだBetaみたいなので温かく見守りましょう
    • (CloudFormerと同じく永遠にBeta版という可能性もありますが・・・)
      f:id:wingfair:20210513231925p:plain
      Diagram機能(Beta)

図のエクスポート

Outputs->Diagram->File->Export as->XMLを選択すると、XMLファイルでエクスポートできます。 例えば、このファイルをAWSの構成図の作図ツールとしてメジャーなdraw.ioにインポートして編集することが可能です。

終わりに

Former2でシステム構成図(っぽいもの)を作ることができました。 残念ながら、手放しで簡単にシステム構成図として使えるものができるかというと、そんな甘い話はないという結果となりました。
あくまで簡易的に試しただけなので、使い方が悪いだけの可能性もありますが。。

Former2自体、全てのAWSサービスのリソースを十分に読み込めていなかったり、Daigram機能ではキレイに作図できない部分が多かったりするようなので、まだまだ様子を見ながら使った方がよさそうです。

以上。