3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【AWS】AWSでInfrastructure as Code (既存リソースのテンプレート化)

Last updated at Posted at 2020-09-07

はじめに

この度、CloudFormationを使って既存リソースのテンプレート化について扱うことがありまして、その備忘録として書き残します。

テンプレートからのスタック化については扱っていないのであしからず。

CloudFormationとは

AWS-CloudFormation@4x.png

簡単にいうと...「AWSのインフラをコードで管理しよう」というサービスです。
テンプレートと呼ばれるJSON/YAML形式で書かれた設定を読み込ませてあげれば、それをもとに実際のリソースを構築してくれます。
結構散らばりがちなリソースを一元管理できるのはめちゃめちゃいいなという印象です。

ただ、CloudFormationで構築したリソースを「コンソールから変更する」などやってしまうと面倒なことになりそうな気はしているので注意したいですね。

既存リソースのテンプレート化を行う方法

既存リソースのテンプレート化を行う方法なのですが、下記の通りいくつかあります。

  • CloudFormer

  • AWS公式が出しているテンプレート化ツール。ずっとベータ版らしい

  • ベータ版なので本番環境などでは使わないように!らしい

  • 公式ドキュメント

  • CloudFormer2

  • 今回は扱わないです。

  • CloudFormer2

  • Former2

  • サードパーティのツール

  • リソースをぽちぽち選択するだけで勝手にテンプレートを形成してくれる。

  • Former2

CloudFormer

CloudFormationのコンソールから選択することができます。
CloudFormer1.png

まず詳細設定を行います。
途中でUsernameとPassWordを設定するのですが、これは後程必要となります。

作成を押し、作成が完了したら出力タブにあるURLを押してください。

CloudFormer2.png

するとテンプレート化を行うリソースを選択するページに飛ぶので、先ほど設定したUsernameとPasswordの入力を行い、テンプレート化を行いたいリソースを適宜選択してください。

実際にやるとわかるのですが、

  1. 画面遷移が多い
  2. 対象のリソースが少ない

と、さすがベータ版という感じのサービスでした。

Former2

Former2のページにアクセスして実行することができます。
Former2は先述の通りサードパーティのサービスなのですが、まぁ優秀で積極的に使いたいですね。

Former2の認証ページはこのようになっています。

former2_1.png

Former2は「アクセスキーID」と「シークレットアクセスキー」を与えることでIAMユーザに立ち上がっているリソースを認識します。

そのため、扱いには注意が必要で、ここに入力するIAMユーザには「ReadOnlyAccess」のポリシーをアタッチすることが推奨(というかほぼ必須)されています。

なので、ReadOnlyAccessユーザを作成します。
IAMユーザの作成を行える権限があるユーザでコンソールにログインし、
「IAM-ユーザの追加」を押します。

適宜ユーザ名を入力し、アクセスの種類でプログラムのアクセスにチェックを入れます。
former2_2.png

アクセス権限では、既存のポリシーを直接アタッチから「ReadOnlyAccess」を選択します。
(ここですべてのリソースに対してのReadOnlyAccessを与えたくない方は、適宜テンプレート化に必要なリソースのみのReadOnlyAccessを与えてください。)

former2_3.png

ユーザの作成を行うと、アクセスキーIDとシークレットアクセスキーIDが発行されるのでFormer2の認証画面に入力します。

former2_4.png

認証を行い、詳細設定を行うとダッシュボードに移行します。

デフォルトでは、リージョンがUS Eastになっているので、適宜テンプレート化したいリソースが置いてあるリージョンに切り替えてください。(リソースが表示されない場合には、Scan Accountボタンを押してください)

former2_5.png

テンプレート化を行いたいリソースを選択し、Add Selectedを押します。すべての選択が終わり次第Generateを押すと、テンプレート化を行えます。

former2_6.png

Search欄でタグが付いているリソースのみの絞り込みが行えたり、リソースの種類が豊富だったりかなり使い勝手がいいです。

Former2のローカル実行

セキュリティ上の観点からローカル実行を行いたい方向けにローカルでのホスティングが行えます。

DockerFileからイメージを作成し、コンテナを作成し、起動することで実行できました。

former2_7.png

まとめ

以上、既存リソースからテンプレートを作成するまでをまとめてみました。
セキュリティを気にしないのであればFormer2をつかってブラウザ上でパパっと作成してしまうのがいいのかなと感じてます。

AWSがFormer2をサポートするようになればもっと捗るんじゃないかなぁと...個人的な感想です...。

3
2
0

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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?