-
Notifications
You must be signed in to change notification settings - Fork 701
feature/rename-serverless: add the docs and content about the AWS support #21441
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: feature/rename-serverless
Are you sure you want to change the base?
feature/rename-serverless: add the docs and content about the AWS support #21441
Conversation
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @qiancai, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request significantly enhances the documentation for TiDB Cloud Starter, primarily focusing on its integration and support for Amazon Web Services (AWS). It introduces new guides for AWS-specific features like Lambda and DMS integration, clarifies private endpoint setup for AWS, and provides detailed information on AWS Marketplace billing. The changes also update existing content to reflect the latest cloud platform availability and capabilities of TiDB Cloud.
Highlights
- Expanded AWS Support Documentation: This PR introduces significant new documentation and updates to existing content to reflect and guide users on TiDB Cloud Starter's enhanced support for AWS, including private endpoints, Lambda integration, and marketplace billing.
- New Integration Guides: Dedicated guides have been added for integrating TiDB Cloud Starter with AWS Lambda using CloudFormation and for connecting via AWS Database Migration Service (DMS).
- Clarified Private Endpoint Connections: The documentation for private endpoint connections has been separated and clarified, with a new guide specifically for AWS PrivateLink and updates to the existing guide to focus on Alibaba Cloud.
- Enhanced Marketplace Billing Information: Comprehensive instructions have been added for signing up and managing billing through both AWS and Alibaba Cloud Marketplaces, providing users with clearer payment options.
- General Documentation Updates: The Table of Contents, architecture concepts, and FAQ documents have been updated to incorporate the new AWS-related content and accurately reflect the current availability and features of TiDB Cloud Starter across various cloud platforms, including the addition of Azure to supported clouds.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/
folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments or fill out our survey to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request adds documentation and content related to AWS support for TiDB Cloud Starter. The changes include updates to the table of contents, new integration guides for AWS Lambda and AWS DMS, and modifications to existing documents to reflect AWS support. I've provided feedback to improve clarity, technical accuracy, and consistency, along with fixing some minor grammatical issues. The most critical issue is a likely incorrect instruction in the AWS Lambda integration guide that could cause user setup to fail. Overall, these changes are a great addition to the documentation.
- **S3Bucket**: enter the S3 bucket where you store the zip file. | ||
- **S3Key**: enter the S3 key. | ||
- **TiDBDatabase**: enter the TiDB Cloud cluster name. | ||
- **TiDBHost**: enter the host URL for TiDB Cloud database access. Enter `localhost`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The instruction to enter localhost
for TiDBHost
is likely incorrect for a TiDB Cloud cluster and will probably cause connection failures. You should instruct the user to enter their actual TiDB Cloud cluster host.
- **TiDBHost**: enter the host URL for TiDB Cloud database access. Enter `localhost`. | |
- **TiDBHost**: Enter the host URL for your TiDB Cloud database access. |
|
||
- Deploy the replication instance in private subnets and route traffic in the private subnets to public subnets. In this case, you need at least three subnets, two private subnets, and one public subnet. The two private subnets form a subnet group where the replication instance lives. Then you need to create a NAT gateway in the public subnet and route traffic of the two private subnets to the NAT gateway. For more information, see [Access the internet from a private subnet](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-scenarios.html#public-nat-internet-access). | ||
|
||
- To connect to a TiDB Cloud cluster via private endpoint, [set up a private endpoint](/tidb-cloud/set-up-private-endpoint-connections-serverless.md) first and deploy the replication instance in private subnets. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The link for setting up a private endpoint points to the Alibaba Cloud documentation. Since this document is about AWS DMS, it would be more helpful to link to the AWS PrivateLink documentation to avoid confusion.
- To connect to a TiDB Cloud cluster via private endpoint, [set up a private endpoint](/tidb-cloud/set-up-private-endpoint-connections-serverless.md) first and deploy the replication instance in private subnets. | |
- To connect to a TiDB Cloud cluster via private endpoint, [set up a private endpoint with AWS](/tidb-cloud/set-up-private-endpoint-connections-aws.md) first and deploy the replication instance in private subnets. |
|
||
## Restrictions | ||
|
||
- Currently, TiDB Cloud supports private endpoint connection to TiDB Cloud only when the endpoint service is hosted in AWS. If the service is hosted in Google Cloud, the private endpoint is not applicable. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This restriction seems to contradict information in other documents. This file is about AWS PrivateLink, but it says private endpoints are only supported for AWS. The document for Alibaba Cloud private endpoints states that both AWS and Alibaba Cloud are supported. To avoid confusion, please make the information consistent across documents.1
Style Guide References
- Currently, TiDB Cloud supports private endpoint connection to TiDB Cloud only when the endpoint service is hosted in AWS. If the service is hosted in Google Cloud, the private endpoint is not applicable. | |
- Currently, TiDB Cloud supports private endpoint connections when the endpoint service is hosted on AWS or Alibaba Cloud. If the service is hosted on another cloud provider, such as Google Cloud, the private endpoint is not applicable. |
Footnotes
|
||
> **Tip:** | ||
> | ||
> To learn how to connect to a TiDB Cloud cluster via Alibaba Cloud private endpoints, see [Connect to a TiDB Cloud Cluster via Alibaba Cloud Private Endpoint](/tidb-cloud/set-up-private-endpoint-connections-serverless.md). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For consistency, the link text should match the title of the target page, which is "Connect to TiDB Cloud via Alibaba Cloud Private Endpoint".
> To learn how to connect to a TiDB Cloud cluster via Alibaba Cloud private endpoints, see [Connect to a TiDB Cloud Cluster via Alibaba Cloud Private Endpoint](/tidb-cloud/set-up-private-endpoint-connections-serverless.md). | |
> To learn how to connect to a TiDB Cloud cluster via Alibaba Cloud private endpoints, see [Connect to TiDB Cloud via Alibaba Cloud Private Endpoint](/tidb-cloud/set-up-private-endpoint-connections-serverless.md). |
- **Stack name**: enter the stack name. | ||
- **S3Bucket**: enter the S3 bucket where you store the zip file. | ||
- **S3Key**: enter the S3 key. | ||
- **TiDBDatabase**: enter the TiDB Cloud cluster name. | ||
- **TiDBHost**: enter the host URL for TiDB Cloud database access. Enter `localhost`. | ||
- **TiDBPassword**: enter the password for TiDB Cloud database access. | ||
- **TiDBPort**: enter the port for TiDB Cloud database access. | ||
- **TiDBUser**: enter the user name for TiDB Cloud database access. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For consistency in instructional text, the descriptions for these parameters should start with a capital letter (e.g., "Enter" instead of "enter").
- **Stack name**: enter the stack name. | |
- **S3Bucket**: enter the S3 bucket where you store the zip file. | |
- **S3Key**: enter the S3 key. | |
- **TiDBDatabase**: enter the TiDB Cloud cluster name. | |
- **TiDBHost**: enter the host URL for TiDB Cloud database access. Enter `localhost`. | |
- **TiDBPassword**: enter the password for TiDB Cloud database access. | |
- **TiDBPort**: enter the port for TiDB Cloud database access. | |
- **TiDBUser**: enter the user name for TiDB Cloud database access. | |
- **Stack name**: Enter the stack name. | |
- **S3Bucket**: Enter the S3 bucket where you store the zip file. | |
- **S3Key**: Enter the S3 key. | |
- **TiDBDatabase**: Enter the TiDB Cloud cluster name. | |
- **TiDBHost**: Enter the host URL for TiDB Cloud database access. Enter `localhost`. | |
- **TiDBPassword**: Enter the password for TiDB Cloud database access. | |
- **TiDBPort**: Enter the port for TiDB Cloud database access. | |
- **TiDBUser**: Enter the user name for TiDB Cloud database access. |
|
||
### I cannot connect to a TiDB cluster via a private endpoint after enabling private DNS. Why? | ||
|
||
You might need to properly set the security group for your VPC endpoint in the AWS Management Console. Go to **VPC** > **Endpoints**. Right-click your VPC endpoint and select the proper **Manage security groups**. A proper security group within your VPC that allows inbound access from your EC2 instances on Port 4000 or a customer-defined port. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The phrasing in this troubleshooting step could be clearer. Using active voice and being more direct would help users follow the instructions more easily.1
Style Guide References
You might need to properly set the security group for your VPC endpoint in the AWS Management Console. Go to **VPC** > **Endpoints**. Right-click your VPC endpoint and select the proper **Manage security groups**. A proper security group within your VPC that allows inbound access from your EC2 instances on Port 4000 or a customer-defined port. | |
You might need to configure the security group for your VPC endpoint in the AWS Management Console. Go to **VPC** > **Endpoints**, right-click your VPC endpoint, and select **Manage security groups**. Ensure that the security group allows inbound access from your EC2 instances on Port 4000 or a customer-defined port. |
Footnotes
<div label="Alibaba Cloud Marketplace"> | ||
|
||
To link your TiDB Cloud account to a Alibaba Cloud billing account, take the following steps: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a grammatical error here. It should be "an Alibaba Cloud" instead of "a Alibaba Cloud".
To link your TiDB Cloud account to a Alibaba Cloud billing account, take the following steps: | |
To link your TiDB Cloud account to an Alibaba Cloud billing account, take the following steps: |
|
||
# Connect AWS DMS to TiDB Cloud clusters | ||
|
||
[AWS Database Migration Service (AWS DMS)](https://aws.amazon.com/dms/) is a cloud service that makes it possible to migrate relational databases, data warehouses, NoSQL databases, and other types of data stores. You can use AWS DMS to migrate your data from or into TiDB Cloud clusters. This document describes how to connect AWS DMS to a TiDB Cloud cluster. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The sentence can be rephrased to be more direct and active, which is preferred by the style guide.1
Style Guide References
[AWS Database Migration Service (AWS DMS)](https://aws.amazon.com/dms/) is a cloud service that makes it possible to migrate relational databases, data warehouses, NoSQL databases, and other types of data stores. You can use AWS DMS to migrate your data from or into TiDB Cloud clusters. This document describes how to connect AWS DMS to a TiDB Cloud cluster. | |
[AWS Database Migration Service (AWS DMS)](https://aws.amazon.com/dms/) is a cloud service that enables you to migrate relational databases, data warehouses, NoSQL databases, and other types of data stores. You can use AWS DMS to migrate your data to or from TiDB Cloud clusters. This document describes how to connect AWS DMS to a TiDB Cloud cluster. |
Footnotes
- AWS API Gateway: handles HTTP request routes. | ||
- TiDB Cloud Starter: a cloud-native distributed SQL database. | ||
|
||
AWS CloudFormation is used to create the necessary resources for the project, including the Secrets Manager, API Gateway, and Lambda Functions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For consistency with general English grammar, "Lambda Functions" should be "Lambda functions" as it's not a proper noun here.
AWS CloudFormation is used to create the necessary resources for the project, including the Secrets Manager, API Gateway, and Lambda Functions. | |
AWS CloudFormation is used to create the necessary resources for the project, including the Secrets Manager, API Gateway, and Lambda functions. |
|
||
6. If you want to create the endpoint as a **Target endpoint**, expand the **Endpoint settings** section, select the **Use endpoint connection attributes** checkbox, and then set **Extra connection attributes** to `Initstmt=SET FOREIGN_KEY_CHECKS=0;`. | ||
|
||
7. Configure the **KMS Key** and **Tags** sections if needed. Click **Create endpoint** to finish the instance creation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The step described is creating an endpoint, not an instance. To avoid confusion, it's better to say "to create the endpoint".
7. Configure the **KMS Key** and **Tags** sections if needed. Click **Create endpoint** to finish the instance creation. | |
7. Configure the **KMS Key** and **Tags** sections if needed. Click **Create endpoint** to create the endpoint. |
What is changed, added or deleted? (Required)
This PR adds the AWS related docs and content for TiDB Cloud Starter.
Which TiDB version(s) do your changes apply to? (Required)
Tips for choosing the affected version(s):
By default, CHOOSE MASTER ONLY so your changes will be applied to the next TiDB major or minor releases. If your PR involves a product feature behavior change or a compatibility change, CHOOSE THE AFFECTED RELEASE BRANCH(ES) AND MASTER.
For details, see tips for choosing the affected versions.
What is the related PR or file link(s)?
Do your changes match any of the following descriptions?