1

Ну, я пытаюсь найти шаблон облачной информации в AWS.AWS Cloudformation

Где мне нужно создать три VPC с одной подсети и экземпляром в нем. Где вы имеете internetgateway в нем с 2 в одну стороны от VPC к шлюзу и одним двухсторонней связи, как это:

enter image description here

+0

Я предполагаю, что вы не найдете шаблонный CloudFormation там что соответствует этой точной топологии, однако вы можете легко создать ее самостоятельно. Для односторонних соединений вы хотите использовать NAT-шлюз и для двунаправленного, просто используйте маршрут VPC непосредственно к Интернет-шлюзу (или используйте ELB или обратный прокси-сервер в зависимости от положения безопасности, которое вы хотите принять .) – KevinSeaman

ответ

5

Вы можете использовать AWS Quick Start «s Amazon VPC Architecturetemplate быстро приступить к работе с шаблонным VPC архитектура. Этот шаблон, поддерживаемый AWS, создает отдельный VPC, содержащий как общедоступную (двухстороннюю), так и приватную (одностороннюю, исходящую интернет-сеть) подсеть в каждой указанной зоне доступности (вы предоставляете 2-4 зоны доступности в качестве параметров). Я бы посоветовал начать с Quick Start, а затем настроить позже, чтобы в соответствии с вашими конкретными потребностями.

Для вашего варианта использования вы можете указать 2 зоны доступности, затем использовать частные подсети в каждом AZ для SubnetA и SubnetB и Public Subnet в одном из AZ для подсети.

(Примечание: Я рекомендую против создания 3 отдельных VPCs для одноразового применения Четких Subnets обеспечивают адекватную изоляцию сети, создавая 3 отдельного VPCs дублирует много ненужных дополнительных ресурсов, такие как Интернет Getways, и есть limit of 5 VPCs per region per AWS account. .)

Вот полный рабочий пример, который использует шаблон Quick Start непосредственно как nested stack:

Launch Stack

Description: Create a VPC with 2 private and 1 public subnets, with an EC2 instance in each. 
Mappings: 
    RegionMap: 
    us-east-1: 
     # amzn-ami-hvm-2016.09.1.20161221-x86_64-gp2 
     "opal": "ami-9be6f38c" 
     "rstudio": "ami-9be6f38c" 
Parameters: 
    InstanceType: 
    Description: EC2 instance type 
    Type: String 
    Default: t2.medium 
    AllowedValues: [t2.nano, t2.micro, t2.small, t2.medium, t2.large, t2.xlarge, t2.2xlarge, 
     m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m4.16xlarge, 
     c4.large, c4.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge, 
     r4.large, r4.xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge, r4.16xlarge] 
    ConstraintDescription: Please choose a valid instance type. 
    AvailabilityZones: 
    Description: List of 2 Availability Zones to use for the subnets in the VPC. 
    Type: "List<AWS::EC2::AvailabilityZone::Name>" 
    KeyPairName: 
    Description: Public/private key pair to provide SSH access to the EC2 instances. 
    Type: "AWS::EC2::KeyPair::KeyName" 
Resources: 
    VPCStack: 
    Type: AWS::CloudFormation::Stack 
    Properties: 
     TemplateURL: 'https://s3.amazonaws.com/quickstart-reference/aws/vpc/latest/templates/aws-vpc.template' 
     Parameters: 
     AvailabilityZones: !Join [',', !Ref AvailabilityZones] 
     KeyPairName: !Ref KeyPairName 
     NumberOfAZs: 2 
    SecurityGroup: 
    Type: AWS::EC2::SecurityGroup 
    Properties: 
     GroupDescription: VPC Security Group 
     VpcId: !GetAtt VPCStack.Outputs.VPCID 
    OpalServer1: 
    Type: AWS::EC2::Instance 
    Properties: 
     ImageId: !FindInMap [ RegionMap, !Ref "AWS::Region", opal] 
     InstanceType: !Ref InstanceType 
     SecurityGroupIds: [!Ref SecurityGroup] 
     SubnetId: !GetAtt VPCStack.Outputs.PrivateSubnet1AID 
     KeyName: !Ref KeyPairName 
    OpalServer2: 
    Type: AWS::EC2::Instance 
    Properties: 
     ImageId: !FindInMap [ RegionMap, !Ref "AWS::Region", opal] 
     InstanceType: !Ref InstanceType 
     SecurityGroupIds: [!Ref SecurityGroup] 
     SubnetId: !GetAtt VPCStack.Outputs.PrivateSubnet2AID 
     KeyName: !Ref KeyPairName 
    RStudioClient: 
    Type: AWS::EC2::Instance 
    Properties: 
     ImageId: !FindInMap [ RegionMap, !Ref "AWS::Region", rstudio] 
     InstanceType: !Ref InstanceType 
     SecurityGroupIds: [!Ref SecurityGroup] 
     SubnetId: !GetAtt VPCStack.Outputs.PublicSubnet1ID 
     KeyName: !Ref KeyPairName 
0

Вы можете использовать готовые шаблоны, предоставленные AWS, и изменять их в соответствии с требованиями. Я использую ссылку для ссылки.

Примечание: CloudFormation является Json на основе позаботятся синтаксиса

Ссылка: - https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-west-2.html#d0e207425

0

Если вы уже развернули такую ​​среду, как и в схеме, вы можете использовать CloudFormer создать шаблон для вы.

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-cloudformer.html

Кроме того, если вы хотите передать дополнительные параметры, вы можете изменить шаблон, генерируемый CloudFormer и объявить параметры

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html