跳至主要内容

プライベート接続(AWS PrivateLink)

重要

AmiVoice API への AWS PrivateLink 接続をご利用いただくには、事前のお申し込みが必要です。まずはお問い合わせフォームからご連絡ください。

お申し込み後、弊社でお客様の AWS アカウントに対する接続許可を設定し、エンドポイントサービス名をご案内します。本セクションでは、その後にお客様の VPC で行うインタフェースエンドポイントの作成から、弊社による接続承認、プライベート DNS の有効化、接続確認までの手順を説明します。

概要

AWS PrivateLink は、AWS 上のシステムから外部サービスへの通信を、インターネットに公開することなく、AWS のネットワーク内で接続できるサービスです。インターネットゲートウェイや NAT Gateway、パブリック IP アドレスを用意する必要がなく、ネットワーク構成を簡単にできます。通信がインターネットを経由しないため、外部から到達できる経路を持たずに、安全に利用できます。

AmiVoice API へは、お客様の VPC 内に作成したインタフェースエンドポイントを経由して接続します。お客様のアプリケーションは、従来と同じ API キーで AmiVoice API を呼び出せます。

本機能は AmiVoice API Private の専用機能ではありません。通常版でも、ご利用条件を満たす場合にご利用いただけます。

対象となるインタフェース / API と接続先

PrivateLink 接続では、AmiVoice API のうち以下の API を利用できます。

接続先は、同期 HTTP/WebSocket などで利用する接続先と、非同期 HTTP の接続先の 2 つに分かれています。

利用するインタフェース / API従来のホスト名PrivateLink 接続時のホスト名
・同期 HTTP / WebSocket
・ユーザー辞書の操作
・API キー発行
acp-api.amivoice.comacp-api-private.amivoice.com
・非同期 HTTPacp-api-async.amivoice.comacp-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. 事前申請

接続を許可するため、以下を弊社までご連絡ください。

弊社で許可設定を行った後、お使いのインタフェースごとに、エンドポイントサービス名をご案内します。名前は次の形式です。

  • 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. エンドポイントを作成

作成直後は、接続ステータスが「承諾の保留中(pendingAcceptance)」になります。

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. 接続承認(弊社側)

お客様がエンドポイントを作成すると、弊社側で接続リクエストを受け取ります。弊社にて内容を確認のうえ承認します。承認後、エンドポイントのステータスが「使用可能(available)」に変わります。

备注

承認には弊社での確認作業が入るため、お時間をいただく場合があります。作成された旨をご連絡いただくとスムーズです。

5. プライベート DNS 名の有効化

弊社による承認が完了し、エンドポイントが「使用可能」になったら、プライベート 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 が返れば 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 キー)は従来と同じで、変更するのはホスト名だけです。

トラブルシューティング

症状主な原因対処
作成時に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 設定を確認
ステータスが「承諾の保留中」のまま弊社の承認待ち弊社へご連絡
非同期 HTTP だけつながらない非同期用のエンドポイントを作成していない対象となるインタフェースと接続先を確認し、非同期用のエンドポイントも作成
TLS 証明書エラーホスト名以外(IP 直指定等)で接続している必ず PrivateLink 用のホスト名で接続

補足

  • AWS 側の VPC エンドポイント利用料金(時間課金・データ処理料)は、AWS の料金体系に基づきお客様のアカウントに課金。インターネット接続のために NAT Gateway などを用意している場合は、その費用と合わせて検討が必要
  • 複数 AZ にエンドポイントを配置することで、可用性が向上
  • 本構成では、接続元アプリケーションの送信元 IP を AmiVoice API 側に保持せず、API キーでお客様を識別

ご不明点は弊社サポート窓口までお問い合わせください。