このトピックでは、Compute Nest で MySQL ソフトウェアパッケージを使用して、Virtual Private Cloud (VPC) ピアリング接続機能をサポートするシングルテナントのフルマネージドサービスインスタンスを作成する方法について説明します。この例では、MySQL ソフトウェアパッケージを使用して、単一の Elastic Compute Service (ECS) インスタンスに MySQL をデプロイします。
概要
この例では、MySQL データベースが単一の ECS インスタンスにデプロイされ、VPC ピアリング接続機能がデフォルトで有効になっています。顧客がサービスインスタンスをデプロイすると、顧客はサービスプロバイダーのアカウント内にデプロイされた MySQL データベースに内部ネットワーク経由で直接アクセスできます。サンプルサービスの GitHub リポジトリは mysql-managed-vpcpeering-demo です。
この例では、サービスは自動的に作成され、約 3 分かかります。サービスは、[Pending Submission] 状態になった後に作成されます。サービスは次の手順で作成されます。
GitHub リポジトリに保存されている MySQL ソフトウェアパッケージをファイルアーティファクトとして公開します。
サービスを作成し、ファイルアーティファクトに関連付けます。
次の表に、サービスによって提供されるプランを示します。
プラン | ECS インスタンスタイプ | vCPU とメモリ | システムディスク | パブリック帯域幅 |
Basic Edition | ecs.c6.large | コンピューティング最適化 c6: 2 vCPU と 4 GiB | パフォーマンスレベル 0 (PL0) 企業向け SSD (ESSD): 200 GiB | 固定帯域幅: 1 Mbit/s |
Standard Edition | ecs.c6.xlarge | コンピューティング最適化 c6: 4 vCPU と 8 GiB | PL0 ESSD: 200 GiB | 固定帯域幅: 1 Mbit/s |
Advanced Edition | ecs.c6.2xlarge | コンピューティング最適化 c6: 4 vCPU と 8 GiB | PL0 ESSD: 200 GiB | 固定帯域幅: 1 Mbit/s |
デプロイメントアーキテクチャ
サービスインスタンスごとに 1 つの ECS インスタンスのみがデプロイされ、ECS インスタンスが属するセキュリティグループはポート 3306 へのアクセスを許可します。各サービスインスタンスに対して VPC と vSwitch が作成されます。
サービス作成の課金
テスト用のサンプルサービスの作成には課金されません。サービスインスタンスの料金の詳細については、このトピックの「サービスインスタンスの課金」セクションをご参照ください。
RAM ユーザーに必要なポリシー
サービスは ECS インスタンスや VPC などのリソースにアクセスする必要があります。Resource Access Management (RAM) ユーザーとしてサービスインスタンスを作成する前に、RAM ユーザーに関連リソースの権限を付与する必要があります。RAM ユーザーに権限を付与する方法の詳細については、「RAM ユーザーに権限を付与する」をご参照ください。
次の表に、RAM ユーザーに必要なポリシーを示します。
ポリシー | 説明 |
AliyunECSFullAccess | ECS に対する完全な権限。 |
AliyunVPCFullAccess | VPC に対する完全な権限。 |
AliyunROSFullAccess | Resource Orchestration Service (ROS) に対する完全な権限。 |
AliyunComputeNestUserFullAccess | Compute Nest に対する顧客の完全な権限。 |
AliyunComputeNestSupplierFullAccess | Compute Nest に対するサービスプロバイダーの完全な権限。 |
AliyunCDTFullAccess | Cloud Data Transfer (CDT) に対する完全な権限。 |
サービスインスタンスの課金
Compute Nest のサービスインスタンスでは、次の課金項目に対して課金されます。
選択された vCPU とメモリの仕様
システムディスクのタイプと容量
パブリック帯域幅
この例では、次の課金方法を使用できます。
従量課金 (時間単位)
サブスクリプション
サービスインスタンスの推定コストは、サービスインスタンスの作成時にリアルタイムで表示されます。
サービスインスタンスのデプロイ
デプロイメントパラメーター
セクション | パラメーター | 説明 |
基本構成 | root および admin アカウントのパスワード | データベースへのログインに使用される root または admin アカウントのパスワード。値は 8~32 文字の長さで、文字、数字、および次の特殊文字を含めることができます: ! @ # $ % ^ & * - + = _ |
ネットワーク構成 | VSwitch 利用可能ゾーン | サービスプロバイダーのアカウント内でリソースが作成されるゾーン。 |
ネットワーク構成 | VPC CIDR IPv4 ブロック | サービスインスタンス用に作成される VPC の IPv4 CIDR ブロック。VPC の IPv4 CIDR ブロックとして、Request for Comments (RFC) で定義されているプライベート CIDR ブロック (10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 など) を指定することをお勧めします。 |
ネットワーク構成 | VSwitch CIDR ブロック | サービスインスタンス用に作成される vSwitch の CIDR ブロック。 |
プロシージャ
サービスプロバイダーから提供されたサービスインスタンスのデプロイメント URL をクリックします。サービスインスタンスのデプロイメントページで、画面の指示に従ってパラメーターを設定します。
[ネットワーク構成] セクションで、作成する VPC の IPv4 CIDR ブロックと vSwitch の CIDR ブロックを入力します。ピアリング接続を作成する場合は、[ネットワーク構成] セクションでピアリング接続用の VPC を選択します。選択した VPC の CIDR ブロックは、サービスインスタンス用に作成される VPC の CIDR ブロックと重複できないことに注意してください。
注文確認ページに移動します。
注文を確認し、サービス契約を読んで同意し、[今すぐ作成] をクリックします。
デプロイメントが完了するまで待ちます。
[ネットワーク設定] タブには、ピアリング接続に関する情報が表示されます。[サービスインスタンスの作成] ページで [VPC ピアリング接続] をオンにした場合にのみ、ピア接続が作成され、このタブに表示されます。
サービスインスタンスを使用します。サービスインスタンスは VPC ピアリング接続機能をサポートしています。内部ネットワーク経由で VPC ピアリング接続を使用してサービスインスタンスにアクセスできます。内部ネットワーク経由でサービスインスタンスにアクセスするには、次の手順を実行します。
サービスインスタンスの詳細ページに移動します。[概要] タブの [今すぐ使用] セクションで [VisitUrl] を見つけ、MySQL データベースのプライベート IP アドレスを取得します。
対応する vSwitch に ECS インスタンスを作成します。次に、MySQL クライアントをインストールします。
yum install mysql or apt install mysql-clientECS インスタンス上の MySQL クライアントを使用して、プライベート IP アドレスを使用して MySQL データベースに接続します。
サービスの詳細
MySQL Community Edition のインストールパッケージは GitHub リポジトリに保存されています。サービス作成中に、インストールパッケージは Compute Nest アーティファクトとして公開され、インストールコマンドは ROS テンプレートに書き込まれます。ROS テンプレートが実行されると、MySQL データベースが自動的にインストールされます。Compute Nest は {{ computenest::file::MySQL }} プレースホルダーをファイルアーティファクトの HTTP URL に置き換えます。
wget '{{ computenest::file::MySQL }}' -O mysql-community-release-el6-5.noarch.rpm
rpm -ivh mysql-community-release-el6-5.noarch.rpm
yum repolist all | grep mysql
yum install mysql-community-server -yファイル
ファイル | 説明 |
config.yaml | サービス作成用の設定ファイル。computenest-cli はこの設定ファイルに基づいてサービスを作成します。 |
parameters.yaml | VpcId や VSwitchId など、サービスプロバイダーが設定するネットワークパラメーターを指定するファイル。この例では、このファイルはシングルテナントのフルマネージドサービスをデプロイするために必要なパラメーターを指定します。 |
artifact/mysql-community-release-el6-5.noarch.rpm | MySQL Community Edition のインストールパッケージ。サービス作成中に、インストールパッケージは Compute Nest アーティファクトとして公開されます。 |
icons/service_logo.jpg | サービスのデフォルトのロゴ。 |
templates/parameters.yaml | 顧客が設定するパラメーターを指定するファイル。顧客は、シングルテナントのフルマネージドサービスに対して、いくつかのパラメーターを設定するだけで済みます。 |
templates/template.yaml | ROS テンプレートファイル。ROS はテンプレートに基づいてすべてのリソースを自動的に作成します。 |
`templates/template.yaml` ファイルには、次のセクションが含まれています。
Parameters: 課金方法、インスタンスタイプ、VPC の IPv4 CIDR ブロック、vSwitch の CIDR ブロック、インスタンスのパスワード、ゾーンなど、顧客が設定する必要があるパラメーターを定義します。ZoneId: Type: String AssociationProperty: ALIYUN::ECS::Instance:ZoneId Label: en: VSwitch Available Zone zh-cn: 可用区 # データベースへのログインに使用される root アカウントのパスワード。 Password: # このパラメーターをクエリすると、アスタリスク (*) のみが返されます。 NoEcho: true Type: String Description: en: 'データベースの root アカウントのパスワード、8~32 文字で、大文字と小文字の英字、数字、および特殊文字 (!@#$%^&*-+=_) を含みます。' zh-cn: 数据库root账户密码,长度8-32个字符,可包含大小字母、数字及特殊符号(包含:!@#$%^&*-+=_)。 Label: en: Root Account Password zh-cn: 数据库root账户密码 ConstraintDescription: en: '8~32 文字で、大文字と小文字の英字、数字、および特殊文字 (!@#$%^&*-+=_) を含みます。' zh-cn: 8-32个字符,可包含大小字母、数字及特殊符号(包含:!@#$%^&*-+=_)。 MinLength: '8' MaxLength: '32' AssociationProperty: ALIYUN::ECS::Instance::Password # 作成される VPC の IPv4 CIDR ブロック。 VpcCidrBlock: Type: String Label: en: VPC CIDR IPv4 Block zh-cn: 专有网络IPv4网段 Description: zh-cn: VPCのip地址段范围,<br>您可以使用以下的ip地址段或其子网:<br><font color='green'>[10.0.0.0/8]</font><br><font color='green'>[172.16.0.0/12]</font><br><font color='green'>[192.168.0.0/16]</font> en: 'CidrBlock 形式の VPC の IP アドレス範囲。<br>次の IP アドレス範囲とそのサブネットを使用できます。<br><font color=''green''>[10.0.0.0/8]</font><br><font color=''green''>[172.16.0.0/12]</font><br><font color=''green''>[192.168.0.0/16]</font>' AssociationProperty: ALIYUN::VPC::VPC::CidrBlock Default: 192.168.0.0/16 # 作成される vSwitch の CIDR ブロック。 VSwitchCidrBlock: Type: String Label: en: VSwitch CIDR Block zh-cn: 交换机子网网段 Description: zh-cn: 必须属于VPC的子网段。 en: VPC のサブネットセグメントに属している必要があります。 AssociationProperty: ALIYUN::VPC::VSwitch::CidrBlock AssociationPropertyMetadata: VpcCidrBlock: VpcCidrBlock Default: 192.168.1.0/24 # ECS インスタンスのインスタンスタイプ。 EcsInstanceType: Type: String Label: en: Instance Type zh-cn: Ecs实例类型 AssociationProperty: ALIYUN::ECS::Instance::InstanceType AllowedValues: - ecs.c6.large - ecs.c6.xlarge - ecs.c6.2xlarge - ecs.c6.4xlargeResources: VPC、vSwitch、ECS インスタンス、Server Load Balancer (SLB) インスタンスなど、作成するリソースを定義します。# Vpc EcsVpc: Type: ALIYUN::ECS::VPC Properties: CidrBlock: Ref: VpcCidrBlock VpcName: Ref: ALIYUN::StackName # vSwitch。 EcsVSwitch: Type: ALIYUN::ECS::VSwitch Properties: ZoneId: Ref: ZoneId VpcId: Ref: EcsVpc CidrBlock: Ref: VSwitchCidrBlock EcsSecurityGroup: Type: 'ALIYUN::ECS::SecurityGroup' Properties: VpcId: Ref: VpcId SecurityGroupIngress: - Priority: 1 PortRange: 3306/3306 NicType: internet SourceCidrIp: 0.0.0.0/0 IpProtocol: tcp # ECS インスタンス。 EcsInstanceGroup: Type: ALIYUN::ECS::InstanceGroup Properties: # I/O 最適化インスタンス。 IoOptimized: optimized ZoneId: Ref: ZoneId DiskMappings: - Category: cloud_essd Device: /dev/xvdb Size: 200 SystemDiskSize: 40 # cloud-init によって実行されるコマンド。 # 実行ログは次のファイルで確認できます: /var/log/cloud-init.log /var/log/cloud-init-output.log。 # スクリプトは /var/lib/cloud/instance/scripts/part-001 です。トラブルシューティングのために sh コマンドを実行できます。 UserData: Fn::Sub: - | #!/bin/sh # ネットワークの準備が整うまでしばらくスリープします。 sleep 10 # その他のコマンドは省略されています。詳細については、「templates/template.yaml」をご参照ください。 # 従量課金方法が使用されます。 InstanceChargeType: PostPaid MaxAmount: 1 # ESSD がシステムディスクとして使用されます。 SystemDiskCategory: cloud_essd # インスタンスの名前。 InstanceName: Ref: ALIYUN::StackName VpcId: Ref: VpcId SecurityGroupId: Ref: EcsSecurityGroup VSwitchId: Ref: VSwitchId # CentOS 7.9 イメージが使用されます。別のイメージを使用する場合は、UserData セクションのスクリプトがそれに応じて変更されていることを確認してください。 ImageId: "centos_7_9_x64_20G_alibase_20220727.vhd" InstanceType: Ref: EcsInstanceType # ホスト名。 HostName: Ref: ALIYUN::StackName # ECS インスタンスへのログインに使用されるパスワード。 Password: Ref: Password # インスタンスにパブリック IP アドレスを割り当てるかどうかを指定します。 AllocatePublicIP: true InternetMaxBandwidthOut: 1Outputs: Compute Nest コンソールの [概要] タブに表示される情報を定義します。Outputs: MysqlUserName: Label: MySQL データベースへのログインに使用されるユーザー名。 Value: admin VisitUrl: Label: プライベートエンドポイント。 Description: zh-cn: 私网访问地址 en: プライベートアドレス Value: Fn::Sub: - mysql://${ServerAddress}:3306 - ServerAddress: Fn::Select: - 0 - Fn::GetAtt: - EcsInstanceGroup - PrivateIps