跳至主要内容

私有连接(AWS PrivateLink)

重要

如需使用连接到 AmiVoice API 的 AWS PrivateLink 连接,需要事先申请。请首先通过咨询表单与我们联系。

申请后,本公司会为您的 AWS 账户设置连接许可,并向您告知端点服务名称。本节说明此后您在自己的 VPC 中进行的操作,从创建接口端点到本公司进行连接批准、启用私有 DNS、确认连接为止的步骤。

概要​

AWS PrivateLink 是一项可以将 AWS 上的系统到外部服务的通信在不向互联网公开的情况下,在 AWS 网络内进行连接的服务。无需准备互联网网关、NAT Gateway 或公有 IP 地址,可以简化网络配置。由于通信不经由互联网,因此可以在不具有从外部可达路径的情况下安全地使用。

对于 AmiVoice API,通过在您的 VPC 内创建的接口端点进行连接。您的应用程序可以使用与以往相同的 API Key 调用 AmiVoice API。

本功能并非 AmiVoice API Private 的专用功能。在满足使用条件的情况下,普通版也可以使用。

对象接口 / API 与连接目标​

在 PrivateLink 连接中,可以使用 AmiVoice API 中的以下 API。

连接目标分为两个:在同步 HTTP / WebSocket 等中使用的连接目标,以及异步 HTTP 的连接目标。

使用的接口 / API以往的主机名PrivateLink 连接时的主机名
・同步 HTTP / WebSocket
・用户词典操作
・API Key 发行
acp-api.amivoice.comacp-api-private.amivoice.com
・异步 HTTPacp-api-async.amivoice.comacp-api-async-private.amivoice.com

如果同时使用同步 HTTP / WebSocket 和异步 HTTP,请分别创建对应的 VPC 接口端点。

MyPage 等上述以外的服务,仍然通过互联网使用。

连接指南​

1. 事前准备​

项目内容
区域ap-northeast-1(东京)
连接源 VPC创建端点的 VPC
子网放置端点的子网(推荐多个 AZ)
安全组端点用(允许入站 TCP 443)
VPC 的 DNS 设置预先将DNS 解析和DNS 主机名设为启用

如果 VPC 的 DNS 设置被禁用,则无法解析后述的私有 DNS 名。

2. 事前申请​

为了许可连接,请将以下内容联系本公司。

本公司进行许可设置后,会针对您所使用的每个接口,向您告知端点服务名称。名称为以下格式。

  • com.amazonaws.vpce.ap-northeast-1.vpce-svc-XXXXXXXXXXXX

如果同时使用同步和异步,服务名称也会告知 2 个。

3. 创建接口端点​

针对已告知的每个端点服务名称,进行此步骤。如果同时使用同步和异步,将创建 2 个端点。

警告

创建时请勿启用「启用私有 DNS 名」。由于本服务需要手动批准连接,如果在批准前尝试启用私有 DNS,将因以下错误而创建失败。

Private DNS can only be enabled after the endpoint connection is accepted by the owner ...

私有 DNS 在4. 连接批准(本公司侧)完成后,按照5. 启用私有 DNS 名的步骤启用。

管理控制台的情况​

  1. VPC 控制台 → 端点 → 创建端点
  2. 类型:选择 「使用 NLB 和 GWLB 的端点服务」
  3. 在服务名称中输入本公司告知的服务名称,点击 「验证服务」
    • 如果显示「找不到服务名称」,则可能是本公司侧的许可设置尚未完成(→ 请确认2. 事前申请)
  4. 选择 VPC
  5. 「启用私有 DNS 名」保持 OFF(不勾选)
  6. 选择放置端点的 AZ 和子网
  7. 选择安全组(允许入站 TCP 443 的安全组)
  8. 创建端点

创建后立即,连接状态将变为「待接受(Pending acceptance)」。

AWS CLI 的情况​

aws ec2 create-vpc-endpoint \
--vpc-endpoint-type Interface \
--service-name com.amazonaws.vpce.ap-northeast-1.vpce-svc-XXXXXXXXXXXX \
--vpc-id <CUSTOMER_VPC_ID> \
--subnet-ids <subnet-id-1> [<subnet-id-2> ...] \
--security-group-ids <sg-id> \
--no-private-dns-enabled \
--region ap-northeast-1 \
--tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=acp-api-private-ep}]'

