etude_for_aws 0.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +103 -0
- data/.rspec +2 -0
- data/.ruby-version +1 -0
- data/.yardopts +10 -0
- data/Dockerfile +17 -0
- data/Dockerfile-dev +20 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +89 -0
- data/Guardfile +22 -0
- data/Jenkinsfile +11 -0
- data/README.md +26 -0
- data/Rakefile +12 -0
- data/Vagrantfile +15 -0
- data/bin/aws_console.rb +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/circle.yml +22 -0
- data/config.yml +124 -0
- data/docker-compose.yml +9 -0
- data/docs/README.md +54 -0
- data/docs/_config.yml +6 -0
- data/docs/dev/cfm/cfm.md +9 -0
- data/docs/dev/cfm/images/vpc_core_model.png +0 -0
- data/docs/dev/cfm/images/vpc_type1.png +0 -0
- data/docs/dev/cfm/images/vpc_type2.png +0 -0
- data/docs/dev/cfm/images/vpc_type3.png +0 -0
- data/docs/dev/cfm/images/vpc_type4.png +0 -0
- data/docs/dev/cfm/images/vpc_type5.png +0 -0
- data/docs/dev/cfm/images/vpc_type6.png +0 -0
- data/docs/dev/cfm/images/vpc_type7.png +0 -0
- data/docs/dev/cfm/vpc/core_model.puml +35 -0
- data/docs/dev/cfm/vpc/vpc.md +39 -0
- data/docs/dev/cfm/vpc/vpc_type1.puml +17 -0
- data/docs/dev/cfm/vpc/vpc_type2.puml +23 -0
- data/docs/dev/cfm/vpc/vpc_type3.puml +24 -0
- data/docs/dev/cfm/vpc/vpc_type4.puml +23 -0
- data/docs/dev/cfm/vpc/vpc_type5.puml +25 -0
- data/docs/dev/cfm/vpc/vpc_type6.puml +26 -0
- data/docs/dev/cfm/vpc/vpc_type7.puml +39 -0
- data/docs/dev/ec2/core_model.puml +43 -0
- data/docs/dev/ec2/ec2.md +36 -0
- data/docs/dev/ec2/ec2_type1.puml +27 -0
- data/docs/dev/ec2/ec2_type2.puml +43 -0
- data/docs/dev/ec2/ec2_type3.puml +44 -0
- data/docs/dev/ec2/ec2_type4.puml +43 -0
- data/docs/dev/ec2/ec2_type5.puml +45 -0
- data/docs/dev/ec2/ec2_type6.puml +46 -0
- data/docs/dev/ec2/ec2_type7.puml +79 -0
- data/docs/dev/ec2/images/.keep +0 -0
- data/docs/dev/ec2/images/ec2_core_model.png +0 -0
- data/docs/dev/ec2/images/ec2_type1.png +0 -0
- data/docs/dev/ec2/images/ec2_type2.png +0 -0
- data/docs/dev/ec2/images/ec2_type3.png +0 -0
- data/docs/dev/ec2/images/ec2_type4.png +0 -0
- data/docs/dev/ec2/images/ec2_type5.png +0 -0
- data/docs/dev/ec2/images/ec2_type6.png +0 -0
- data/docs/dev/ec2/images/ec2_type7.png +0 -0
- data/docs/dev/vpc/core_model.puml +49 -0
- data/docs/dev/vpc/images/core_model.png +0 -0
- data/docs/dev/vpc/images/simple.png +0 -0
- data/docs/dev/vpc/images/standard.png +0 -0
- data/docs/dev/vpc/simple.puml +17 -0
- data/docs/dev/vpc/standard.puml +24 -0
- data/docs/dev/vpc/vpc.md +19 -0
- data/docs/ops/build_aws_sdk_repl.md +19 -0
- data/docs/ops/images/.keep +0 -0
- data/docs/ops/run_rake_task.md +89 -0
- data/docs/ops/ship_circleci.md +9 -0
- data/docs/ops/ship_jenkins.md +20 -0
- data/docs/ops/ship_ruby_gem.md +26 -0
- data/docs/template_catalog.md +6 -0
- data/docs/template_pattern.md +13 -0
- data/docs/template_recipe.md +6 -0
- data/docs/template_spec.md +8 -0
- data/etude_for_aws.gemspec +41 -0
- data/etude_for_aws.iml +42 -0
- data/exe/etude_for_aws +3 -0
- data/lib/etude_for_aws.rb +38 -0
- data/lib/etude_for_aws/cfm/configuration.rb +39 -0
- data/lib/etude_for_aws/cfm/vpc/cfm_templates/vpc-1az-1subnet-pub.template +529 -0
- data/lib/etude_for_aws/cfm/vpc/cfm_templates/vpc-1az-2subnet-pub-pri.template +790 -0
- data/lib/etude_for_aws/cfm/vpc/cfm_templates/vpc-1az-2subnet-pub.template +634 -0
- data/lib/etude_for_aws/cfm/vpc/cfm_templates/vpc-2az-2subnet-pri.template +645 -0
- data/lib/etude_for_aws/cfm/vpc/cfm_templates/vpc-2az-2subnet-pub-pri.template +611 -0
- data/lib/etude_for_aws/cfm/vpc/cfm_templates/vpc-2az-2subnet-pub.template +646 -0
- data/lib/etude_for_aws/cfm/vpc/cfm_templates/vpc-2az-4subnet-pub-pri.template +1010 -0
- data/lib/etude_for_aws/cfm/vpc/null_vpc.rb +13 -0
- data/lib/etude_for_aws/cfm/vpc/one_az_one_public_subnet_vpc.rb +45 -0
- data/lib/etude_for_aws/cfm/vpc/one_az_two_public_and_private_subnet_vpc.rb +47 -0
- data/lib/etude_for_aws/cfm/vpc/one_az_two_public_subnet_vpc.rb +47 -0
- data/lib/etude_for_aws/cfm/vpc/two_az_one_public_subnet_and_private_subnet_vpc.rb +52 -0
- data/lib/etude_for_aws/cfm/vpc/two_az_two_private_subnet_vpc.rb +38 -0
- data/lib/etude_for_aws/cfm/vpc/two_az_two_public_subnet_and_private_subnet_vpc.rb +38 -0
- data/lib/etude_for_aws/cfm/vpc/two_az_two_public_subnet_vpc.rb +38 -0
- data/lib/etude_for_aws/cfm/vpc/vpc.rb +104 -0
- data/lib/etude_for_aws/ec2/configuration.rb +66 -0
- data/lib/etude_for_aws/ec2/ec2.rb +218 -0
- data/lib/etude_for_aws/ec2/ec2_api_gateway.rb +127 -0
- data/lib/etude_for_aws/ec2/ec2_instance.rb +107 -0
- data/lib/etude_for_aws/ec2/key_pair.rb +46 -0
- data/lib/etude_for_aws/ec2/security_group.rb +75 -0
- data/lib/etude_for_aws/ec2/vpc_interface.rb +11 -0
- data/lib/etude_for_aws/helpers/certification_helper.rb +16 -0
- data/lib/etude_for_aws/helpers/configuration_helper.rb +103 -0
- data/lib/etude_for_aws/tasks/cfm.rake +73 -0
- data/lib/etude_for_aws/tasks/ec2.rake +210 -0
- data/lib/etude_for_aws/tasks/vpc.rake +47 -0
- data/lib/etude_for_aws/version.rb +3 -0
- data/lib/etude_for_aws/vpc/configuration.rb +77 -0
- data/lib/etude_for_aws/vpc/customer_gateway.rb +28 -0
- data/lib/etude_for_aws/vpc/internet_gateway.rb +15 -0
- data/lib/etude_for_aws/vpc/route_table.rb +42 -0
- data/lib/etude_for_aws/vpc/simple_vpc.rb +57 -0
- data/lib/etude_for_aws/vpc/standard_vpc.rb +94 -0
- data/lib/etude_for_aws/vpc/subnet.rb +22 -0
- data/lib/etude_for_aws/vpc/vpc.rb +147 -0
- data/lib/etude_for_aws/vpc/vpc_api_gateway.rb +277 -0
- data/lib/etude_for_aws/vpc/vpc_director.rb +43 -0
- data/lib/etude_for_aws/vpc/vpn.rb +244 -0
- data/lib/etude_for_aws/vpc/vpn_connection.rb +28 -0
- data/lib/etude_for_aws/vpc/vpn_director.rb +47 -0
- data/lib/etude_for_aws/vpc/vpn_gateway.rb +36 -0
- metadata +280 -0
@@ -0,0 +1,46 @@
|
|
1
|
+
module EC2
|
2
|
+
class KeyPair
|
3
|
+
attr_reader :key_pair_name,:pem_file
|
4
|
+
|
5
|
+
def initialize(ec2)
|
6
|
+
@config = ec2.config
|
7
|
+
@gateway = ec2.gateway
|
8
|
+
@key_pair_name = @config.key_pair_name
|
9
|
+
path = Dir.pwd + @config.key_pair_path
|
10
|
+
@pem_file = path + "#{@key_pair_name}.pem"
|
11
|
+
end
|
12
|
+
|
13
|
+
def create
|
14
|
+
key_pairs_result = @gateway.select_key_pairs
|
15
|
+
key_pairs = []
|
16
|
+
if key_pairs_result.key_pairs.count > 0
|
17
|
+
key_pairs_result.key_pairs.each do |key_pair|
|
18
|
+
key_pairs << key_pair.key_name
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
unless key_pairs.include?(@key_pair_name)
|
23
|
+
begin
|
24
|
+
key_pair = @gateway.create_key_pairs(@key_pair_name)
|
25
|
+
puts "Created key pair '#{key_pair.key_name}'."
|
26
|
+
puts "\nSHA-1 digest of the DER encoded private key:"
|
27
|
+
puts "#{key_pair.key_fingerprint}"
|
28
|
+
puts "\nUnencrypted PEM encoded RSA private key:"
|
29
|
+
puts "#{key_pair.key_material}"
|
30
|
+
rescue Aws::EC2::Errors::InvalidKeyPairDuplicate
|
31
|
+
puts "A key pair named '#{@key_pair_name}' already exists."
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
File.open(@pem_file, "w") do |file|
|
36
|
+
file.puts(key_pair.key_material)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def delete
|
42
|
+
@gateway.delete_key_pairs(@key_pair_name)
|
43
|
+
FileUtils.rm(@pem_file)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module EC2
|
2
|
+
class SecurityGroup
|
3
|
+
attr_accessor :security_group_id
|
4
|
+
|
5
|
+
def initialize(ec2)
|
6
|
+
@config = ec2.config
|
7
|
+
@gateway = ec2.gateway
|
8
|
+
group_name = @config.security_group_name
|
9
|
+
description = @config.security_group_description
|
10
|
+
vpc_id = @config.vpc_id
|
11
|
+
@security_group = {
|
12
|
+
group_name: group_name,
|
13
|
+
description: description,
|
14
|
+
vpc_id: vpc_id,
|
15
|
+
}
|
16
|
+
@authorize_egress = {
|
17
|
+
ip_permissions: [
|
18
|
+
{
|
19
|
+
ip_protocol: "tcp",
|
20
|
+
from_port: 22,
|
21
|
+
to_port: 22,
|
22
|
+
ip_ranges: [
|
23
|
+
{
|
24
|
+
cidr_ip: "0.0.0.0/0",
|
25
|
+
},
|
26
|
+
],
|
27
|
+
},
|
28
|
+
],
|
29
|
+
}
|
30
|
+
@authorize_ingress = {
|
31
|
+
ip_permissions: [
|
32
|
+
{
|
33
|
+
ip_protocol: "tcp",
|
34
|
+
from_port: 22,
|
35
|
+
to_port: 22,
|
36
|
+
ip_ranges: [
|
37
|
+
{
|
38
|
+
cidr_ip: "0.0.0.0/0",
|
39
|
+
},
|
40
|
+
],
|
41
|
+
},
|
42
|
+
{
|
43
|
+
ip_protocol: "icmp",
|
44
|
+
from_port: -1,
|
45
|
+
to_port: -1,
|
46
|
+
ip_ranges: [
|
47
|
+
{
|
48
|
+
cidr_ip: "0.0.0.0/0",
|
49
|
+
},
|
50
|
+
],
|
51
|
+
},
|
52
|
+
],
|
53
|
+
}
|
54
|
+
@security_group_id = get_group_id
|
55
|
+
end
|
56
|
+
|
57
|
+
def create
|
58
|
+
if @security_group_id.nil?
|
59
|
+
id = @gateway.create_security_group(@security_group)
|
60
|
+
@gateway.authorize_egress(id,@authorize_egress)
|
61
|
+
@gateway.authorize_ingress(id,@authorize_ingress)
|
62
|
+
@security_group_id = id
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def delete
|
67
|
+
@gateway.delete_security_group(@security_group_id) unless @security_group_id.nil?
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
def get_group_id
|
72
|
+
@gateway.get_group_id(@security_group)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'aws-sdk'
|
2
|
+
require 'dotenv'
|
3
|
+
|
4
|
+
module CertificationHelper
|
5
|
+
def aws_certificate
|
6
|
+
Dotenv.load
|
7
|
+
yaml_region = ConfigurationHelper.get_yaml_region
|
8
|
+
region = ENV['AWS_REGION']
|
9
|
+
region = yaml_region if region.nil?
|
10
|
+
Aws.config.update(
|
11
|
+
access_key_id: ENV['AWS_ACCESS_KEY_ID'],
|
12
|
+
secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
|
13
|
+
region: region
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
module ConfigurationHelper
|
4
|
+
YAML_FILE = 'config.yml'
|
5
|
+
|
6
|
+
def self.load_yaml_file
|
7
|
+
YAML.load_file(YAML_FILE)
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.get_yaml_region
|
11
|
+
ConfigurationHelper.load_yaml_file['DEV']['REGION']
|
12
|
+
end
|
13
|
+
|
14
|
+
def get_yaml_stack_name
|
15
|
+
ConfigurationHelper.load_yaml_file['DEV']['CFM']['VPC']['STACK_NAME']
|
16
|
+
end
|
17
|
+
|
18
|
+
def get_yaml_stack_tag_value
|
19
|
+
ConfigurationHelper.load_yaml_file['DEV']['CFM']['VPC']['TAG_VALUE']
|
20
|
+
end
|
21
|
+
|
22
|
+
def get_yaml_template_path
|
23
|
+
ConfigurationHelper.load_yaml_file['DEV']['CFM']['VPC']['TEMPLATE_PATH']
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_yaml_zas
|
27
|
+
azs = []
|
28
|
+
azs << ConfigurationHelper.load_yaml_file['DEV']['CFM']['VPC']['TEMPLATE_PARAMS_AZ1']
|
29
|
+
azs << ConfigurationHelper.load_yaml_file['DEV']['CFM']['VPC']['TEMPLATE_PARAMS_AZ2']
|
30
|
+
azs << ConfigurationHelper.load_yaml_file['DEV']['CFM']['VPC']['TEMPLATE_PARAMS_AZ3']
|
31
|
+
azs
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_yaml_template_file(type)
|
35
|
+
case type
|
36
|
+
when :ONE_AZ_ONE_PUB
|
37
|
+
return ConfigurationHelper.load_yaml_file['DEV']['CFM']['VPC']['TEMPLATE_FILE_TYPE_01']
|
38
|
+
when :ONE_AZ_TWO_PUB
|
39
|
+
return ConfigurationHelper.load_yaml_file['DEV']['CFM']['VPC']['TEMPLATE_FILE_TYPE_02']
|
40
|
+
when :ONE_AZ_ONE_PUB_PRI
|
41
|
+
return ConfigurationHelper.load_yaml_file['DEV']['CFM']['VPC']['TEMPLATE_FILE_TYPE_03']
|
42
|
+
when :TWO_AZ_TWO_PRI
|
43
|
+
return ConfigurationHelper.load_yaml_file['DEV']['CFM']['VPC']['TEMPLATE_FILE_TYPE_04']
|
44
|
+
when :TWO_AZ_TWO_PUB
|
45
|
+
return ConfigurationHelper.load_yaml_file['DEV']['CFM']['VPC']['TEMPLATE_FILE_TYPE_05']
|
46
|
+
when :TWO_AZ_ONE_PUB_RPI
|
47
|
+
return ConfigurationHelper.load_yaml_file['DEV']['CFM']['VPC']['TEMPLATE_FILE_TYPE_06']
|
48
|
+
when :TWO_AZ_TWO_PUB_PRI
|
49
|
+
return ConfigurationHelper.load_yaml_file['DEV']['CFM']['VPC']['TEMPLATE_FILE_TYPE_07']
|
50
|
+
else
|
51
|
+
return raise
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def get_yaml_vpc_tags
|
56
|
+
ConfigurationHelper.load_yaml_file['DEV']['VPC']['VPC_TAGS']
|
57
|
+
end
|
58
|
+
|
59
|
+
def get_yaml_vpc_subnets
|
60
|
+
ConfigurationHelper.load_yaml_file['DEV']['VPC']['SUBNETS']
|
61
|
+
end
|
62
|
+
|
63
|
+
def get_yaml_vpc_route_tables
|
64
|
+
ConfigurationHelper.load_yaml_file['DEV']['VPC']['ROUTE_TABLES']
|
65
|
+
end
|
66
|
+
|
67
|
+
def get_yaml_internet_gateway
|
68
|
+
ConfigurationHelper.load_yaml_file['DEV']['VPC']['INTERNET_GATEWAY']
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
def get_yaml_vpc_cidr_block
|
73
|
+
ConfigurationHelper.load_yaml_file['DEV']['VPC']['VPC_CIDR_BLOCK']
|
74
|
+
end
|
75
|
+
|
76
|
+
def get_yaml_subnet_cidr_block
|
77
|
+
ConfigurationHelper.load_yaml_file['DEV']['VPC']['SUBNET_CIDR_BLOCK']
|
78
|
+
end
|
79
|
+
|
80
|
+
def get_yaml_subnet_cidr_block_public
|
81
|
+
ConfigurationHelper.load_yaml_file['DEV']['VPC']['SUBNET_CIDR_BLOCK_PUBLIC']
|
82
|
+
end
|
83
|
+
|
84
|
+
def get_yaml_subnet_cidr_block_private
|
85
|
+
ConfigurationHelper.load_yaml_file['DEV']['VPC']['SUBNET_CIDR_BLOCK_PRIVATE']
|
86
|
+
end
|
87
|
+
|
88
|
+
def get_yaml_destination_cidr_block
|
89
|
+
ConfigurationHelper.load_yaml_file['DEV']['VPC']['DESTINATION_CIDR_BLOCK']
|
90
|
+
end
|
91
|
+
|
92
|
+
def get_yaml_ec2_config
|
93
|
+
ConfigurationHelper.load_yaml_file['DEV']['EC2']
|
94
|
+
end
|
95
|
+
|
96
|
+
def get_yaml_ec2_instances
|
97
|
+
ConfigurationHelper.load_yaml_file['DEV']['EC2']['INSTANCES']
|
98
|
+
end
|
99
|
+
|
100
|
+
def get_yaml_vpn_info
|
101
|
+
ConfigurationHelper.load_yaml_file['DEV']['VPC']['VPN']
|
102
|
+
end
|
103
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'etude_for_aws'
|
2
|
+
|
3
|
+
namespace :CFM do
|
4
|
+
desc '1つのアベイラビリティゾーンに1つのパブリックサブネットVPCを作成する'
|
5
|
+
task :create_type01_vpc do
|
6
|
+
CFM::OneAzOnePublicSubnetVpc.new.create
|
7
|
+
end
|
8
|
+
|
9
|
+
desc '1つのアベイラビリティゾーンに1つのパブリックサブネットVPCを削除する'
|
10
|
+
task :destroy_type01_vpc do
|
11
|
+
CFM::OneAzOnePublicSubnetVpc.new.destroy
|
12
|
+
end
|
13
|
+
|
14
|
+
desc '1つのアベイラビリティゾーンに2つのパブリックサブネットVPCを作成する'
|
15
|
+
task :create_type02_vpc do
|
16
|
+
CFM::OneAzTwoPublicSubnetVpc.new.create
|
17
|
+
end
|
18
|
+
|
19
|
+
desc '1つのアベイラビリティゾーンに2つのパブリックサブネットVPCを削除する'
|
20
|
+
task :destroy_type02_vpc do
|
21
|
+
CFM::OneAzTwoPublicSubnetVpc.new.destroy
|
22
|
+
end
|
23
|
+
|
24
|
+
desc '1つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットVPCを作成する'
|
25
|
+
task :create_type03_vpc do
|
26
|
+
CFM::OneAzTwoPublicAndPrivateSubnetVpc.new.create
|
27
|
+
end
|
28
|
+
|
29
|
+
desc '1つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットを削除する'
|
30
|
+
task :destroy_type03_vpc do
|
31
|
+
CFM::OneAzTwoPublicAndPrivateSubnetVpc.new.destroy
|
32
|
+
end
|
33
|
+
|
34
|
+
desc '2つのアベイラビリティゾーンに2つのプライベートサブネットVPCを作成する'
|
35
|
+
task :create_type04_vpc do
|
36
|
+
CFM::TwoAzTwoPrivateSubnetVpc.new.create
|
37
|
+
end
|
38
|
+
|
39
|
+
desc '2つのアベイラビリティゾーンに2つのプライベートサブネットを削除する'
|
40
|
+
task :destroy_type04_vpc do
|
41
|
+
CFM::TwoAzTwoPrivateSubnetVpc.new.destroy
|
42
|
+
end
|
43
|
+
|
44
|
+
desc '2つのアベイラビリティゾーンに2つのパブリックサブネットVPCを作成する'
|
45
|
+
task :create_type05_vpc do
|
46
|
+
CFM::TwoAzTwoPublicSubnetVpc.new.create
|
47
|
+
end
|
48
|
+
|
49
|
+
desc '2つのアベイラビリティゾーンに2つのパブリックサブネットVPCを削除する'
|
50
|
+
task :destroy_type05_vpc do
|
51
|
+
CFM::TwoAzTwoPublicSubnetVpc.new.destroy
|
52
|
+
end
|
53
|
+
|
54
|
+
desc '2つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットVPCを作成する'
|
55
|
+
task :create_type06_vpc do
|
56
|
+
CFM::TwoAzOnePublicSubnetAndPrivateSubnetVpc.new.create
|
57
|
+
end
|
58
|
+
|
59
|
+
desc '2つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットVPCを削除する'
|
60
|
+
task :destroy_type06_vpc do
|
61
|
+
CFM::TwoAzOnePublicSubnetAndPrivateSubnetVpc.new.destroy
|
62
|
+
end
|
63
|
+
|
64
|
+
desc '2つのアベイラビリティゾーンに2つのパブリックサブネットと2つのプライベートサブネットVPCを作成する'
|
65
|
+
task :create_type07_vpc do
|
66
|
+
CFM::TwoAzTwoPublicSubnetAndPrivateSubnetVpc.new.create
|
67
|
+
end
|
68
|
+
|
69
|
+
desc '2つのアベイラビリティゾーンに2つのパブリックサブネットと2つのプライベートサブネットVPCを削除する'
|
70
|
+
task :destroy_type07_vpc do
|
71
|
+
CFM::TwoAzTwoPublicSubnetAndPrivateSubnetVpc.new.destroy
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,210 @@
|
|
1
|
+
require 'etude_for_aws'
|
2
|
+
|
3
|
+
namespace :EC2 do
|
4
|
+
task :default => :create_type01_env
|
5
|
+
|
6
|
+
desc 'シンプルなVPC環境にEC2インスタンスを作成する'
|
7
|
+
task :create_simple_vpc_env do
|
8
|
+
vpc_director = VPC::VpcDirector.new(VPC::SimpleVpc.new)
|
9
|
+
vpc_director.create
|
10
|
+
vpc = vpc_director.builder
|
11
|
+
EC2::Ec2.new(vpc).create
|
12
|
+
end
|
13
|
+
|
14
|
+
desc 'シンプルなVPC環境のEC2インスタンスを削除する'
|
15
|
+
task :destroy_simple_vpc_env do
|
16
|
+
vpc_director = VPC::VpcDirector.new(VPC::SimpleVpc.new)
|
17
|
+
vpc = vpc_director.builder
|
18
|
+
EC2::Ec2.new(vpc).destroy
|
19
|
+
vpc_director.destroy
|
20
|
+
end
|
21
|
+
|
22
|
+
desc 'シンプルなVPC環境にEC2インスタンス起動する'
|
23
|
+
task :start_simple_vpc_env do
|
24
|
+
vpc_director = VPC::VpcDirector.new(VPC::SimpleVpc.new)
|
25
|
+
vpc = vpc_director.builder
|
26
|
+
EC2::Ec2.new(vpc).start
|
27
|
+
end
|
28
|
+
|
29
|
+
desc 'シンプルなVPC環境にEC2インスタンス再起動する'
|
30
|
+
task :reboot_simple_vpc_env do
|
31
|
+
vpc_director = VPC::VpcDirector.new(VPC::SimpleVpc.new)
|
32
|
+
vpc = vpc_director.builder
|
33
|
+
EC2::Ec2.new(vpc).reboot
|
34
|
+
end
|
35
|
+
|
36
|
+
desc 'シンプルなVPC環境にEC2インスタンス停止する'
|
37
|
+
task :stop_simple_vpc_env do
|
38
|
+
vpc_director = VPC::VpcDirector.new(VPC::SimpleVpc.new)
|
39
|
+
vpc = vpc_director.builder
|
40
|
+
EC2::Ec2.new(vpc).stop
|
41
|
+
end
|
42
|
+
|
43
|
+
desc '標準的なVPC環境にEC2インスタンスを作成する'
|
44
|
+
task :create_standard_vpc_env do
|
45
|
+
vpc_director = VPC::VpcDirector.new(VPC::StandardVpc.new)
|
46
|
+
vpc_director.create
|
47
|
+
vpc = vpc_director.builder
|
48
|
+
EC2::Ec2.new(vpc).create
|
49
|
+
end
|
50
|
+
|
51
|
+
desc '標準的なVPC環境のEC2インスタンスを削除する'
|
52
|
+
task :destroy_standard_vpc_env do
|
53
|
+
vpc_director = VPC::VpcDirector.new(VPC::StandardVpc.new)
|
54
|
+
vpc = vpc_director.builder
|
55
|
+
EC2::Ec2.new(vpc).destroy
|
56
|
+
vpc_director.destroy
|
57
|
+
end
|
58
|
+
|
59
|
+
desc '標準的なVPC環境にEC2インスタンスを起動する'
|
60
|
+
task :start_standard_vpc_env do
|
61
|
+
vpc_director = VPC::VpcDirector.new(VPC::StandardVpc.new)
|
62
|
+
vpc = vpc_director.builder
|
63
|
+
EC2::Ec2.new(vpc).start
|
64
|
+
end
|
65
|
+
|
66
|
+
desc '標準的なVPC環境にEC2インスタンスを再起動する'
|
67
|
+
task :reboot_standard_vpc_env do
|
68
|
+
vpc_director = VPC::VpcDirector.new(VPC::StandardVpc.new)
|
69
|
+
vpc = vpc_director.builder
|
70
|
+
EC2::Ec2.new(vpc).reboot
|
71
|
+
end
|
72
|
+
|
73
|
+
desc '標準的なVPC環境にEC2インスタンスを停止する'
|
74
|
+
task :stop_standard_vpc_env do
|
75
|
+
vpc_director = VPC::VpcDirector.new(VPC::StandardVpc.new)
|
76
|
+
vpc = vpc_director.builder
|
77
|
+
EC2::Ec2.new(vpc).stop
|
78
|
+
end
|
79
|
+
|
80
|
+
desc '1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境を作成する'
|
81
|
+
task :setup_type01_env => [:create_type01,:copy_key_pair] do
|
82
|
+
puts '1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境を作成しました。'
|
83
|
+
end
|
84
|
+
|
85
|
+
desc '1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境にEC2インスタンスを作成する'
|
86
|
+
task :create_type01 do
|
87
|
+
vpc = VPC::OneAzOnePublicSubnetVpc.new
|
88
|
+
vpc.create
|
89
|
+
EC2::Ec2.new(vpc).create
|
90
|
+
end
|
91
|
+
|
92
|
+
desc '1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境のEC2インスタンスを削除する'
|
93
|
+
task :destroy_type01_env do
|
94
|
+
vpc = VPC::OneAzOnePublicSubnetVpc.new
|
95
|
+
EC2::Ec2.new(vpc).destroy
|
96
|
+
vpc.destroy
|
97
|
+
end
|
98
|
+
|
99
|
+
desc '1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境にEC2インスタンスを停止する'
|
100
|
+
task :stop_type01 do
|
101
|
+
vpc = VPC::OneAzOnePublicSubnetVpc.new
|
102
|
+
EC2::Ec2.new(vpc).stop
|
103
|
+
end
|
104
|
+
|
105
|
+
desc '1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境にEC2インスタンスを起動する'
|
106
|
+
task :start_type01 do
|
107
|
+
vpc = VPC::OneAzOnePublicSubnetVpc.new
|
108
|
+
EC2::Ec2.new(vpc).start
|
109
|
+
end
|
110
|
+
|
111
|
+
desc '1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境にEC2インスタンスを再起動する'
|
112
|
+
task :reboot_type01 do
|
113
|
+
vpc = VPC::OneAzOnePublicSubnetVpc.new
|
114
|
+
EC2::Ec2.new(vpc).reboot
|
115
|
+
end
|
116
|
+
|
117
|
+
desc '1つのアベイラビリティゾーンに2つのパブリックサブネットのVPC環境にEC2インスタンスを作成する'
|
118
|
+
task :create_type02 do
|
119
|
+
vpc = VPC::OneAzTwoPublicSubnetVpc.new
|
120
|
+
vpc.create
|
121
|
+
EC2::Ec2.new(vpc).create
|
122
|
+
end
|
123
|
+
|
124
|
+
desc '1つのアベイラビリティゾーンに2つのパブリックサブネットのVPC環境のEC2インスタンスを削除する'
|
125
|
+
task :destroy_type02_env do
|
126
|
+
vpc = VPC::OneAzTwoPublicSubnetVpc.new
|
127
|
+
EC2::Ec2.new(vpc).destroy
|
128
|
+
vpc.destroy
|
129
|
+
end
|
130
|
+
|
131
|
+
desc '1つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットのVPC環境にEC2インスタンスを作成する'
|
132
|
+
task :create_type03 do
|
133
|
+
vpc = VPC::OneAzTwoPublicAndPrivateSubnetVpc.new
|
134
|
+
vpc.create
|
135
|
+
EC2::Ec2.new(vpc).create
|
136
|
+
end
|
137
|
+
|
138
|
+
desc '1つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットのVPC環境のEC2インスタンスを削除する'
|
139
|
+
task :destroy_type03_env do
|
140
|
+
vpc = VPC::OneAzTwoPublicAndPrivateSubnetVpc.new
|
141
|
+
EC2::Ec2.new(vpc).destroy
|
142
|
+
vpc.destroy
|
143
|
+
end
|
144
|
+
|
145
|
+
desc '2つのアベイラビリティゾーンに2つのプライベートサブネットのVPC環境にEC2インスタンスを作成する'
|
146
|
+
task :create_type04 do
|
147
|
+
vpc = VPC::TwoAzTwoPrivateSubnetVpc.new
|
148
|
+
vpc.create
|
149
|
+
EC2::Ec2.new(vpc).create
|
150
|
+
end
|
151
|
+
|
152
|
+
desc '2つのアベイラビリティゾーンに2つのプライベートサブネットのVPC環境のEC2インスタンスを削除する'
|
153
|
+
task :destroy_type04_env do
|
154
|
+
vpc = VPC::TwoAzTwoPrivateSubnetVpc.new
|
155
|
+
EC2::Ec2.new(vpc).destroy
|
156
|
+
vpc.destroy
|
157
|
+
end
|
158
|
+
|
159
|
+
desc '2つのアベイラビリティゾーンに2つのパブリックサブネットのVPC環境にEC2インスタンスを作成する'
|
160
|
+
task :create_type05 do
|
161
|
+
vpc = VPC::TwoAzTwoPublicSubnetVpc.new
|
162
|
+
vpc.create
|
163
|
+
EC2::Ec2.new(vpc).create
|
164
|
+
end
|
165
|
+
|
166
|
+
desc '2つのアベイラビリティゾーンに2つのパブリックサブネットのVPC環境のEC2インスタンスを削除する'
|
167
|
+
task :destroy_type05_env do
|
168
|
+
vpc = VPC::TwoAzTwoPublicSubnetVpc.new
|
169
|
+
EC2::Ec2.new(vpc).destroy
|
170
|
+
vpc.destroy
|
171
|
+
end
|
172
|
+
|
173
|
+
desc '2つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットのVPC環境にEC2インスタンスを作成する'
|
174
|
+
task :create_type06 do
|
175
|
+
vpc = VPC::TwoAzOnePublicSubnetAndPrivateSubnetVpc.new
|
176
|
+
vpc.create
|
177
|
+
EC2::Ec2.new(vpc).create
|
178
|
+
end
|
179
|
+
|
180
|
+
desc '2つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットのVPC環境のEC2インスタンスを削除する'
|
181
|
+
task :destroy_type06_env do
|
182
|
+
vpc = VPC::TwoAzOnePublicSubnetAndPrivateSubnetVpc.new
|
183
|
+
EC2::Ec2.new(vpc).destroy
|
184
|
+
vpc.destroy
|
185
|
+
end
|
186
|
+
|
187
|
+
desc '2つのアベイラビリティゾーンに2つのパブリックサブネットと2つのプライベートサブネットのVPC環境にEC2インスタンスを作成する'
|
188
|
+
task :create_type07 do
|
189
|
+
vpc = VPC::TwoAzTwoPublicSubnetAndPrivateSubnetVpc.new
|
190
|
+
vpc.create
|
191
|
+
EC2::Ec2.new(vpc).create
|
192
|
+
end
|
193
|
+
|
194
|
+
desc '2つのアベイラビリティゾーンに2つのパブリックサブネットと2つのプライベートサブネットVPCのVPC環境のEC2インスタンスを削除する'
|
195
|
+
task :destroy_type07_env do
|
196
|
+
vpc = VPC::TwoAzTwoPublicSubnetAndPrivateSubnetVpc.new
|
197
|
+
EC2::Ec2.new(vpc).destroy
|
198
|
+
vpc.destroy
|
199
|
+
end
|
200
|
+
|
201
|
+
desc '作成したキーペアをコピーする'
|
202
|
+
task :copy_key_pair do
|
203
|
+
yaml = YAML.load_file('config.yml')
|
204
|
+
key_pair_name = yaml['DEV']['EC2']['KEY_PAIR_NAME']
|
205
|
+
path = Dir.pwd + yaml['DEV']['EC2']['KEY_PAIR_PATH']
|
206
|
+
pem_file = path + "#{key_pair_name}.pem"
|
207
|
+
FileUtils.cp(pem_file,Dir.pwd)
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|