AWS CloudFormation: Understanding the DependsOn Attribute

Resources:
  MyDBInstance:
    Type: 'AWS::RDS::DBInstance'
    Properties:
      AllocatedStorage: '5'
      DBInstanceClass: 'db.t2.small'
      Engine: 'mysql'
      EngineVersion: '5.6'
      MasterUsername: 'admin'
      MasterUserPassword: 'password'
      VPCSecurityGroups: 
        - !Ref MyDBSecurityGroup

  MyDBSecurityGroup:
    Type: 'AWS::RDS::DBSecurityGroup'
    Properties:
      GroupDescription: 'My database security group'
      EC2VpcId: 'vpc-1a2b3c4d'

  MyEC2Instance:
    Type: 'AWS::EC2::Instance'
    DependsOn: MyDBInstance
    Properties:
      InstanceType: 't2.micro'
      ImageId: 'ami-0abcdef1234567890'
      KeyName: 'my-key-pair'
      NetworkInterfaces:
        - AssociatePublicIpAddress: 'true'
          DeviceIndex: '0'
          SubnetId:
            - !Ref MyEC2SecurityGroup

  MyEC2SecurityGroup:
    Type: 'AWS::EC2::SecurityGroup'
    Properties:
      GroupDescription: 'My EC2 security group'
      VpcId: 'vpc-1a2b3c4d'
Resources:
  MyS3Bucket:
    Type: 'AWS::S3::Bucket'
    Properties:
      BucketName: 'my-s3-bucket'

  MyEC2Instance:
    Type: 'AWS::EC2::Instance'
    DependsOn: MyS3Bucket
    Properties:
      InstanceType: 't2.micro'
      ImageId: 'ami-0abcdef1234567890'
      KeyName: 'my-key-pair'
      NetworkInterfaces:
        - AssociatePublicIpAddress: 'true'
          DeviceIndex: '0'
          GroupSet:
            - !Ref MyEC2SecurityGroup
          SubnetId: 'subnet-1a2b3c4d'

  MyEC2SecurityGroup:
    Type: 'AWS::EC2::SecurityGroup'
    Properties:
      GroupDescription: 'My EC2 security group'
      VpcId: 'vpc-1a2b3c4d'

Summary

Next Steps