狠狠撸
Submit Search
Jaws?横浜ハンズオンーCloudFormation w/ vpc 2/3
?
7 likes
?
1,966 views
Yasuhiro Araki, Ph.D
Follow
AWS CloudFormatioNをつかった世界最速ハンズオン。EC2で作った環境をVPCに移行する。
Read less
Read more
1 of 35
More Related Content
Jaws?横浜ハンズオンーCloudFormation w/ vpc 2/3
1.
ハンズオン:
VPC設計およびVPCをCloudFormationテ ンプレートで記述する 注意:CloudFormationとVPCの 知識識を前提とします。 ARAKI Yasuhiro
2.
このハンズオンのための準備 v??CloudFormationの知識識 v??インストール v??CloudFormationのコマンドラインツール
(必須) v??テキストエディタ(必須) v??JSONエディタ(任意) ARAKI Yasuhiro
3.
CloudFormationのコマンドラインツール v??https://s3.amazonaws.com/cloudformation-‐??cli/
AWSCloudFormation-‐??cli.zip ARAKI Yasuhiro
4.
前の時間でつくったテンプレート v??https://s3-‐??ap-‐??northeast-‐??1.amazonaws.com/
arakisa/CloudFormation/eccube-‐??araki-‐?? classic09.json ? ARAKI Yasuhiro
5.
進め?方 v??VPCをコンソールで作ります v??同じことを実現するCFNTを作ります
ARAKI Yasuhiro
6.
本ハンズオン:2础窜,6サブネット
v??複数のアベイラビリティ ゾーンにEC-‐??CUBEの動作 するEC2インスタンスを 配置 v??ELBを使?用し、外部から のHTTPアクセスはELBを 使?用してEC2インスタン スに分散する。 v??DBはRDSをMulti-‐??AZ構 成で配置 ARAKI Yasuhiro
7.
マネージメントコンソールで痴笔颁作成
作成したいVPCと一致する構成は存在しない。 そこで、構成はあとから調整することにして、 一番単純な構成になっている「VPC ?with ?a ? Single ?Public ?Sunet ?Only」を選ぶ。 ARAKI Yasuhiro
8.
1つ?目のサブネット作成
ARAKI Yasuhiro
9.
追加サブネット作成
ARAKI Yasuhiro
10.
サブネット追加
ARAKI Yasuhiro
11.
サブネットの确认
ARAKI Yasuhiro
12.
RouteTableとPublicSubnetの紐紐付け Public ?Subnetに対してインターネットゲートウェイへの経路を持つRoute ?Tableと関連付け る。
ARAKI Yasuhiro
13.
Private ?Subnet?用のRouteTable
10.1.0.0/16のVPCと関連づけて、Route ?Table を作成し、関係付ける ARAKI Yasuhiro
14.
Route ?Tableの確認
ARAKI Yasuhiro
15.
Private ?Subnetに対するNACL
Create ?Network ?ACL ?をクリックし、作成をはじめる。 ARAKI Yasuhiro
16.
ARAKI Yasuhiro
17.
狈础颁尝を适用する厂耻产苍别迟と関係づける
ARAKI Yasuhiro
18.
狈础颁尝ルール(滨苍产辞耻苍诲)の定义
ARAKI Yasuhiro
19.
狈础颁尝ルール(辞耻迟产辞耻苍诲)の定义
ARAKI Yasuhiro
20.
Public ?Subnetに対するNACL(inbound)
22,80,DynamicPortを許可 ARAKI Yasuhiro
21.
Public ?Subnetに対するNACL(outbound)
80,DynamicPortを許可 ARAKI Yasuhiro
22.
本ハンズオン:2础窜,6サブネット
v??想定のCFNTを作成し てみる ARAKI Yasuhiro
23.
VPCを定義するCFNTのステップ v??ネットワークの構成を定義 v??VPCそのものの作成、サブネット作成、IGW
作成とアタッチ、ルーティング作成と設定と ヒモ付、NACLの作成と定義とヒモ付 v??定義値はOutputに記述して再利利?用 ARAKI Yasuhiro
24.
CFNをつかったVPC作成 https://gist.github.com/armaniacs/4752951#file-vpc-subnets-json v??ここまでのGUI操作を
CFNで ARAKI Yasuhiro
25.
VPCそのもの作成 ?AWS::EC2::VPC "VPC" ?:
?{ ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::VPC", ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"CidrBlock" ?: ?"10.1.0.0/16", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Tags" ?: ?[ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Application", ?"Value" ?: ?{ ?"Ref" ?: ? "AWS::StackName”} ?}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Network", ?"Value" ?: ?"Public" ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?]}}, ARAKI Yasuhiro
26.
サブネットの作成 ?AWS::EC2::Subnet ?"ELBSubnetA"
?: ?{ ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::Subnet", ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"VpcId" ?: ?{ ?"Ref" ?: ?"VPC" ?}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"CidrBlock" ?: ?"10.1.10.0/24", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"AvailabilityZone" ?: ?"ap-‐??northeast-‐??1a", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Tags" ?: ?[ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Application", ?"Value" ?: ?{ ?"Ref" ?: ? "AWS::StackName”} ?}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Network", ?"Value" ?: ?"Public" ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?]}}, ARAKI Yasuhiro
27.
AWS::EC2::InternetGateway ?"InternetGateway" ?:
?{ ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::InternetGateway", ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Tags" ?: ?[ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Application", ?"Value" ?: ?{ ?"Ref" ?: ? "AWS::StackName" } ?}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Network", ?"Value" ?: ?"Public" ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?]}}, ARAKI Yasuhiro
28.
AWS::EC2::VPCGatewayAttachment ?"AttachGateway" ?:
?{ ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::VPCGatewayAttachment", ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"VpcId" ?: ?{ ?"Ref" ?: ?"VPC" ?}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"InternetGatewayId" ?: ?{ ?"Ref" ?: ?"InternetGateway" ?} ? ? ? ? ? ? ? ? ? ? ? ?}}, ARAKI Yasuhiro
29.
ルーティングテーブルの作成 AWS::EC2::RouteTable ?"PublicRouteTable" ?:
?{ ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::RouteTable", ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"VpcId" ?: ?{"Ref" ?: ?"VPC"}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Tags" ?: ?[ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Application", ?"Value" ?: ?{ ?"Ref" ?: ? "AWS::StackName”} ?}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Network", ?"Value" ?: ?"Public" ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?]}}, ARAKI Yasuhiro
30.
ルーティングテーブルの内容設定 AWS::EC2::Route "PublicRoute" ?: ?{
? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::Route", ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"RouteTableId" ?: ?{ ?"Ref" ?: ?"PublicRouteTable" ?}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"DestinationCidrBlock" ?: ?"0.0.0.0/0", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"GatewayId" ?: ?{ ?"Ref" ?: ?"InternetGateway" ?} ? ? ? ? ? ? ? ? ? ? ? ?}}, ARAKI Yasuhiro
31.
サブネットとルーティングテーブルを紐紐付け AWS::EC2::SubnetRouteTableAssociation "PublicSubnetRouteTableAssociationElbA" ?: ?{
? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::SubnetRouteTableAssociation", ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"SubnetId" ?: ?{ ?"Ref" ?: ?"ELBSubnetA" ?}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"RouteTableId" ?: ?{ ?"Ref" ?: ?"PublicRouteTable" ?} ? ? ? ? ? ? ? ? ? ? ? ?}}, ARAKI Yasuhiro
32.
NACLの作成 ?AWS::EC2::NetworkAcl "PublicNetworkAcl" ?:
?{ ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::NetworkAcl", ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"VpcId" ?: ?{"Ref" ?: ?"VPC"}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Tags" ?: ?[ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Application", ?"Value" ?: ?{ ?"Ref" ?: ? "AWS::StackName”} ?}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Network", ?"Value" ?: ?"Public" ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?]}}, ARAKI Yasuhiro
33.
NACLの中?身を定義 ?AWS::EC2::NetworkAclEntry" "InboundSSHPublicNetworkAclEntry" ?:
?{ ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::NetworkAclEntry", ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"NetworkAclId" ?: ?{"Ref" ?: ?"PublicNetworkAcl"}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"RuleNumber" ?: ?"10", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Protocol" ?: ?"6", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"RuleAction" ?: ?"allow", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Egress" ?: ?"false", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"CidrBlock" ?: ?"0.0.0.0/0", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"PortRange" ?: ?{"From" ?: ?"22", ?"To" ?: ?"22"} ? ? ? ? ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ?}, ARAKI Yasuhiro
34.
NACLとサブネットの紐紐付け AWS::EC2::SubnetNetworkAclAssociation "PublicSubnetNetworkAclAssociationElbA" ?: ?{
? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::SubnetNetworkAclAssociation", ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"SubnetId" ?: ?{ ?"Ref" ?: ?"ELBSubnetA" ?}, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"NetworkAclId" ?: ?{ ?"Ref" ?: ?"PublicNetworkAcl" ?} ? ? ? ? ? ? ? ? ? ? ? ?}}, ARAKI Yasuhiro
35.
定義値を出?力力 ?Outputs ?"Outputs":{
? ? ? ? ? ? ? ?"ELBSubnetAId":{ ? ? ? ? ? ? ? ? ? ? ? ?"Value":{"Ref": ?"ELBSubnetA"}, ? ? ? ? ? ? ? ? ? ? ? ?"Description":"Id ?of ?ELBSubnetA" ? ? ? ? ? ? ? ?}, ARAKI Yasuhiro