プライベート接続(AWS PrivateLink)
AmiVoice API への AWS PrivateLink 接続をご利用いただくには、事前のお申し込みが必要です。まずはお問い合わせフォームからご連絡ください。
お申し込み後、弊社でお客様の AWS アカウントに対する接続許可を設定します。エンドポイントサービス名は、弊社からご案内します。本セクションでは、その後にお客様の VPC で行う VPC エンドポイントの作成から、弊社による接続承認、プライベート DNS の有効化、接続確認までの手順を説明します。
概要
AWS PrivateLink は、AWS 上のシステムから外部サービスへの通信を、インターネットに公開することなく、AWS のネットワーク内で接続できるサービスです。インターネットゲートウェイや NAT Gateway、パブリック IP アドレスを用意する必要がなく、ネットワーク構成を簡単にできます。通信がインターネットを経由しないため、外部から到達できる経路を持たずに、安全に利用できます。
AmiVoice API へは、お客様の VPC 内に作成した VPC エンドポイント(インタフェース型)を経由して接続します。お客様のアプリケーションは、従来と同じ API キーで AmiVoice API を呼び出せます。
本機能は AmiVoice API Private の専用機能ではありません。通常版でも、ご利用条件を満たす場合にご利用いただけます。
対象となるインタフェース / API と接続先
PrivateLink 接続では、AmiVoice API のうち以下の API を利用できます。
- 音声認識(同期 HTTP/WebSocket/非同期 HTTP)
- ユーザー辞書の操作 (ユーザー辞書登録/単語登録クラス名一覧取得)
- API キー発行
接続先は、同期 HTTP/WebSocket などで利用する接続先と、非同期 HTTP の接続先の 2 つに分かれています。
| 利用するインタフェース / API | 従来のホスト名 | PrivateLink 接続時のホスト名 |
|---|---|---|
| ・同期 HTTP / WebSocket ・ユーザー辞書の操作 ・API キー発行 | acp-api.amivoice.com | acp-api-private.amivoice.com |
| ・非同期 HTTP | acp-api-async.amivoice.com | acp-api-async-private.amivoice.com |
同期 HTTP/WebSocket と非同期 HTTP の両方を利用する場合は、それぞれに対応する VPC エンドポイントを作成してください。
マイページなど、上記以外のサービスは引き続きインターネット経由でのご利用となります。
接続ガイド
お申し込みからご利用開始までの流れは次のとおりです。弊社側の作業が入るところでは、完了のご連絡をお待ちください。
1. 事前準備
| 項目 | 内容 |
|---|---|
| リージョン | ap-northeast-1(東京) |
| 接続元 VPC | エンドポイントを作成する VPC |
| サブネット | エンドポイントを配置するサブネット(複数 AZ 推奨) |
| セキュリティグループ | エンドポイント用(インバウンド TCP 443 を許可) |
| VPC の DNS 設定 | DNS 解決とDNS ホスト名を有効にしておく |
VPC の DNS 設定が無効だと、後述のプライベート DNS 名が解決できません。
2. 接続のお申し込み
接続を許可するため、以下を弊社までご連絡ください。
- お客様の AWS アカウント ID(12 桁)
- 利用するインタフェース / API
- 同期 HTTP/WebSocket、ユーザー辞書の操作 (ユーザー辞書登録/単語登録クラス名一覧取得)、API キー発行
- 非同期 HTTP API
お使いのインタフェースごとに、エンドポイントサービス名をご案内します。名前は次の形式です。
com.amazonaws.vpce.ap-northeast-1.vpce-svc-XXXXXXXXXXXX
同期と非同期の両方をお使いの場合は、サービス名も 2 つご案内します。
弊社では、お知らせいただいた AWS アカウントを接続許可の対象に追加します。この設定が完了するまでは、サービス名を入力しても「サービス名が見つかりません」となります。完了しましたら弊社からご連絡しますので、その後に3. VPC エンドポイントの作成へお進みください。
3. VPC エンドポイントの作成
ご案内したエンドポイントサービス名ごとに、この手順を行います。同期と非同期の両方をお使いの場合は、エンドポイントを 2 つ作成することになります。
作成時には 「プライベート DNS 名を有効にする」を有効にしないでください。本サービスは接続の手動承認が必要なため、承認前にプライベート DNS を有効化しようとすると、次のエラーで作成に失敗します。
Private DNS can only be enabled after the endpoint connection is accepted by the owner ...
プライベート DNS は、4. 接続承認(弊社側)の完了後に、5. プライベート DNS 名の有効化の手順で有効化します。
マネジメントコンソールの場合
- VPC コンソール → エンドポイント → エンドポイントを作成
- タイプ:「NLB と GWLB を使用するエンドポイントサービス」 を選択
- サービス名に、弊社からご案内したサービス名を入力し、「サービスを検証」 をクリック
- 「サービス名が見つかりません」となる場合は、弊社側の許可設定が未完了の可能性があります(→ 2. 接続のお申し込みをご確認ください)
- VPCを選択
- 「プライベート DNS 名を有効にする」は OFF のまま(チェックを入れない)
- エンドポイントを配置するAZとサブネットを選択
- セキュリティグループを選択(インバウンド TCP 443 を許可しているもの)
- エンドポイントを作成
作成直後は、接続ステータスが「承諾の保留中(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 <お客様の 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. 接続承認(弊社側)
お客様が VPC エンドポイントを作成すると、弊社側で接続リクエストを受け取ります。弊社にて内容を確認のうえ承認します。承認後、エンドポイントのステータスが「使用可能(Available)」に変わります。
承認には弊社での確認作業が入るため、お時間をいただく場合があります。作成したVPC エンドポイント ID(vpce-で始まる ID)を添えてご連絡いただくと、意図した接続かどうかを確認できるためスムーズです。
5. プライベート DNS 名の有効化
弊社による承認が完了し、エンドポイントが「使用可能」になったら、プライベート DNS を有効化します。これにより、お客様の VPC 内で PrivateLink 接続時のホスト名が、作成したエンドポイントへ自動的に名前解決されます。お客様側で Route 53 等の追加 DNS 設定は不要です。
エンドポイントを 2 つ作成した場合は、それぞれで有効化してください。
マネジメントコンソールの場合
- VPC コンソール → エンドポイント → 対象のエンドポイントを選択
- アクション → プライベート DNS 名を変更
- 「このエンドポイントでプライベート 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 が返れば OK
API 呼び出しの確認(音声認識)
お手元の音声ファイル(例sample.wav)と AmiVoice API の API キーを用いて確認します。次は同期 HTTP インタフェースの例です。
curl https://acp-api-private.amivoice.com/v1/recognize \
-F u={APIキー} \
-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 キー)は従来と同じで、変更するのはホスト名だけです。
トラブルシューティング
| 症状 | 主な原因 | 対処 |
|---|---|---|
| 「サービスを検証」で見つからない | 弊社側の許可設定が未完了 | 完了のご連絡をお待ちください。届かない場合は弊社へご連絡(→手順 2) |
作成時にPrivate DNS can only be enabled after the endpoint connection is accepted ...エラー | 承認前にプライベート DNS を有効化しようとした | プライベート DNS を OFF にして作成し(→手順 3)、承認後に有効化(→手順 5) |
| ステータスが「承諾の保留中」のまま | 弊社の承認待ち | 作成した VPC エンドポイント ID を添えて弊社へご連絡(→手順 4) |
| プライベート DNS 名を有効化できない | 弊社側のドメイン検証が未完了、または VPC の DNS 設定が無効 | 弊社へご連絡(→手順 5)/VPC の DNS 解決・DNS ホスト名を有効化(→手順 1) |
| PrivateLink 用のホスト名が解決できない | プライベート DNS 名が未有効、または VPC の DNS 設定が無効 | プライベート DNS を有効化(→手順 5)/VPC の DNS 設定を確認(→手順 1) |
| 接続がタイムアウトする | エンドポイントのセキュリティグループが 443 を許可していない | セキュリティグループのインバウンドに TCP 443 を追加(→手順 1) |
| TLS 証明書エラー | ホスト名以外(IP 直指定等)で接続している | 必ず PrivateLink 用のホスト名で接続(→手順 7) |
| 非同期 HTTP だけつながらない | 非同期用の VPC エンドポイントを作成していない | 接続先を確認し、非同期用の VPC エンドポイントも作成(→手順 3) |
補足
- AWS 側の VPC エンドポイント利用料金(時間課金・データ処理料)は、AWS の料金体系に基づきお客様のアカウントに課金。インターネット接続のために NAT Gateway などを用意している場合は、その費用と合わせて検討が必要
- 複数 AZ にエンドポイントを配置することで、可用性が向上
- 本構成では、接続元アプリケーションの送信元 IP を AmiVoice API 側に保持せず、API キーでお客様を識別
設定や接続でご不明な点は、ページ上部のメニューにある技術的なお問い合わせからご連絡ください。これからお申し込みになる場合は、お問い合わせフォームをご利用ください。