AWSのCloudFormerを使ってみた

はじめに

新たにサーバ立てて環境構築したくなった時に,イメージからインスタンスを起動してRoute53やらロードバランサーやらなどの設定するのは面倒くさい...

CloudFormationを試す

dev.classmethod.jp 既存の構成をテンプレートに落とし込める気がせず挫折
デザイナーを使えばドラッグ&ドロップで直感的に作成できそうだけど複雑な構成は面倒

Route53やロードバランサーの設定をいちいち設定したくないだけなのに...

CloudFormerを試す

docs.aws.amazon.com
これで既存のAWSリソースからCloudFormationのテンプレートが作れる

CloudFormerスタックの作成

上のリンクに書いてあるとおりに進める
1. AWS CloudFormationコンソールにログイン
2. スタックの作成を選択
3. サンプルテンプレートを使用を選択し,サンプルテンプレートの選択欄のプルダウンからCloudFormerを選択して次へ
4. スタック名パラメータ(Password, Username, VPCSelection)を入力し次へ
5. スタックオプションの設定と詳細オプションは特に何も設定することがなければ次へ
6. レビューページにて設定を確認し,一番下のThe following resource(s) require capabilities: [AWS::IAM::Role]にチェックをつけてスタックを作成

CloudFormerスタックのステータスがCREATE_COMPLETEになるまで数分待つ

作成したCloudFormerスタックの起動

  1. CloudFormationコンソールでCloudFormerスタックをクリックし、出力を選択
  2. URLをクリックして,CloudFormerを起動させる
  3. スタック作成時に設定したユーザー名とパスワードを入力し,CloudFormerにログイン

これでCloudFormerを使ってAWSリソースからテンプレートを作れるようになる

CloudFormerでAWSリソースからテンプレートを作成

バージョンは0.14(Beta)

  1. リージョンを選択し,CreateTemplateをクリック
  2. Introページ
    Resource Name Filterで必要に応じて,リソースの絞り込みや全選択が可能
  3. DNSページ
    Route53の設定
  4. VPCページ
    Amazon Virtual Private Cloudsの設定
  5. VPC Networkページ
    Subnets,
    InternetとCustomerとVPNのGateways,
    DHCP Options,
    VPNとPeeringのConnectionsの設定
  6. VPC Securityページ
    Network ACLs, Route Tablesの設定
  7. Networkページ
    Elastic Load Balancers, Elastic IP Adress, Network Interface, CloudFront Distributionsの設定
  8. Managed Servicesページ
    Auto Scaling Groups, Elastic Beanstalk Applications, OpsWorks Stacksの設定
  9. Managed Configページ
    Auto Scaling Launching Configurations,
    Elastic BeanstalkのApplication Versions, Environment, Configuration Templates, OpsWorksのApps, Layers, Elastic Load Balancer Attachementsの設定
  10. Computeページ
    EC2 Instances, OpsWorks Instancesの設定
  11. Storageページ
    Elastic Block Storage Volumes, RDS Database Instances, ElastiCache Cache Clusters, Redshift Cluster, DynamoDB Tables, S3 Buckets, SimpleDB Domainsの設定
  12. Storage Configページ
    RDS DB, ElastiCache, RedShift ClusterのSubnetとParameterのGroupsの設定
  13. App Servicesページ
    SQS Queues, SNS Topics, Kinesis Streams
  14. Securityページ
    EC2, RDS, ElasticCache, Redshift ClusterのSecurity GroupsとSQS Queue, SNS Topic, S3 BucketのPoliciesの設定
  15. Operationalページ
    Auto Scaling Policies, Auto Scaling Scheduled Actions, CloudWatch Alarms, CloudTrail Trails
  16. Summaryページ
    追加したリソースの確認
  17. Summaryの次に進み,Save Templateでテンプレートを指定したS3バケットに保存

あとはCloudFormationコンソールにて、S3に保存されたテンプレートを指定し、スタックを起動する

所感

jsonやらyamlで書かれたテンプレートに拒絶反応が出ていただけで、CloudFormerいじったり色々調べたりしているうちに分かってきた
一度、CloudFormerでテンプレート吐き出してみるのも良さそう

作成したテンプレートを実務に役立てていきたい