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
data/docs/dev/vpc/vpc.md
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
VPC
|
2
|
+
---
|
3
|
+
|
4
|
+
## 基本仕様
|
5
|
+
+ 1つのVPCに対して複数のサブネットを持つ
|
6
|
+
+ 1つのVPCに対して複数のルートテーブルを持つ
|
7
|
+
+ 1つのVPCに対して1つのインターネットゲートウェイを持つ
|
8
|
+
+ インターネットゲートウェイを持つルートテーブルに関連付けられてたサブネットはパブリックとなる
|
9
|
+
+ インターネットゲートウェイを持たないルートテーブルに関連付けられてたサブネットはプライベートとなる
|
10
|
+
|
11
|
+
## ユースケース
|
12
|
+
### シンプルなVPC
|
13
|
+

|
14
|
+
|
15
|
+
### 標準的なVPC
|
16
|
+

|
17
|
+
|
18
|
+
## コアモデル
|
19
|
+

|
@@ -0,0 +1,19 @@
|
|
1
|
+
Using the AWS SDK for Ruby REPL
|
2
|
+
---
|
3
|
+
|
4
|
+
## 例
|
5
|
+
```bash
|
6
|
+
bin/console
|
7
|
+
Aws>s3 = Aws::S3::Client.new(region: 'ap-northeast-1a')
|
8
|
+
Aws>s3.list_buckets
|
9
|
+
```
|
10
|
+
|
11
|
+
## 注意
|
12
|
+
事前に`.env`にAWSクレデンシャルを設定しておく。
|
13
|
+
|
14
|
+
## 参照
|
15
|
+
+ [dotenv](https://github.com/bkeepers/dotenv)
|
16
|
+
+ [Rubyでシェルコマンドを実行する方法](https://www.xmisao.com/2014/03/01/how-to-execute-a-shell-script-in-ruby.html)
|
17
|
+
+ [AWS SDK for RubyでのAPI操作をインタラクティブに実行する](http://dev.classmethod.jp/cloud/aws/using-the-aws-sdk-for-ruby-from-repl/)
|
18
|
+
+ [Getting Started with the AWS SDK for Ruby](http://docs.aws.amazon.com/ja_jp/sdk-for-ruby/v2/developer-guide/getting-started.html)
|
19
|
+
|
File without changes
|
@@ -0,0 +1,89 @@
|
|
1
|
+
Rake Task
|
2
|
+
---
|
3
|
+
|
4
|
+
## 例
|
5
|
+
EC2インスタンスの生成と操作
|
6
|
+
```bash
|
7
|
+
rake EC2:copy_key_pair # 作成したキーペアをコピーする
|
8
|
+
rake EC2:create_simple_vpc_env # シンプルなVPC環境にEC2インスタンスを作成する
|
9
|
+
rake EC2:create_standard_vpc_env # 標準的なVPC環境にEC2インスタンスを作成する
|
10
|
+
rake EC2:create_type01 # 1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境にEC2インスタンスを作成する
|
11
|
+
rake EC2:create_type02 # 1つのアベイラビリティゾーンに2つのパブリックサブネットのVPC環境にEC2インスタンスを作成する
|
12
|
+
rake EC2:create_type03 # 1つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットのVPC環境にEC2インスタンスを作成する
|
13
|
+
rake EC2:create_type04 # 2つのアベイラビリティゾーンに2つのプライベートサブネットのVPC環境にEC2インスタンスを作成する
|
14
|
+
rake EC2:create_type05 # 2つのアベイラビリティゾーンに2つのパブリックサブネットのVPC環境にEC2インスタンスを作成する
|
15
|
+
rake EC2:create_type06 # 2つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットのVPC環境にEC2インスタンスを作成する
|
16
|
+
rake EC2:create_type07 # 2つのアベイラビリティゾーンに2つのパブリックサブネットと2つのプライベートサブネットのVPC環境にEC2インスタンスを作成する
|
17
|
+
rake EC2:destroy_simple_vpc_env # シンプルなVPC環境のEC2インスタンスを削除する
|
18
|
+
rake EC2:destroy_standard_vpc_env # 標準的なVPC環境のEC2インスタンスを削除する
|
19
|
+
rake EC2:destroy_type01_env # 1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境のEC2インスタンスを削除する
|
20
|
+
rake EC2:destroy_type02_env # 1つのアベイラビリティゾーンに2つのパブリックサブネットのVPC環境のEC2インスタンスを削除する
|
21
|
+
rake EC2:destroy_type03_env # 1つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットのVPC環境のEC2インスタンスを削除する
|
22
|
+
rake EC2:destroy_type04_env # 2つのアベイラビリティゾーンに2つのプライベートサブネットのVPC環境のEC2インスタンスを削除する
|
23
|
+
rake EC2:destroy_type05_env # 2つのアベイラビリティゾーンに2つのパブリックサブネットのVPC環境のEC2インスタンスを削除する
|
24
|
+
rake EC2:destroy_type06_env # 2つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットのVPC環境のEC2インスタンスを削除する
|
25
|
+
rake EC2:destroy_type07_env # 2つのアベイラビリティゾーンに2つのパブリックサブネットと2つのプライベートサブネットVPCのVPC環境のEC2インスタンスを削除する
|
26
|
+
rake EC2:reboot_simple_vpc_env # シンプルなVPC環境にEC2インスタンス再起動する
|
27
|
+
rake EC2:reboot_standard_vpc_env # 標準的なVPC環境にEC2インスタンスを再起動する
|
28
|
+
rake EC2:reboot_type01 # 1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境にEC2インスタンスを再起動する
|
29
|
+
rake EC2:setup_type01_env # 1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境を作成する
|
30
|
+
rake EC2:start_simple_vpc_env # シンプルなVPC環境にEC2インスタンス起動する
|
31
|
+
rake EC2:start_standard_vpc_env # 標準的なVPC環境にEC2インスタンスを起動する
|
32
|
+
rake EC2:start_type01 # 1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境にEC2インスタンスを起動する
|
33
|
+
rake EC2:stop_simple_vpc_env # シンプルなVPC環境にEC2インスタンス停止する
|
34
|
+
rake EC2:stop_standard_vpc_env # 標準的なVPC環境にEC2インスタンスを停止する
|
35
|
+
rake EC2:stop_type01 # 1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境にEC2インスタンスを停止する
|
36
|
+
```
|
37
|
+
|
38
|
+
VPCの作成
|
39
|
+
```bash
|
40
|
+
rake CFM:create_type01_vpc # 1つのアベイラビリティゾーンに1つのパブリックサブネットVPCを作成する
|
41
|
+
rake CFM:create_type02_vpc # 1つのアベイラビリティゾーンに2つのパブリックサブネットVPCを作成する
|
42
|
+
rake CFM:create_type03_vpc # 1つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットVPCを作成する
|
43
|
+
rake CFM:create_type04_vpc # 2つのアベイラビリティゾーンに2つのプライベートサブネットVPCを作成する
|
44
|
+
rake CFM:create_type05_vpc # 2つのアベイラビリティゾーンに2つのパブリックサブネットVPCを作成する
|
45
|
+
rake CFM:create_type06_vpc # 2つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットVPCを作成する
|
46
|
+
rake CFM:create_type07_vpc # 2つのアベイラビリティゾーンに2つのパブリックサブネットと2つのプライベートサブネットVPCを作成する
|
47
|
+
rake CFM:destroy_type01_vpc # 1つのアベイラビリティゾーンに1つのパブリックサブネットVPCを削除する
|
48
|
+
rake CFM:destroy_type02_vpc # 1つのアベイラビリティゾーンに2つのパブリックサブネットVPCを削除する
|
49
|
+
rake CFM:destroy_type05_vpc # 2つのアベイラビリティゾーンに2つのパブリックサブネットVPCを削除する
|
50
|
+
rake CFM:destroy_type06_vpc # 2つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットVPCを削除する
|
51
|
+
rake CFM:destroy_type07_vpc # 2つのアベイラビリティゾーンに2つのパブリックサブネットと2つのプライベートサブネットVPCを削除する
|
52
|
+
rake EC2:create_simple_vpc_env # シンプルなVPC環境にEC2インスタンスを作成する
|
53
|
+
rake EC2:create_standard_vpc_env # 標準的なVPC環境にEC2インスタンスを作成する
|
54
|
+
rake EC2:create_type01 # 1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境にEC2インスタンスを作成する
|
55
|
+
rake EC2:create_type02 # 1つのアベイラビリティゾーンに2つのパブリックサブネットのVPC環境にEC2インスタンスを作成する
|
56
|
+
rake EC2:create_type03 # 1つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットのVPC環境にEC2インスタンスを作成する
|
57
|
+
rake EC2:create_type04 # 2つのアベイラビリティゾーンに2つのプライベートサブネットのVPC環境にEC2インスタンスを作成する
|
58
|
+
rake EC2:create_type05 # 2つのアベイラビリティゾーンに2つのパブリックサブネットのVPC環境にEC2インスタンスを作成する
|
59
|
+
rake EC2:create_type06 # 2つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットのVPC環境にEC2インスタンスを作成する
|
60
|
+
rake EC2:create_type07 # 2つのアベイラビリティゾーンに2つのパブリックサブネットと2つのプライベートサブネットのVPC環境にEC2インスタンスを作成する
|
61
|
+
rake EC2:destroy_simple_vpc_env # シンプルなVPC環境のEC2インスタンスを削除する
|
62
|
+
rake EC2:destroy_standard_vpc_env # 標準的なVPC環境のEC2インスタンスを削除する
|
63
|
+
rake EC2:destroy_type01_env # 1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境のEC2インスタンスを削除する
|
64
|
+
rake EC2:destroy_type02_env # 1つのアベイラビリティゾーンに2つのパブリックサブネットのVPC環境のEC2インスタンスを削除する
|
65
|
+
rake EC2:destroy_type03_env # 1つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットのVPC環境のEC2インスタンスを削除する
|
66
|
+
rake EC2:destroy_type04_env # 2つのアベイラビリティゾーンに2つのプライベートサブネットのVPC環境のEC2インスタンスを削除する
|
67
|
+
rake EC2:destroy_type05_env # 2つのアベイラビリティゾーンに2つのパブリックサブネットのVPC環境のEC2インスタンスを削除する
|
68
|
+
rake EC2:destroy_type06_env # 2つのアベイラビリティゾーンに1つのパブリックサブネットと1つのプライベートサブネットのVPC環境のEC2インスタンスを削除する
|
69
|
+
rake EC2:destroy_type07_env # 2つのアベイラビリティゾーンに2つのパブリックサブネットと2つのプライベートサブネットVPCのVPC環境のEC2インスタンスを削除する
|
70
|
+
rake EC2:reboot_simple_vpc_env # シンプルなVPC環境にEC2インスタンス再起動する
|
71
|
+
rake EC2:reboot_standard_vpc_env # 標準的なVPC環境にEC2インスタンスを再起動する
|
72
|
+
rake EC2:reboot_type01 # 1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境にEC2インスタンスを再起動する
|
73
|
+
rake EC2:setup_type01_env # 1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境を作成する
|
74
|
+
rake EC2:start_simple_vpc_env # シンプルなVPC環境にEC2インスタンス起動する
|
75
|
+
rake EC2:start_standard_vpc_env # 標準的なVPC環境にEC2インスタンスを起動する
|
76
|
+
rake EC2:start_type01 # 1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境にEC2インスタンスを起動する
|
77
|
+
rake EC2:stop_simple_vpc_env # シンプルなVPC環境にEC2インスタンス停止する
|
78
|
+
rake EC2:stop_standard_vpc_env # 標準的なVPC環境にEC2インスタンスを停止する
|
79
|
+
rake EC2:stop_type01 # 1つのアベイラビリティゾーンに1つのパブリックサブネットのVPC環境にEC2インスタンスを停止する
|
80
|
+
rake VPC:create_simple_vpc # シンプルなVPCを作成する
|
81
|
+
rake VPC:create_standard_vpc # 標準的なVPCを作成する
|
82
|
+
rake VPC:destroy_simple_vpc # シンプルなVPCを削除する
|
83
|
+
rake VPC:destroy_standard_vpc # 標準的なVPCを削除する
|
84
|
+
```
|
85
|
+
|
86
|
+
## 注意
|
87
|
+
|
88
|
+
## 参照
|
89
|
+
+ [Rails ではない場合に gem で定義された Rake Task を呼び出す](http://qiita.com/dany1468/items/ed738709c4db16e1cdfd)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Jenkins配置
|
2
|
+
---
|
3
|
+
|
4
|
+
## 例
|
5
|
+
```
|
6
|
+
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
|
7
|
+
```
|
8
|
+
`http://0.0.0.0:9000`に接続してJenkinsをセットアップする
|
9
|
+
|
10
|
+
Crumb Dataが必要な場合は`http://0.0.0.0:9000/crumbIssuer/api/json`からcrumbを取得する
|
11
|
+
|
12
|
+
.envファイルをコピーしてテストを動かせるようにする
|
13
|
+
```bash
|
14
|
+
sudo cp /vagrant/.env /var/lib/jenkins/workspace/Develop/
|
15
|
+
```
|
16
|
+
|
17
|
+
## 注意
|
18
|
+
+ 仮想マシン環境でセットアップする。
|
19
|
+
|
20
|
+
## 参照
|
@@ -0,0 +1,26 @@
|
|
1
|
+
RubyGemパッケージの配置
|
2
|
+
---
|
3
|
+
|
4
|
+
## 例
|
5
|
+
### Gemのビルド
|
6
|
+
```bash
|
7
|
+
gem install bundler
|
8
|
+
bundle install
|
9
|
+
bundle exec rake build
|
10
|
+
```
|
11
|
+
|
12
|
+
### .gemファイルを作る
|
13
|
+
```bash
|
14
|
+
gem build etude_for_aws.gemspec
|
15
|
+
```
|
16
|
+
### Gemの公開
|
17
|
+
```bash
|
18
|
+
gem push etude_for_aws-0.0.0.gem
|
19
|
+
```
|
20
|
+
|
21
|
+
## 注意
|
22
|
+
+ 公開するバージョンは都度更新する
|
23
|
+
|
24
|
+
## 参照
|
25
|
+
+ [Version Badge](https://badge.fury.io/)
|
26
|
+
+ [RubygemsへのデプロイをCircleCIで自動化してみた](http://leko.jp/archives/871)
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'etude_for_aws/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "etude_for_aws"
|
8
|
+
spec.version = EtudeForAws::VERSION
|
9
|
+
spec.authors = ["k2works"]
|
10
|
+
spec.email = ["kakimomokuri@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Etude for AWS.}
|
13
|
+
spec.description = %q{Etude for AWS.}
|
14
|
+
spec.homepage = "https://github.com/k2works/etude_for_aws"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
18
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
19
|
+
if spec.respond_to?(:metadata)
|
20
|
+
spec.metadata['allowed_push_host'] = "https://rubygems.org"
|
21
|
+
else
|
22
|
+
raise "RubyGems 2.0 or newer is required to protect against " \
|
23
|
+
"public gem pushes."
|
24
|
+
end
|
25
|
+
|
26
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
27
|
+
f.match(%r{^(test|spec|features)/})
|
28
|
+
end
|
29
|
+
spec.bindir = "exe"
|
30
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
|
+
spec.require_paths = ["lib"]
|
32
|
+
|
33
|
+
spec.add_development_dependency "bundler", "~> 1.14"
|
34
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
35
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
36
|
+
spec.add_development_dependency "yard", "~> 0.8"
|
37
|
+
spec.add_development_dependency "redcarpet", "~> 3.4"
|
38
|
+
spec.add_development_dependency "aws-sdk", "~> 2.9"
|
39
|
+
spec.add_development_dependency "dotenv"
|
40
|
+
spec.add_development_dependency "pry", "~> 0.10.4"
|
41
|
+
end
|
data/etude_for_aws.iml
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<module type="RUBY_MODULE" version="4">
|
3
|
+
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
4
|
+
<exclude-output />
|
5
|
+
<content url="file://$MODULE_DIR$" />
|
6
|
+
<orderEntry type="inheritedJdk" />
|
7
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
8
|
+
<orderEntry type="library" scope="PROVIDED" name="aws-sdk (v2.9.12, rbenv: 2.3.1) [gem]" level="application" />
|
9
|
+
<orderEntry type="library" scope="PROVIDED" name="aws-sdk-core (v2.9.12, rbenv: 2.3.1) [gem]" level="application" />
|
10
|
+
<orderEntry type="library" scope="PROVIDED" name="aws-sdk-resources (v2.9.12, rbenv: 2.3.1) [gem]" level="application" />
|
11
|
+
<orderEntry type="library" scope="PROVIDED" name="aws-sigv4 (v1.0.0, rbenv: 2.3.1) [gem]" level="application" />
|
12
|
+
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.14.6, rbenv: 2.3.1) [gem]" level="application" />
|
13
|
+
<orderEntry type="library" scope="PROVIDED" name="coderay (v1.1.1, rbenv: 2.3.1) [gem]" level="application" />
|
14
|
+
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.3, rbenv: 2.3.1) [gem]" level="application" />
|
15
|
+
<orderEntry type="library" scope="PROVIDED" name="dotenv (v2.1.2, rbenv: 2.3.1) [gem]" level="application" />
|
16
|
+
<orderEntry type="library" scope="PROVIDED" name="ffi (v1.9.18, rbenv: 2.3.1) [gem]" level="application" />
|
17
|
+
<orderEntry type="library" scope="PROVIDED" name="formatador (v0.2.5, rbenv: 2.3.1) [gem]" level="application" />
|
18
|
+
<orderEntry type="library" scope="PROVIDED" name="guard (v2.14.1, rbenv: 2.3.1) [gem]" level="application" />
|
19
|
+
<orderEntry type="library" scope="PROVIDED" name="guard-yard (v2.2.0, rbenv: 2.3.1) [gem]" level="application" />
|
20
|
+
<orderEntry type="library" scope="PROVIDED" name="jmespath (v1.3.1, rbenv: 2.3.1) [gem]" level="application" />
|
21
|
+
<orderEntry type="library" scope="PROVIDED" name="listen (v3.1.5, rbenv: 2.3.1) [gem]" level="application" />
|
22
|
+
<orderEntry type="library" scope="PROVIDED" name="lumberjack (v1.0.11, rbenv: 2.3.1) [gem]" level="application" />
|
23
|
+
<orderEntry type="library" scope="PROVIDED" name="method_source (v0.8.2, rbenv: 2.3.1) [gem]" level="application" />
|
24
|
+
<orderEntry type="library" scope="PROVIDED" name="nenv (v0.3.0, rbenv: 2.3.1) [gem]" level="application" />
|
25
|
+
<orderEntry type="library" scope="PROVIDED" name="notiffany (v0.1.1, rbenv: 2.3.1) [gem]" level="application" />
|
26
|
+
<orderEntry type="library" scope="PROVIDED" name="pry (v0.10.4, rbenv: 2.3.1) [gem]" level="application" />
|
27
|
+
<orderEntry type="library" scope="PROVIDED" name="rake (v10.5.0, rbenv: 2.3.1) [gem]" level="application" />
|
28
|
+
<orderEntry type="library" scope="PROVIDED" name="rb-fsevent (v0.9.8, rbenv: 2.3.1) [gem]" level="application" />
|
29
|
+
<orderEntry type="library" scope="PROVIDED" name="rb-inotify (v0.9.8, rbenv: 2.3.1) [gem]" level="application" />
|
30
|
+
<orderEntry type="library" scope="PROVIDED" name="redcarpet (v3.4.0, rbenv: 2.3.1) [gem]" level="application" />
|
31
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec (v3.5.0, rbenv: 2.3.1) [gem]" level="application" />
|
32
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.5.4, rbenv: 2.3.1) [gem]" level="application" />
|
33
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.5.0, rbenv: 2.3.1) [gem]" level="application" />
|
34
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.5.0, rbenv: 2.3.1) [gem]" level="application" />
|
35
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.5.0, rbenv: 2.3.1) [gem]" level="application" />
|
36
|
+
<orderEntry type="library" scope="PROVIDED" name="ruby_dep (v1.5.0, rbenv: 2.3.1) [gem]" level="application" />
|
37
|
+
<orderEntry type="library" scope="PROVIDED" name="shellany (v0.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
38
|
+
<orderEntry type="library" scope="PROVIDED" name="slop (v3.6.0, rbenv: 2.3.1) [gem]" level="application" />
|
39
|
+
<orderEntry type="library" scope="PROVIDED" name="thor (v0.19.4, rbenv: 2.3.1) [gem]" level="application" />
|
40
|
+
<orderEntry type="library" scope="PROVIDED" name="yard (v0.9.9, rbenv: 2.3.1) [gem]" level="application" />
|
41
|
+
</component>
|
42
|
+
</module>
|
data/exe/etude_for_aws
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'etude_for_aws/version'
|
2
|
+
require 'etude_for_aws/helpers/certification_helper'
|
3
|
+
require 'etude_for_aws/helpers/configuration_helper'
|
4
|
+
require 'etude_for_aws/ec2/vpc_interface'
|
5
|
+
require 'etude_for_aws/cfm/configuration'
|
6
|
+
require 'etude_for_aws/cfm/vpc/vpc'
|
7
|
+
require 'etude_for_aws/cfm/vpc/null_vpc'
|
8
|
+
require 'etude_for_aws/cfm/vpc/one_az_one_public_subnet_vpc'
|
9
|
+
require 'etude_for_aws/cfm/vpc/one_az_two_public_subnet_vpc'
|
10
|
+
require 'etude_for_aws/cfm/vpc/one_az_two_public_and_private_subnet_vpc'
|
11
|
+
require 'etude_for_aws/cfm/vpc/two_az_two_private_subnet_vpc'
|
12
|
+
require 'etude_for_aws/cfm/vpc/two_az_two_public_subnet_vpc'
|
13
|
+
require 'etude_for_aws/cfm/vpc/two_az_one_public_subnet_and_private_subnet_vpc'
|
14
|
+
require 'etude_for_aws/cfm/vpc/two_az_two_public_subnet_and_private_subnet_vpc'
|
15
|
+
require 'etude_for_aws/vpc/vpc_api_gateway'
|
16
|
+
require 'etude_for_aws/vpc/configuration'
|
17
|
+
require 'etude_for_aws/vpc/vpc'
|
18
|
+
require 'etude_for_aws/vpc/subnet'
|
19
|
+
require 'etude_for_aws/vpc/internet_gateway'
|
20
|
+
require 'etude_for_aws/vpc/route_table'
|
21
|
+
require 'etude_for_aws/vpc/vpc_director'
|
22
|
+
require 'etude_for_aws/vpc/simple_vpc'
|
23
|
+
require 'etude_for_aws/vpc/standard_vpc'
|
24
|
+
require 'etude_for_aws/vpc/vpn'
|
25
|
+
require 'etude_for_aws/vpc/customer_gateway'
|
26
|
+
require 'etude_for_aws/vpc/vpn_gateway'
|
27
|
+
require 'etude_for_aws/vpc/vpn_connection'
|
28
|
+
require 'etude_for_aws/vpc/vpn_director'
|
29
|
+
require 'etude_for_aws/ec2/ec2_api_gateway'
|
30
|
+
require 'etude_for_aws/ec2/configuration'
|
31
|
+
require 'etude_for_aws/ec2/ec2'
|
32
|
+
require 'etude_for_aws/ec2/security_group'
|
33
|
+
require 'etude_for_aws/ec2/key_pair'
|
34
|
+
require 'etude_for_aws/ec2/ec2_instance'
|
35
|
+
|
36
|
+
module EtudeForAws
|
37
|
+
# Your code goes here...
|
38
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module CFM
|
2
|
+
class Configuration
|
3
|
+
include CertificationHelper
|
4
|
+
include ConfigurationHelper
|
5
|
+
|
6
|
+
attr_accessor :stack_name,
|
7
|
+
:template,
|
8
|
+
:stack_tag_value,
|
9
|
+
:stack_id,
|
10
|
+
:yaml,
|
11
|
+
:template_path,
|
12
|
+
:parameters,
|
13
|
+
:azs,
|
14
|
+
:vpc_id
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
aws_certificate
|
18
|
+
@yaml = ConfigurationHelper.load_yaml_file
|
19
|
+
@stack_name = get_yaml_stack_name
|
20
|
+
@stack_tag_value = get_yaml_stack_tag_value
|
21
|
+
@template_path = get_yaml_template_path
|
22
|
+
@azs = get_yaml_zas
|
23
|
+
end
|
24
|
+
|
25
|
+
def get_template_file(type)
|
26
|
+
get_yaml_template_file(type)
|
27
|
+
end
|
28
|
+
|
29
|
+
def create_client
|
30
|
+
Aws::CloudFormation::Client.new
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class ConfigurationStub < Configuration
|
35
|
+
def create_client
|
36
|
+
Aws::CloudFormation::Client.new(stub_responses: true)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,529 @@
|
|
1
|
+
{
|
2
|
+
"AWSTemplateFormatVersion": "2010-09-09",
|
3
|
+
"Description": "AWS CloudFormation Sample Template.",
|
4
|
+
"Parameters" : {
|
5
|
+
"AZ1" : {
|
6
|
+
"Default" : "ap-northeast-1a",
|
7
|
+
"Description" : "AZ",
|
8
|
+
"Type" : "String",
|
9
|
+
"AllowedValues" : [ "ap-northeast-1a","ap-northeast-1c","us-west-2a","us-west-2b","us-west-2c" ],
|
10
|
+
"ConstraintDescription" : "must select a valid availability zone."
|
11
|
+
}
|
12
|
+
},
|
13
|
+
"Resources": {
|
14
|
+
"VPC": {
|
15
|
+
"Type": "AWS::EC2::VPC",
|
16
|
+
"Properties": {
|
17
|
+
"CidrBlock": "10.0.0.0/16",
|
18
|
+
"Tags": [
|
19
|
+
{
|
20
|
+
"Key": "Application",
|
21
|
+
"Value": {
|
22
|
+
"Ref": "AWS::StackId"
|
23
|
+
}
|
24
|
+
}
|
25
|
+
]
|
26
|
+
},
|
27
|
+
"Metadata": {
|
28
|
+
"AWS::CloudFormation::Designer": {
|
29
|
+
"id": "ab8adda6-4951-48c5-9f86-d57e61a33616"
|
30
|
+
}
|
31
|
+
}
|
32
|
+
},
|
33
|
+
"Subnet": {
|
34
|
+
"Type": "AWS::EC2::Subnet",
|
35
|
+
"Properties": {
|
36
|
+
"VpcId": {
|
37
|
+
"Ref": "VPC"
|
38
|
+
},
|
39
|
+
"CidrBlock": "10.0.0.0/24",
|
40
|
+
"AvailabilityZone": {"Ref": "AZ1"},
|
41
|
+
"Tags": [
|
42
|
+
{
|
43
|
+
"Key": "Application",
|
44
|
+
"Value": {
|
45
|
+
"Ref": "AWS::StackId"
|
46
|
+
}
|
47
|
+
}
|
48
|
+
]
|
49
|
+
},
|
50
|
+
"Metadata": {
|
51
|
+
"AWS::CloudFormation::Designer": {
|
52
|
+
"id": "d5f991d6-ff02-459b-a9ac-9313872b192a"
|
53
|
+
}
|
54
|
+
}
|
55
|
+
},
|
56
|
+
"InternetGateway": {
|
57
|
+
"Type": "AWS::EC2::InternetGateway",
|
58
|
+
"Properties": {
|
59
|
+
"Tags": [
|
60
|
+
{
|
61
|
+
"Key": "Application",
|
62
|
+
"Value": {
|
63
|
+
"Ref": "AWS::StackId"
|
64
|
+
}
|
65
|
+
}
|
66
|
+
]
|
67
|
+
},
|
68
|
+
"Metadata": {
|
69
|
+
"AWS::CloudFormation::Designer": {
|
70
|
+
"id": "bd204b2e-d771-423d-b093-7991bd2d401e"
|
71
|
+
}
|
72
|
+
}
|
73
|
+
},
|
74
|
+
"AttachGateway": {
|
75
|
+
"Type": "AWS::EC2::VPCGatewayAttachment",
|
76
|
+
"Properties": {
|
77
|
+
"VpcId": {
|
78
|
+
"Ref": "VPC"
|
79
|
+
},
|
80
|
+
"InternetGatewayId": {
|
81
|
+
"Ref": "InternetGateway"
|
82
|
+
}
|
83
|
+
},
|
84
|
+
"Metadata": {
|
85
|
+
"AWS::CloudFormation::Designer": {
|
86
|
+
"id": "3544dd6c-cbe4-4f28-8f6f-8d91d93daa8f"
|
87
|
+
}
|
88
|
+
}
|
89
|
+
},
|
90
|
+
"RouteTable": {
|
91
|
+
"Type": "AWS::EC2::RouteTable",
|
92
|
+
"Properties": {
|
93
|
+
"VpcId": {
|
94
|
+
"Ref": "VPC"
|
95
|
+
},
|
96
|
+
"Tags": [
|
97
|
+
{
|
98
|
+
"Key": "Application",
|
99
|
+
"Value": {
|
100
|
+
"Ref": "AWS::StackId"
|
101
|
+
}
|
102
|
+
}
|
103
|
+
]
|
104
|
+
},
|
105
|
+
"Metadata": {
|
106
|
+
"AWS::CloudFormation::Designer": {
|
107
|
+
"id": "a13e2dc0-81df-4ba3-a944-683f2d500540"
|
108
|
+
}
|
109
|
+
}
|
110
|
+
},
|
111
|
+
"Route": {
|
112
|
+
"Type": "AWS::EC2::Route",
|
113
|
+
"DependsOn": "AttachGateway",
|
114
|
+
"Properties": {
|
115
|
+
"RouteTableId": {
|
116
|
+
"Ref": "RouteTable"
|
117
|
+
},
|
118
|
+
"DestinationCidrBlock": "0.0.0.0/0",
|
119
|
+
"GatewayId": {
|
120
|
+
"Ref": "InternetGateway"
|
121
|
+
}
|
122
|
+
},
|
123
|
+
"Metadata": {
|
124
|
+
"AWS::CloudFormation::Designer": {
|
125
|
+
"id": "d67c560a-5a80-45e6-b923-12ef9788e6b4"
|
126
|
+
}
|
127
|
+
}
|
128
|
+
},
|
129
|
+
"SubnetRouteTableAssociation": {
|
130
|
+
"Type": "AWS::EC2::SubnetRouteTableAssociation",
|
131
|
+
"Properties": {
|
132
|
+
"SubnetId": {
|
133
|
+
"Ref": "Subnet"
|
134
|
+
},
|
135
|
+
"RouteTableId": {
|
136
|
+
"Ref": "RouteTable"
|
137
|
+
}
|
138
|
+
},
|
139
|
+
"Metadata": {
|
140
|
+
"AWS::CloudFormation::Designer": {
|
141
|
+
"id": "79b72fb3-5594-4c04-b410-c5b618aa8b38"
|
142
|
+
}
|
143
|
+
}
|
144
|
+
},
|
145
|
+
"NetworkAcl": {
|
146
|
+
"Type": "AWS::EC2::NetworkAcl",
|
147
|
+
"Properties": {
|
148
|
+
"VpcId": {
|
149
|
+
"Ref": "VPC"
|
150
|
+
},
|
151
|
+
"Tags": [
|
152
|
+
{
|
153
|
+
"Key": "Application",
|
154
|
+
"Value": {
|
155
|
+
"Ref": "AWS::StackId"
|
156
|
+
}
|
157
|
+
}
|
158
|
+
]
|
159
|
+
},
|
160
|
+
"Metadata": {
|
161
|
+
"AWS::CloudFormation::Designer": {
|
162
|
+
"id": "46a052c5-d0ae-4754-8490-4aaae2d672ab"
|
163
|
+
}
|
164
|
+
}
|
165
|
+
},
|
166
|
+
"InboundHTTPNetworkAclEntry": {
|
167
|
+
"Type": "AWS::EC2::NetworkAclEntry",
|
168
|
+
"Properties": {
|
169
|
+
"NetworkAclId": {
|
170
|
+
"Ref": "NetworkAcl"
|
171
|
+
},
|
172
|
+
"RuleNumber": "100",
|
173
|
+
"Protocol": "6",
|
174
|
+
"RuleAction": "allow",
|
175
|
+
"Egress": "false",
|
176
|
+
"CidrBlock": "0.0.0.0/0",
|
177
|
+
"PortRange": {
|
178
|
+
"From": "80",
|
179
|
+
"To": "80"
|
180
|
+
}
|
181
|
+
},
|
182
|
+
"Metadata": {
|
183
|
+
"AWS::CloudFormation::Designer": {
|
184
|
+
"id": "1bd95f87-13c7-4915-867e-bf0e4a8cb060"
|
185
|
+
}
|
186
|
+
}
|
187
|
+
},
|
188
|
+
"InboundSSHNetworkAclEntry": {
|
189
|
+
"Type": "AWS::EC2::NetworkAclEntry",
|
190
|
+
"Properties": {
|
191
|
+
"NetworkAclId": {
|
192
|
+
"Ref": "NetworkAcl"
|
193
|
+
},
|
194
|
+
"RuleNumber": "101",
|
195
|
+
"Protocol": "6",
|
196
|
+
"RuleAction": "allow",
|
197
|
+
"Egress": "false",
|
198
|
+
"CidrBlock": "0.0.0.0/0",
|
199
|
+
"PortRange": {
|
200
|
+
"From": "22",
|
201
|
+
"To": "22"
|
202
|
+
}
|
203
|
+
},
|
204
|
+
"Metadata": {
|
205
|
+
"AWS::CloudFormation::Designer": {
|
206
|
+
"id": "55127ca8-ccef-4b5e-8cf6-6cc1cc3c15b3"
|
207
|
+
}
|
208
|
+
}
|
209
|
+
},
|
210
|
+
"InboundResponsePortsNetworkAclEntry": {
|
211
|
+
"Type": "AWS::EC2::NetworkAclEntry",
|
212
|
+
"Properties": {
|
213
|
+
"NetworkAclId": {
|
214
|
+
"Ref": "NetworkAcl"
|
215
|
+
},
|
216
|
+
"RuleNumber": "102",
|
217
|
+
"Protocol": "6",
|
218
|
+
"RuleAction": "allow",
|
219
|
+
"Egress": "false",
|
220
|
+
"CidrBlock": "0.0.0.0/0",
|
221
|
+
"PortRange": {
|
222
|
+
"From": "1024",
|
223
|
+
"To": "65535"
|
224
|
+
}
|
225
|
+
},
|
226
|
+
"Metadata": {
|
227
|
+
"AWS::CloudFormation::Designer": {
|
228
|
+
"id": "73ac814c-fbec-4381-9ea9-af1116be65b2"
|
229
|
+
}
|
230
|
+
}
|
231
|
+
},
|
232
|
+
"OutBoundHTTPNetworkAclEntry": {
|
233
|
+
"Type": "AWS::EC2::NetworkAclEntry",
|
234
|
+
"Properties": {
|
235
|
+
"NetworkAclId": {
|
236
|
+
"Ref": "NetworkAcl"
|
237
|
+
},
|
238
|
+
"RuleNumber": "100",
|
239
|
+
"Protocol": "6",
|
240
|
+
"RuleAction": "allow",
|
241
|
+
"Egress": "true",
|
242
|
+
"CidrBlock": "0.0.0.0/0",
|
243
|
+
"PortRange": {
|
244
|
+
"From": "80",
|
245
|
+
"To": "80"
|
246
|
+
}
|
247
|
+
},
|
248
|
+
"Metadata": {
|
249
|
+
"AWS::CloudFormation::Designer": {
|
250
|
+
"id": "87d84388-9f0b-4d1f-a0b0-41142048dc1e"
|
251
|
+
}
|
252
|
+
}
|
253
|
+
},
|
254
|
+
"OutBoundHTTPSNetworkAclEntry": {
|
255
|
+
"Type": "AWS::EC2::NetworkAclEntry",
|
256
|
+
"Properties": {
|
257
|
+
"NetworkAclId": {
|
258
|
+
"Ref": "NetworkAcl"
|
259
|
+
},
|
260
|
+
"RuleNumber": "101",
|
261
|
+
"Protocol": "6",
|
262
|
+
"RuleAction": "allow",
|
263
|
+
"Egress": "true",
|
264
|
+
"CidrBlock": "0.0.0.0/0",
|
265
|
+
"PortRange": {
|
266
|
+
"From": "443",
|
267
|
+
"To": "443"
|
268
|
+
}
|
269
|
+
},
|
270
|
+
"Metadata": {
|
271
|
+
"AWS::CloudFormation::Designer": {
|
272
|
+
"id": "f7e2e791-29fe-4713-b359-c67fa615fa80"
|
273
|
+
}
|
274
|
+
}
|
275
|
+
},
|
276
|
+
"OutBoundResponsePortsNetworkAclEntry": {
|
277
|
+
"Type": "AWS::EC2::NetworkAclEntry",
|
278
|
+
"Properties": {
|
279
|
+
"NetworkAclId": {
|
280
|
+
"Ref": "NetworkAcl"
|
281
|
+
},
|
282
|
+
"RuleNumber": "102",
|
283
|
+
"Protocol": "6",
|
284
|
+
"RuleAction": "allow",
|
285
|
+
"Egress": "true",
|
286
|
+
"CidrBlock": "0.0.0.0/0",
|
287
|
+
"PortRange": {
|
288
|
+
"From": "1024",
|
289
|
+
"To": "65535"
|
290
|
+
}
|
291
|
+
},
|
292
|
+
"Metadata": {
|
293
|
+
"AWS::CloudFormation::Designer": {
|
294
|
+
"id": "ff5fd4ee-e72d-4d17-a4f2-daca784d876f"
|
295
|
+
}
|
296
|
+
}
|
297
|
+
},
|
298
|
+
"SubnetNetworkAclAssociation": {
|
299
|
+
"Type": "AWS::EC2::SubnetNetworkAclAssociation",
|
300
|
+
"Properties": {
|
301
|
+
"SubnetId": {
|
302
|
+
"Ref": "Subnet"
|
303
|
+
},
|
304
|
+
"NetworkAclId": {
|
305
|
+
"Ref": "NetworkAcl"
|
306
|
+
}
|
307
|
+
},
|
308
|
+
"Metadata": {
|
309
|
+
"AWS::CloudFormation::Designer": {
|
310
|
+
"id": "daaa2c06-12a6-4ebc-a9ab-ea684849268b"
|
311
|
+
}
|
312
|
+
}
|
313
|
+
}
|
314
|
+
},
|
315
|
+
"Outputs": {
|
316
|
+
"VPCID" : {
|
317
|
+
"Value" : { "Ref" : "VPC" },
|
318
|
+
"Description" : "VPC ID"
|
319
|
+
},
|
320
|
+
"SUBNETPUB1" : {
|
321
|
+
"Value" : { "Ref" : "Subnet" },
|
322
|
+
"Description" : "PublicSubnet1"
|
323
|
+
}
|
324
|
+
},
|
325
|
+
"Metadata": {
|
326
|
+
"AWS::CloudFormation::Designer": {
|
327
|
+
"bd204b2e-d771-423d-b093-7991bd2d401e": {
|
328
|
+
"size": {
|
329
|
+
"width": 60,
|
330
|
+
"height": 60
|
331
|
+
},
|
332
|
+
"position": {
|
333
|
+
"x": 1010,
|
334
|
+
"y": 670
|
335
|
+
},
|
336
|
+
"z": 1,
|
337
|
+
"embeds": []
|
338
|
+
},
|
339
|
+
"ab8adda6-4951-48c5-9f86-d57e61a33616": {
|
340
|
+
"size": {
|
341
|
+
"width": 780,
|
342
|
+
"height": 780
|
343
|
+
},
|
344
|
+
"position": {
|
345
|
+
"x": 60,
|
346
|
+
"y": 90
|
347
|
+
},
|
348
|
+
"z": 1,
|
349
|
+
"embeds": [
|
350
|
+
"46a052c5-d0ae-4754-8490-4aaae2d672ab",
|
351
|
+
"a13e2dc0-81df-4ba3-a944-683f2d500540",
|
352
|
+
"d5f991d6-ff02-459b-a9ac-9313872b192a"
|
353
|
+
]
|
354
|
+
},
|
355
|
+
"46a052c5-d0ae-4754-8490-4aaae2d672ab": {
|
356
|
+
"size": {
|
357
|
+
"width": 420,
|
358
|
+
"height": 330
|
359
|
+
},
|
360
|
+
"position": {
|
361
|
+
"x": 90,
|
362
|
+
"y": 150
|
363
|
+
},
|
364
|
+
"z": 2,
|
365
|
+
"parent": "ab8adda6-4951-48c5-9f86-d57e61a33616",
|
366
|
+
"embeds": [
|
367
|
+
"ff5fd4ee-e72d-4d17-a4f2-daca784d876f",
|
368
|
+
"f7e2e791-29fe-4713-b359-c67fa615fa80",
|
369
|
+
"87d84388-9f0b-4d1f-a0b0-41142048dc1e",
|
370
|
+
"73ac814c-fbec-4381-9ea9-af1116be65b2",
|
371
|
+
"55127ca8-ccef-4b5e-8cf6-6cc1cc3c15b3",
|
372
|
+
"1bd95f87-13c7-4915-867e-bf0e4a8cb060"
|
373
|
+
]
|
374
|
+
},
|
375
|
+
"ff5fd4ee-e72d-4d17-a4f2-daca784d876f": {
|
376
|
+
"size": {
|
377
|
+
"width": 60,
|
378
|
+
"height": 60
|
379
|
+
},
|
380
|
+
"position": {
|
381
|
+
"x": 120,
|
382
|
+
"y": 210
|
383
|
+
},
|
384
|
+
"z": 3,
|
385
|
+
"parent": "46a052c5-d0ae-4754-8490-4aaae2d672ab",
|
386
|
+
"embeds": []
|
387
|
+
},
|
388
|
+
"f7e2e791-29fe-4713-b359-c67fa615fa80": {
|
389
|
+
"size": {
|
390
|
+
"width": 60,
|
391
|
+
"height": 60
|
392
|
+
},
|
393
|
+
"position": {
|
394
|
+
"x": 240,
|
395
|
+
"y": 210
|
396
|
+
},
|
397
|
+
"z": 3,
|
398
|
+
"parent": "46a052c5-d0ae-4754-8490-4aaae2d672ab",
|
399
|
+
"embeds": []
|
400
|
+
},
|
401
|
+
"87d84388-9f0b-4d1f-a0b0-41142048dc1e": {
|
402
|
+
"size": {
|
403
|
+
"width": 60,
|
404
|
+
"height": 60
|
405
|
+
},
|
406
|
+
"position": {
|
407
|
+
"x": 120,
|
408
|
+
"y": 330
|
409
|
+
},
|
410
|
+
"z": 3,
|
411
|
+
"parent": "46a052c5-d0ae-4754-8490-4aaae2d672ab",
|
412
|
+
"embeds": []
|
413
|
+
},
|
414
|
+
"73ac814c-fbec-4381-9ea9-af1116be65b2": {
|
415
|
+
"size": {
|
416
|
+
"width": 60,
|
417
|
+
"height": 60
|
418
|
+
},
|
419
|
+
"position": {
|
420
|
+
"x": 240,
|
421
|
+
"y": 330
|
422
|
+
},
|
423
|
+
"z": 3,
|
424
|
+
"parent": "46a052c5-d0ae-4754-8490-4aaae2d672ab",
|
425
|
+
"embeds": []
|
426
|
+
},
|
427
|
+
"55127ca8-ccef-4b5e-8cf6-6cc1cc3c15b3": {
|
428
|
+
"size": {
|
429
|
+
"width": 60,
|
430
|
+
"height": 60
|
431
|
+
},
|
432
|
+
"position": {
|
433
|
+
"x": 360,
|
434
|
+
"y": 210
|
435
|
+
},
|
436
|
+
"z": 3,
|
437
|
+
"parent": "46a052c5-d0ae-4754-8490-4aaae2d672ab",
|
438
|
+
"embeds": []
|
439
|
+
},
|
440
|
+
"1bd95f87-13c7-4915-867e-bf0e4a8cb060": {
|
441
|
+
"size": {
|
442
|
+
"width": 60,
|
443
|
+
"height": 60
|
444
|
+
},
|
445
|
+
"position": {
|
446
|
+
"x": 360,
|
447
|
+
"y": 330
|
448
|
+
},
|
449
|
+
"z": 3,
|
450
|
+
"parent": "46a052c5-d0ae-4754-8490-4aaae2d672ab",
|
451
|
+
"embeds": []
|
452
|
+
},
|
453
|
+
"a13e2dc0-81df-4ba3-a944-683f2d500540": {
|
454
|
+
"size": {
|
455
|
+
"width": 240,
|
456
|
+
"height": 240
|
457
|
+
},
|
458
|
+
"position": {
|
459
|
+
"x": 390,
|
460
|
+
"y": 540
|
461
|
+
},
|
462
|
+
"z": 2,
|
463
|
+
"parent": "ab8adda6-4951-48c5-9f86-d57e61a33616",
|
464
|
+
"embeds": [
|
465
|
+
"d67c560a-5a80-45e6-b923-12ef9788e6b4"
|
466
|
+
]
|
467
|
+
},
|
468
|
+
"3544dd6c-cbe4-4f28-8f6f-8d91d93daa8f": {
|
469
|
+
"source": {
|
470
|
+
"id": "bd204b2e-d771-423d-b093-7991bd2d401e"
|
471
|
+
},
|
472
|
+
"target": {
|
473
|
+
"id": "ab8adda6-4951-48c5-9f86-d57e61a33616"
|
474
|
+
},
|
475
|
+
"z": 1
|
476
|
+
},
|
477
|
+
"d67c560a-5a80-45e6-b923-12ef9788e6b4": {
|
478
|
+
"size": {
|
479
|
+
"width": 60,
|
480
|
+
"height": 60
|
481
|
+
},
|
482
|
+
"position": {
|
483
|
+
"x": 420,
|
484
|
+
"y": 600
|
485
|
+
},
|
486
|
+
"z": 3,
|
487
|
+
"parent": "a13e2dc0-81df-4ba3-a944-683f2d500540",
|
488
|
+
"embeds": [],
|
489
|
+
"references": [
|
490
|
+
"bd204b2e-d771-423d-b093-7991bd2d401e"
|
491
|
+
],
|
492
|
+
"dependson": [
|
493
|
+
"3544dd6c-cbe4-4f28-8f6f-8d91d93daa8f"
|
494
|
+
]
|
495
|
+
},
|
496
|
+
"d5f991d6-ff02-459b-a9ac-9313872b192a": {
|
497
|
+
"size": {
|
498
|
+
"width": 240,
|
499
|
+
"height": 240
|
500
|
+
},
|
501
|
+
"position": {
|
502
|
+
"x": 90,
|
503
|
+
"y": 540
|
504
|
+
},
|
505
|
+
"z": 2,
|
506
|
+
"parent": "ab8adda6-4951-48c5-9f86-d57e61a33616",
|
507
|
+
"embeds": []
|
508
|
+
},
|
509
|
+
"daaa2c06-12a6-4ebc-a9ab-ea684849268b": {
|
510
|
+
"source": {
|
511
|
+
"id": "46a052c5-d0ae-4754-8490-4aaae2d672ab"
|
512
|
+
},
|
513
|
+
"target": {
|
514
|
+
"id": "d5f991d6-ff02-459b-a9ac-9313872b192a"
|
515
|
+
},
|
516
|
+
"z": 2
|
517
|
+
},
|
518
|
+
"79b72fb3-5594-4c04-b410-c5b618aa8b38": {
|
519
|
+
"source": {
|
520
|
+
"id": "a13e2dc0-81df-4ba3-a944-683f2d500540"
|
521
|
+
},
|
522
|
+
"target": {
|
523
|
+
"id": "d5f991d6-ff02-459b-a9ac-9313872b192a"
|
524
|
+
},
|
525
|
+
"z": 2
|
526
|
+
}
|
527
|
+
}
|
528
|
+
}
|
529
|
+
}
|