
目次
初めに
環境構築
- AWS Configの有効化
- CloudFormationでスタック作成
システム設定
構成図出力
最後に
初めに
最近AWS環境でインフラ構築をすることがかなり増えてきました。クラウド上でリソースを作成するのは、オンプレミスでの構築よりも素早くできますが、やはり最終結果として構成図を描いたりということが必要になってくるかと思います
構成図作成で苦労するのは、何か変更があった際はその都度変更を加えていかなければならないということではないでしょうか
今回は私自身含めそんなお悩みを抱えている人に朗報なAWSのサービスがありましたので紹介したいと思います。初めて使用するサービスになりますので、検証も含め執筆していきたいと思います
環境構築
まずAWS Perspectiveを動作させる環境ですが、このサービスで様々なサービスがCloudFormationを使って作成されるので、別アカウントを作成し、専用アカウントにする方がいいのではないかと思います。
別アカウントのリソースも読み込むことができると記載がありましたので、今回は専用のアカウントを作成して構築してみます
AWSで公開されている本サービスの構成内容は下記になります

今回は新規にアカウントを作成した流れで進めていきます。IAMの制御などは特に触れませんが、新規アカウント作成時のセキュリティ制御などは十分ご注意ください
AWS Configの有効化
まずAWS Configの設定を行います。
※AWS Configを設定済みの場合はとばしてください
AWS Configをサービスから検索し、設定画面に進みます。
チェックしておく項目は「記録するリソースタイプ」と「グローバルリソース~」の部分です。
- 「記録するリソースタイプ」 は”このリージョンでサポートされているすべてのリソースを記録します”を
選択します。 - 「グローバルリソース~」 の部分はチェックを入れておきます

後の設定は利用アカウント毎に代わると思いますので、ここでは特に触れずAWS Configの設定は完了とします。
(”次へ”を押していくことで完了まですすめることが出来ます)
CloudFormationでスタック作成
事前準備は終わったので、AWS Perspectiveの環境を作成します。
こちらのURLにアクセスし、”AWS コンソールで起動する”を選択します

起動後、下記画面が表示されるので、”次へ”を選択

次の画面ではCloudFormationのパラメーター設定を行います

設定項目は下記表の通りです。設定が終われば”次へ”を選択
AdminUserEmailAddress | AWS Perspectiveのログイン情報が送られるメールアドレスを設定 |
AlreadyHaveConfigSetuup | AWS Configの設定をすでにおこなっているか 上の手順でおこなったので、ここは”Yes”を選択 |
CreateElasticsearchServiceRole | ElasticSearchのサービスロールを作成するかどうか 利用アカウントで作成しているものがなければ”Yes”を選択 |
CreateNeptuneReplica | サービスで使用するNeptuneのリードレプリカを作成するかどうか 特に必要性は感じないので、”No”を選択 |
NeptuneInstanceClass | Neptuneのインスタンスタイプを選択 初めての利用なのでとりあえずデフォルトを選択 |
OptOutOfSendingAnonymousUsageMetrics | 匿名でAWSにメトリクスを送るかどうか 一旦デフォルトのままですすめる |
後は設定内容の確認画面なので、問題なければ”次へ”を選択。スタック作成の前にチェックを入れる部分があるので、ここだけ忘れずにチェックを入れる(下記赤枠)

スタックの作成がすべて終わるのは30~40分ほどかかります。
スタック作成中に先ほど入力したメールアドレス宛にAWS PerspectiveのユーザーIDとパスワードが記載されたメールが届くので確認しておきます
スタックの作成が終わったら、作成されたものの中からCloudFrontのスタックを探します。スタックを選択し、「出力」の項目を選択するとAWS PerspectiveのURLが記載されています。ここからシステム画面に入ります

システムの設定
システムのURLを踏むと、ログイン画面が表示されます

Usernameとパスワードはメールアドレスに届いているものになるので、入力します。そのあとパスワードの再設定を求められるので、パスワード変更してください。
ログインが終わると、リソースを読み込むアカウント・リージョンの設定を行います。画面上部の”import”ボタンは、AWS Perspectiveが稼働しているリージョンのリソースを読み込むものです。一方で、左下テキストボックスはAWSのアカウントIDを入力する欄で、入力するとリージョンの選択が出てきて対象のリソースを読み込めます。

設定完了後リソースの読み込みが始まります。しかし20分ほど経っても読み込みが完了せず…

構成図出力
今回他アカウントのリソースを読み込もうとしていたので、AWS Perspective環境も同時に読み込ませるように先程の画面で”import”ボタンを押します。そうすると5~10分ほどでリソースが表示されました。
注意点としては、左メニューにResourcesという項目があり、そこにサービスが紐づいているのですが、そこをクリックしないと個々のサービスが構成図エリアに表示されませんでした

足りていないサービスも多そうですが、全体としてかなりきれいに構成図を描いていると思いました。自動生成するとサービスの位置がバラバラになるものが多い印象です。拡大してみるとこのような感じです

ECSのクラスターやAPIゲートウェイなどが表示されています。読み込めていないもしくは対応していないサービスもいくつかありそうなので、このあたりは本格的に使用する前にはもう少し検証が必要かと思います。
また最初に読み込んでいた他アカウントのリソースは結局読み込まれずでした。バックエンドでLambdaが動いて構成図のリソースを作成しているようですが、Lambdaがタイムアウトエラーになっていたので、このあたりもどうやって読み込むのかなども追加で確認したいです。
最後に
検証が十分にできていないところもありすぐに本格的に使用できるかという部分ではまだわからないといった感じですが、構成図がとてもきれいに出力されている部分は他のツールよりも優位性が高いところかと思いました。今後も対応サービスなども増えていくと思うので、皆さんもぜひ一度試してみてください。
※今回検証しましたAWS Perspectiveは作成されるサービスが多いのもあり、放置しておくと費用が大きくなるので、使用しない時は作成したstackすべて削除することをおすすめします