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スタックの起動
- CloudFormationコンソールでCloudFormerスタックをクリックし、出力を選択
- URLをクリックして,CloudFormerを起動させる
- スタック作成時に設定したユーザー名とパスワードを入力し,CloudFormerにログイン
これでCloudFormerを使ってAWSリソースからテンプレートを作れるようになる
CloudFormerでAWSリソースからテンプレートを作成
バージョンは0.14(Beta)
- リージョンを選択し,CreateTemplateをクリック
- Introページ
Resource Name Filterで必要に応じて,リソースの絞り込みや全選択が可能 - DNSページ
Route53の設定 - VPCページ
Amazon Virtual Private Cloudsの設定 - VPC Networkページ
Subnets,
InternetとCustomerとVPNのGateways,
DHCP Options,
VPNとPeeringのConnectionsの設定 - VPC Securityページ
Network ACLs, Route Tablesの設定 - Networkページ
Elastic Load Balancers, Elastic IP Adress, Network Interface, CloudFront Distributionsの設定 - Managed Servicesページ
Auto Scaling Groups, Elastic Beanstalk Applications, OpsWorks Stacksの設定 - Managed Configページ
Auto Scaling Launching Configurations,
Elastic BeanstalkのApplication Versions, Environment, Configuration Templates, OpsWorksのApps, Layers, Elastic Load Balancer Attachementsの設定 - Computeページ
EC2 Instances, OpsWorks Instancesの設定 - Storageページ
Elastic Block Storage Volumes, RDS Database Instances, ElastiCache Cache Clusters, Redshift Cluster, DynamoDB Tables, S3 Buckets, SimpleDB Domainsの設定 - Storage Configページ
RDS DB, ElastiCache, RedShift ClusterのSubnetとParameterのGroupsの設定 - App Servicesページ
SQS Queues, SNS Topics, Kinesis Streams - Securityページ
EC2, RDS, ElasticCache, Redshift ClusterのSecurity GroupsとSQS Queue, SNS Topic, S3 BucketのPoliciesの設定 - Operationalページ
Auto Scaling Policies, Auto Scaling Scheduled Actions, CloudWatch Alarms, CloudTrail Trails - Summaryページ
追加したリソースの確認 - Summaryの次に進み,Save Templateでテンプレートを指定したS3バケットに保存
あとはCloudFormationコンソールにて、S3に保存されたテンプレートを指定し、スタックを起動する
所感
jsonやらyamlで書かれたテンプレートに拒絶反応が出ていただけで、CloudFormerいじったり色々調べたりしているうちに分かってきた
一度、CloudFormerでテンプレート吐き出してみるのも良さそう
作成したテンプレートを実務に役立てていきたい