Upgrade to Pro — share decks privately, control downloads, hide ads and more …

awspec

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 awspec

JAWS Festa Kyushu 2015 懇親会LT

Avatar for Ken’ichiro Oyama

Ken’ichiro Oyama

November 03, 2015
Tweet

More Decks by Ken’ichiro Oyama

Other Decks in Technology

Transcript

  1. awspec •  http://github.com/k1LoW/awspec •  awsspecでもaws-‐‑‒specでもないです! •  AWSリソースの構成テストツール •  構築したAWSリソースの環境(VPCやEC2やRDS  

    Parameter  Groupや)が意図したとおりにできているか をテストできるツール •  現在GitHubスター  95(あと5でawesome-‐‑‒awsに掲載 できる!!) 9
  2. sample  (EC2) describe ec2('my-ec2-tag-name') do it { should be_running }

    its(:instance_id) { should eq 'i-ec12345a' } its(:instance_type) { should eq ’t2.small' } its(:public_ip_address) { should eq '123.0.456.789' } it { should have_security_group('my-sg-name') } it { should belong_to_vpc('my-vpc') } it { should belong_to_subnet('subnet-1234a567') } it { should have_eip('123.0.456.789') } it { should be_disabled_api_termination } end 10
  3. sample  (Route53) describe route53_hosted_zone('example.com.') do it { should exist }

    its(:resource_record_set_count) { should eq 5 } it { should have_record_set('example.com.').a('123.456.7.890') } it { should have_record_set('example.com.').mx('10 mail.example.com') } it { should have_record_set('mail.example.com.').a('123.456.7.890').ttl(3600) } ns = 'ns-123.awsdns-45.net. ns-6789.awsdns-01.org. ns-2345.awsdns-67.co.uk. ns-890.awsdns-12.com.' it { should have_record_set('example.com.').ns(ns) } it { should have_record_set('s3.example.com.').alias('s3-website-us- east-1.amazonaws.com.', 'Z2ABCDEFGHIJKL') } end 11
  4. Resource  Types  (v.0.18.2) •  ec2 •  rds •  rds_̲db_̲parameter_̲group • 

    security_̲group •  vpc •  s3 •  route53_̲hosted_̲zone •  auto_̲scaling_̲group •  subnet •  route_̲table •  ebs •  elb •  lambda •  iam_̲user •  iam_̲group •  iam_̲role •  iam_̲policy •  elasticache •  elasticache_̲cache_̲parameter _̲group •  cloudwatch_̲alarm •  ses_̲identity 12
  5. $  awspec  generate •  現状のAWSリソース構成からテストケース(spec)を⽣生 成するコマンド •  cloudwatch_̲alarm  /  ec2

     /  elb  /  iam_̲policy  /  rds  /   route53_̲hosted_̲zone  /  security_̲group  /  vpc •  ⾝身もフタもない機能だけどかなり便便利利 •  現状のリソース構成をテストケースとしてリポジトリに コミットできる •  AWSリソース構成変更更時のTDDのスタートに最適 14 $ awspec generate ec2 [vpc_id]
  6. 16