0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AlibabaCloudのAuto Scaling x SLB x RDSをやってみる(ROS版)

はじめに

AlibabaCloudのAuto Scaling x SLBをやってみる(ROS版)
でやった、テンプレートにRDSを追加してみます。

JSONテンプレート

こちらのテンプレートで起動が可能です。

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "poc",
  "Metadata": {
    "RosGraphicElement-3": {
      "x": 404,
      "y": 117,
      "width": 386,
      "height": 270
    },
    "RosGraphicElement-1": {
      "x": 39,
      "y": 39
    },
    "RosGraphicElement-2": {
      "x": 147,
      "y": 39
    },
    "RosGraphicElement-5": {
      "x": 139,
      "y": 359
    },
    "RosGraphicElement-6": {
      "x": 139,
      "y": 359
    },
    "RosGraphicElement-12": {
      "x": 242,
      "y": 237
    },
    "RosGraphicElement-13": {
      "x": 139,
      "y": 237
    },
    "RosGraphicElement-14": {
      "x": 181,
      "y": 133
    }
  },
  "Parameters": {
    "CidrBlock": {
      "Type": "String",
      "AllowedValues": [
        "192.168.0.0/16",
        "172.16.0.0/12",
        "10.0.0.0/8"
      ],
      "Default": "10.0.0.0/8"
    },
    "ImageId": {
      "Type": "String",
      "Description": "ECS Image",
      "Label": "ECS Image",
      "Default": "centos_7_04_64_20G_alibase_201701015.vhd"
    },
    "InstanceType": {
      "Type": "String",
      "Description": "ECS Instance Type",
      "AllowedValues": [
        "ecs.t5-lc2m1.nano"
      ],
      "Label": "ECS Instance Type",
      "Default": "ecs.t5-lc2m1.nano"
    },
    "KeyPair": {
      "Type": "String",
      "Description": "ECS Key Pair",
      "Label": "ECS Key Pair",
      "Default": "aliyun-ap-northeast-1"
    },
    "Engine": {
      "Type": "String",
      "Default": "MySQL",
      "AllowedValues": [
        "MySQL"
      ]
    },
    "EngineVersion": {
      "Type": "String",
      "Default": "5.7",
      "Description": "MySQL:5.6/5.7",
      "AllowedValues": [
        "5.6",
        "5.7"
      ]
    },
    "DBInstanceClass": {
      "Type": "String",
      "Default": "rds.mysql.t1.small",
      "AllowedValues": [
        "mysql.n1.micro.1",
        "mysql.n2.small.1",
        "mysql.n2.medium.1",
        "mysql.n4.medium.1",
        "mysql.n4.large.1",
        "mysql.n4.xlarge.1",
        "mysql.n4.2xlarge.1",
        "mysql.n4.4xlarge.1",
        "mysql.n8.4xlarge.1",
        "mysql.n4.8xlarge.1",
        "mysql.n8.8xlarge.1",
        "rds.mysql.t1.small",
        "rds.mysql.s1.small",
        "rds.mysql.s2.large",
        "rds.mysql.s2.xlarge",
        "rds.mysql.s3.large",
        "rds.mysql.m1.medium",
        "rds.mysql.c1.large",
        "rds.mysql.c1.xlarge",
        "rds.mysql.c2.xlarge",
        "rds.mysql.c2.xlp2",
        "mysql.x8.medium.2",
        "mysql.x8.large.2",
        "mysql.x8.xlarge.2",
        "mysql.x8.2xlarge.2",
        "mysql.x4.large.2",
        "mysql.x4.xlarge.2",
        "mysql.x4.2xlarge.2",
        "mysql.x4.4xlarge.2",
        "rds.mysql.st.d13",
        "rds.mysql.st.h43",
        "mysql.x4.large.3",
        "mysql.x4.xlarge.3",
        "mysql.x4.2xlarge.3",
        "mysql.x4.4xlarge.3"
      ]
    },
    "DBInstanceStorage": {
      "Type": "Number",
      "MinValue": 5,
      "MaxValue": 2000,
      "Default": 10,
      "Description": "Incrementing in every 5G, unit: GB",
      "ConstraintDescription": "Incrementing in every 5G, unit: GB"
    },
    "DBInstanceNetType": {
      "Type": "String",
      "Default": "Intranet",
      "AllowedValues": [
        "Internet",
        "Intranet"
      ]
    },
    "DBUserName": {
      "Type": "String",
      "Default": "dbuser",
      "Description": "Database User Name"
    },
    "DBUserPassword": {
      "Type": "String",
      "Default": "password",
      "Description": "Database User Password"
    }
  },
  "Mappings": {},
  "Conditions": {},
  "Resources": {
    "VPC": {
      "Metadata": {
        "GraphicId": "RosGraphicElement-1"
      },
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "VpcName": {
          "Ref": "ALIYUN::StackName"
        },
        "CidrBlock": "10.0.0.0/8"
      }
    },
    "VSwitch-ECS": {
      "Metadata": {
        "GraphicId": "RosGraphicElement-2"
      },
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "VSwitchName": "ecs",
        "VpcId": {
          "Ref": "VPC"
        },
        "CidrBlock": "10.0.0.0/24",
        "Description": "ecs",
        "ZoneId": {
          "Fn::Select": [
            "0",
            {
              "Fn::GetAZs": {
                "Ref": "ALIYUN::Region"
              }
            }
          ]
        }
      }
    },
    "VSwitch-SLB": {
      "Metadata": {
        "GraphicId": "RosGraphicElement-3"
      },
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "VSwitchName": "slb",
        "VpcId": {
          "Ref": "VPC"
        },
        "CidrBlock": "10.0.1.0/24",
        "Description": "slb",
        "ZoneId": {
          "Fn::Select": [
            "0",
            {
              "Fn::GetAZs": {
                "Ref": "ALIYUN::Region"
              }
            }
          ]
        }
      }
    },
    "SG": {
      "Metadata": {
        "GraphicId": "RosGraphicElement-5"
      },
      "Type": "ALIYUN::ECS::SecurityGroup",
      "Properties": {
        "VpcId": {
          "Ref": "VPC"
        },
        "SecurityGroupName": {
          "Fn::Join": [
            "-",
            [
              {
                "Ref": "ALIYUN::StackName"
              },
              "ecs-sg"
            ]
          ]
        },
        "SecurityGroupEgress": [
          {
            "PortRange": "-1/-1",
            "Priority": 1,
            "IpProtocol": "all",
            "DestCidrIp": "0.0.0.0/0",
            "NicType": "intranet",
            "SecurityGroupId": "0"
          }
        ],
        "SecurityGroupIngress": [
          {
            "PortRange": "-1/-1",
            "Priority": 1,
            "SourceCidrIp": "0.0.0.0/0",
            "IpProtocol": "all",
            "NicType": "intranet",
            "SecurityGroupId": "0"
          }
        ]
      }
    },
    "VSwitch-RDS": {
      "Metadata": {
        "GraphicId": "RosGraphicElement-6"
      },
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "VSwitchName": "rds",
        "VpcId": {
          "Ref": "VPC"
        },
        "CidrBlock": "10.0.2.0/24",
        "Description": "rds",
        "ZoneId": {
          "Fn::Select": [
            "0",
            {
              "Fn::GetAZs": {
                "Ref": "ALIYUN::Region"
              }
            }
          ]
        }
      }
    },
    "ScalingGroup": {
      "Metadata": {
        "GraphicId": "RosGraphicElement-12"
      },
      "Type": "ALIYUN::ESS::ScalingGroup",
      "Properties": {
        "VpcId": {
          "Ref": "VPC"
        },
        "ScalingGroupName": "SSG",
        "RemovalPolicys": [
          "OldestScalingConfiguration",
          "OldestInstance"
        ],
        "MinSize": "2",
        "MaxSize": "2",
        "VSwitchId": {
          "Ref": "VSwitch-ECS"
        },
        "DefaultCooldown": 300
      }
    },
    "ScalingConfiguration": {
      "Metadata": {
        "GraphicId": "RosGraphicElement-13"
      },
      "Type": "ALIYUN::ESS::ScalingConfiguration",
      "Properties": {
        "SystemDiskCategory": "cloud_ssd",
        "InstanceType": {
          "Ref": "InstanceType"
        },
        "SecurityGroupId": {
          "Ref": "SG"
        },
        "ImageId": {
          "Ref": "ImageId"
        },
        "InternetMaxBandwidthOut": 1,
        "IoOptimized": "optimized",
        "ScalingGroupId": {
          "Ref": "ScalingGroup"
        },
        "InternetChargeType": "PayByTraffic",
        "InternetMaxBandwidthIn": 200,
        "ScalingConfigurationName": {
          "Ref": "ALIYUN::StackName"
        }
      }
    },
    "ScalingGroupEnable": {
      "Metadata": {
        "GraphicId": "RosGraphicElement-14"
      },
      "Type": "ALIYUN::ESS::ScalingGroupEnable",
      "Properties": {
        "ScalingConfigurationId": {
          "Ref": "ScalingConfiguration"
        },
        "ScalingGroupId": {
          "Ref": "ScalingGroup"
        }
      }
    },
    "Database": {
      "Type": "ALIYUN::RDS::DBInstance",
      "Properties": {
        "Engine": {
          "Ref": "Engine"
        },
        "EngineVersion": {
          "Ref": "EngineVersion"
        },
        "DBInstanceClass": {
          "Ref": "DBInstanceClass"
        },
        "DBInstanceStorage": {
          "Ref": "DBInstanceStorage"
        },
        "DBInstanceNetType": {
          "Ref": "DBInstanceNetType"
        },
        "SecurityIPList": "0.0.0.0/0",
        "VSwitchId": {
          "Ref": "VSwitch-RDS"
        },
        "VpcId": {
          "Ref": "VPC"
        },
        "AllocatePublicConnection": false
      }
    }
  },
  "Outputs": {
    "VRouterId": {
      "Value": {
        "Fn::GetAtt": [
          "VPC",
          "VRouterId"
        ]
      }
    },
    "VSwitch-ECS": {
      "Value": {
        "Fn::GetAtt": [
          "VSwitch-ECS",
          "VSwitchId"
        ]
      }
    },
    "RouteTableId": {
      "Value": {
        "Fn::GetAtt": [
          "VPC",
          "RouteTableId"
        ]
      }
    },
    "VpcId": {
      "Value": {
        "Fn::GetAtt": [
          "VPC",
          "VpcId"
        ]
      }
    },
    "VSwitch-SLB": {
      "Value": {
        "Fn::GetAtt": [
          "VSwitch-ECS",
          "VSwitchId"
        ]
      }
    },
    "VSwitch-RDS": {
      "Value": {
        "Fn::GetAtt": [
          "VSwitch-RDS",
          "VSwitchId"
        ]
      }
    },
    "ScalingGroupEnable": {
      "Value": {
        "Fn::GetAtt": [
          "ScalingGroupEnable",
          "LifecycleState"
        ]
      }
    },
    "ScalingGroup": {
      "Value": {
        "Fn::GetAtt": [
          "ScalingGroup",
          "ScalingGroupId"
        ]
      }
    },
    "ScalingConfiguration": {
      "Value": {
        "Fn::GetAtt": [
          "ScalingConfiguration",
          "ScalingConfigurationId"
        ]
      }
    },
    "DBInstanceId": {
      "Value": {
        "Fn::GetAtt": [
          "Database",
          "DBInstanceId"
        ]
      }
    },
    "PublicConnectionString": {
      "Value": {
        "Fn::GetAtt": [
          "Database",
          "PublicConnectionString"
        ]
      }
    },
    "PublicPort": {
      "Value": {
        "Fn::GetAtt": [
          "Database",
          "PublicPort"
        ]
      }
    },
    "InnerConnectionString": {
      "Value": {
        "Fn::GetAtt": [
          "Database",
          "InnerConnectionString"
        ]
      }
    },
    "InnerPort": {
      "Value": {
        "Fn::GetAtt": [
          "Database",
          "InnerPort"
        ]
      }
    }
  }
}

はまったところ

mysql.n1.micro.1
rds.mssql.s2.large
でやっていたら全然起動できない状態になりました。
下記のようなエラーコードがでました。

Resource CREATE failed: 〜〜〜〜〜 RequestId: XXXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
とかエラーがでて、長い間はまってました。

調べた結果
インスタンスタイプリスト - プロダクト紹介| Alibaba Cloud ドキュメントセンター
と照らし合わせて、起動するRDSに適したインスタンスタイプにしないとダメでした。
ここは今後詳しくしらべてまとめたいと思います。

まとめ

サンプルテンプレートに
ess_1slb_2rds_2ecs
というものがありました。
こちらを起動しても、今回に近しい構成になります。

学習してきた結果として、そこに行き着いたので
いままでの記事を逆に辿れば、どこをやっていけばいいのかポイントがわかりやすくなると思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?