创建 2 个端点时,若按接口更改Name标签,之后会更容易区分。

4. 连接批准(本公司侧)​

当您创建端点后,本公司侧会收到连接请求。本公司确认内容后进行批准。批准后,端点的状态将变为「可用(Available)」。

备注

由于批准需要本公司的确认作业,可能会花费一些时间。如果告知我们已创建,会更加顺畅。

5. 启用私有 DNS 名​

本公司的批准完成,端点变为「可用(Available)」后,启用私有 DNS。由此,在您的 VPC 内,PrivateLink 连接时的主机名会自动解析到您所创建的端点。您侧无需 Route 53 等额外的 DNS 设置。

创建了 2 个端点时,请分别启用。

管理控制台的情况​

  1. VPC 控制台 → 端点 → 选择目标端点
  2. 操作 → 修改私有 DNS 名
  3. 将 「在此端点上启用私有 DNS 名」设为 ON → 保存

AWS CLI 的情况​

aws ec2 modify-vpc-endpoint \
--vpc-endpoint-id <vpce-id> \
--private-dns-enabled \
--region ap-northeast-1
备注
  • 此操作能够启用,仅限于本公司侧的域验证已完成的情况
  • VPC 的DNS 解析和DNS 主机名处于启用状态(1. 事前准备)

6. 确认连接​

启用私有 DNS 后,从您 VPC 内的实例进行确认。创建了 2 个端点时,请分别确认。

确认名称解析​

# 同步 HTTP、WebSocket 用
dig +short acp-api-private.amivoice.com

# 非同步 HTTP 用
dig +short acp-api-async-private.amivoice.com

# 如果返回 172.x.x.x 等私有 IP 则正常

确认 API 连通(语音识别)​

使用您手头的音频文件(例sample.wav)和 AmiVoice API 的 API 密钥进行确认。以下是同步 HTTP 接口的示例。

curl https://acp-api-private.amivoice.com/v1/recognize \
-F u={API_KEY} \
-F d="grammarFileNames=-a-general" \
-F a=@sample.wav

如果返回识别结果的 JSON(text字段等),则连接正常。

异步 HTTP 接口的情况,请将主机名替换为acp-api-async-private.amivoice.com。步骤请参阅异步 HTTP 接口。

7. 从应用程序使用​

确认连接后,请将应用程序的 AmiVoice API 连接目标主机更改为 PrivateLink 连接时的主机名。同步 HTTP 和 WebSocket 为 acp-api-private.amivoice.com,异步 HTTP 为 acp-api-async-private.amivoice.com。API 的路径・参数・认证(API 密钥)与以往相同,更改的只有主机名。

故障排除​

症状主要原因处理
创建时出现Private DNS can only be enabled after the endpoint connection is accepted ...错误在批准前尝试启用私有 DNS以私有 DNS OFF 创建 → 批准后按照5. 启用私有 DNS 名的步骤启用
在「验证服务」中找不到本公司侧的许可设置尚未完成将您的 AWS 账户 ID 联系本公司
连接超时端点的安全组未允许 443在 SG 的入站中添加 TCP 443
无法启用私有 DNS 名本公司侧的域验证尚未完成,或 VPC 的 DNS 设置被禁用联系本公司/启用 VPC 的 DNS 解析・DNS 主机名
无法解析 PrivateLink 用的主机名私有 DNS 名未启用,或 VPC DNS 设置被禁用在5. 启用私有 DNS 名中启用私有 DNS/确认 VPC DNS 设置
状态一直是「待接受(Pending acceptance)」等待本公司批准联系本公司
只有异步 HTTP 连不上未创建异步用的端点确认对象接口与连接目标,也创建异步用的端点
TLS 证书错误以主机名以外(直接指定 IP 等)进行连接请务必以 PrivateLink 用的主机名连接

补充​

  • AWS 侧的 VPC 端点使用费用(按时间计费・数据处理费),基于 AWS 的计费体系计入您的账户。如果为了互联网连接而准备了 NAT Gateway 等,需要连同其费用一并考虑
  • 通过在多个 AZ 中放置端点,可提高可用性
  • 在本配置中,不在 AmiVoice API 侧保留连接源应用程序的发送源 IP,而是通过 API 密钥识别您

如有不明之处,请咨询本公司支持窗口。