Amazon Translateは、AWSのニューラル機械翻訳APIです。料金は翻訳した文字数の従量課金で、標準のテキスト翻訳は100万文字あたり15USDです。この記事では、料金と無料枠の範囲、Python(boto3)のtranslate_textで日本語を扱うときの上限と設定、機械翻訳の訳文を人が直すポストエディットの体制までを、AWS公式ドキュメントの記載に沿って説明します(2026年10月時点)。
まとめ:Amazon Translateの料金・使い方・注意点
- 料金:標準テキスト翻訳とバッチ文書翻訳は100万文字あたり15USD。Word(.docx)のリアルタイム文書翻訳だけ30USD、対訳データを使うActive Custom Translationは60USD。
- 無料枠:最初の翻訳リクエストから12か月、月200万文字。リアルタイム文書翻訳は対象外。
- 上限:
TranslateTextの入力は10,000バイト。一般的なひらがな・漢字はUTF-8で1文字3バイトですが、4バイトの漢字などもあるため、文字数ではなく実際のバイト数で分割します。 - 日本語の設定:敬語(Formality)と不適切語のマスク(Profanity)は日本語に効く。出力を短くするBrevityは日本語に効かない。
- 見落としやすい課金:ソース言語を
autoにするとAmazon Comprehendが呼ばれ、言語検出の料金が別にかかることがある。 - ポストエディット:AWSが示していたAmazon A2Iによる人手レビュー構成は、2026年7月30日から新規顧客が使えない。いまは翻訳管理システムか、Amazon Bedrockの生成AIで後編集を組む。
Amazon Translateの翻訳方式と入力の上限
Amazon Translateは、テキストと言語コードを渡すと訳文を返すフルマネージドのAPIです。翻訳モデルの学習やGPUの用意は要りません。翻訳の呼び出し方は3つあり、入力できる形式と上限がそれぞれ違います。上限値はAmazon Translateのクォータ一覧の記載です。
| 方式 | API | 入力形式 | 主な上限 |
|---|---|---|---|
| リアルタイムのテキスト翻訳 | TranslateText | 文字列 | 10,000バイト |
| リアルタイムの文書翻訳 | TranslateDocument | txt・HTML・docx | 1文書100KB・英語との翻訳のみ |
| 非同期のバッチ翻訳 | StartTextTranslationJob | txt・HTML・docx・pptx・xlsx・XLIFF | 1ジョブ5GB・1文書20MB・翻訳対象テキスト1MB |
チャットや画面表示のようにその場で訳文が要る処理はTranslateText、S3に置いた大量のファイルを訳すならバッチ翻訳を使います。Excel(.xlsx)とPowerPoint(.pptx)はリアルタイムでは受け付けず、バッチ翻訳だけが対応します。
対応75言語と翻訳方式ごとの言語ペア制限
テキスト翻訳は日本語を含む75言語間に対応しますが、リアルタイム文書翻訳はTranslateDocumentの仕様により、英語から対応言語、または対応言語から英語への翻訳に限られます(言語の一覧は対応言語と言語コード)。ソース言語とターゲット言語に同じ言語を指定したリクエストは課金されません。
ソース言語コードをautoにすると言語を自動判定します。ただし判定はAmazon TranslateではなくAmazon Comprehendが行います。公式ドキュメントはauto指定で言語検出の料金がかかる場合があると注記しており、自動言語検出の説明ではComprehendの料金ページを案内しています。判定の確信度が低いとDetectedLanguageLowConfidenceExceptionが返ります。入力の言語が決まっている業務システムでは、enやjaを明示してください。
Amazon Translateの料金と無料利用枠
料金は翻訳した文字数に対する従量課金です。Amazon Translateの料金ページの単価は次のとおりです(米ドル建て・2026年10月時点)。
| 翻訳の種類 | 100万文字あたり | 無料利用枠 |
|---|---|---|
| 標準テキスト翻訳 | 15USD | 月200万文字・12か月 |
| バッチ文書翻訳 | 15USD | 月200万文字・12か月 |
| リアルタイム文書翻訳(txt・HTML) | 15USD | なし |
| リアルタイム文書翻訳(docx) | 30USD | なし |
| Active Custom Translation | 60USD | 月50万文字・2か月 |
2倍の30USDになるのは、Wordファイルをリアルタイムで訳す場合だけです。同じdocxでもS3に置いてバッチ翻訳に回せば15USDで済みます。月10億文字を超える継続利用はボリューム割引の相談窓口が案内されています。
無料利用枠の起算点と対象外の翻訳
無料枠は、アカウントの作成日ではなく最初の翻訳リクエストを送った日から12か月です。使い残した文字数は翌月に繰り越されません。リアルタイム文書翻訳は無料枠の対象外なので、コンソールでWordファイルを試すと初月から課金されます。
見積もりで漏れやすい3つの費用
1つ目は多言語への同時翻訳です。文字数は入力側で数えるため、同じ1万文字を英語・中国語・韓国語の3言語へ訳すと3万文字分の料金になります。2つ目は前述のauto指定に伴う言語検出の料金です。3つ目は対訳データの保存料で、アカウントあたり200GBまでは無料、超過分は1GBあたり月0.023USDです。
コンソールでAmazon Translateを試す手順
コードを書く前に訳文の傾向を確かめるなら、AWSマネジメントコンソールで十分です。
- コンソールでAmazon Translateを開き、左メニューの「リアルタイム翻訳」を選ぶ。
- ソース言語(自動検出も可)とターゲット言語に日本語を選び、テキストを貼り付ける。
- 「追加設定」で敬語(Formality)や不適切語のマスク(Profanity)を切り替え、訳文の違いを見る。
- 「ドキュメント」タブではtxt・HTML・docxをアップロードして訳せる。ただし原文か訳文の一方は英語である必要があり、日本語に訳す場合は英語の文書を使う。docxは無料枠の対象外で100万文字あたり30USDかかる。
導入前の評価では、実際に訳す予定の文書を数種類流し、固有名詞の訳ゆれと敬体・常体の混在を確認しておくと、次章の用語集や設定をどこまで使うかを決めやすくなります。
boto3によるTranslateTextの呼び出し例
アプリケーションに組み込むときは、AWS SDK for Python(boto3)のtranslate_textを使います。IAMでtranslate:TranslateTextを許可した認証情報を用意すれば、数行で動きます。認証情報の探索順やリトライ回数の設定はboto3のclientとresourceの違い・認証・リトライの解説にまとめています。
import boto3
client = boto3.client("translate", region_name="ap-northeast-1")
res = client.translate_text(
Text="Thank you for your order. We will ship it within 3 days.",
SourceLanguageCode="en",
TargetLanguageCode="ja",
Settings={"Formality": "FORMAL", "Profanity": "MASK"},
)
print(res["TranslatedText"])
print(res.get("AppliedSettings")) # 適用された設定。非対応の言語ならNone
東京リージョン(ap-northeast-1)のエンドポイントで呼べます。Settingsに入れた値が実際に効いたかは、戻り値のAppliedSettingsで確かめられます。
日本語入力の10,000バイト制限と分割処理
TranslateTextのAPIリファレンスは、入力の上限を「10,000バイト」と定め、文字セットによっては10,000文字より少なくなると注記しています。一般的なひらがな・漢字だけなら約3,300字が目安ですが、UTF-8では4バイトの漢字などもあるため、実際の上限文字数は入力によって変わります。文字数で区切ると上限を超えるため、バイト数で区切ります。
import re
def split_by_bytes(text, limit=10_000):
chunks, buf = [], ""
for sentence in re.split(r"(?<=[。!?\n])", text):
if len((buf + sentence).encode("utf-8")) <= limit:
buf += sentence
continue
if buf:
chunks.append(buf)
buf = sentence
while len(buf.encode("utf-8")) > limit: # 句点の無い長文は文字単位で切る
cut = len(buf.encode("utf-8")[:limit].decode("utf-8", "ignore"))
chunks.append(buf[:cut])
buf = buf[cut:]
if buf:
chunks.append(buf)
return chunks
long_text = "これは翻訳対象の日本語です。" * 1000 # 実際の入力に置き換える
for chunk in split_by_bytes(long_text):
res = client.translate_text(Text=chunk, SourceLanguageCode="ja", TargetLanguageCode="en")
print(res["TranslatedText"])
句点・感嘆符・疑問符・改行の直後を優先して区切ります。ただし1文だけで上限を超える場合は文の途中でも分割するため、前後の文脈が失われる可能性があります。長文を繰り返し翻訳し、即時応答が不要なら、S3に置いてバッチ翻訳する構成を検討します。標準テキスト翻訳とバッチ文書翻訳の文字単価は同じで、バッチではS3の費用も見積もります。
Formality・Profanity・Brevityの日本語対応範囲
Settingsで指定できる3つの設定は、対応する言語がそれぞれ違います。
| 設定 | 値 | 日本語への翻訳 | 使える方式 |
|---|---|---|---|
| Formality | FORMAL/INFORMAL | 対応 | リアルタイム・バッチ |
| Profanity | MASK | 対応 | リアルタイム・バッチ |
| Brevity | ON | 非対応 | リアルタイムのテキスト翻訳のみ |
公式ドキュメントでは、FormalityのFORMALは日本語では丁寧語、INFORMALはくだけた表現になると説明されています(Formalityの設定)。対応言語は日本語を含む11言語です。Profanityは、ベンガル語・ヒンディー語・ベトナム語など6言語を除くすべての訳出先で使えます。Brevityが効くのは、任意の言語からフランス語・ドイツ語・イタリア語・ポルトガル語(ブラジル)・スペイン語の5言語へ訳す場合と、この5言語から英語へ訳す場合だけです。日本語向けに指定してもエラーにはならず、設定が無視されて通常どおり訳されます(Brevityの設定)。字幕のように訳文の長さを抑えたい日本語の用途には、Brevityは使えないと考えてください。
カスタム用語集による製品名・社名の訳語指定
製品名・社名・専門用語の訳を指定するには、カスタム用語集(Custom Terminology)を使います。ただし文脈によって適用されない場合があり、指定訳が毎回使われる保証はありません。1行目に言語コード、2行目以降に「原文,訳語」を並べたCSVを登録し、TerminologyNamesで指定します。
# terms.csvはUTF-8で保存し、1行目をen,ja、2行目をAWS Lambda,AWS Lambdaとする
with open("terms.csv", "rb") as f:
client.import_terminology(
Name="product-terms",
MergeStrategy="OVERWRITE",
TerminologyData={"File": f.read(), "Format": "CSV"},
)
res = client.translate_text(
Text="Deploy it with AWS Lambda.",
SourceLanguageCode="en",
TargetLanguageCode="ja",
TerminologyNames=["product-terms"],
)
用語集はCSV・TSV・TMX形式で登録でき、1アカウント・1リージョンあたり既定で100ファイルまで置けます。1回のリクエストで指定できる用語集は1つだけです。同じ言語ペアで訳語の衝突がない製品群なら、用語集を1ファイルにまとめると指定漏れを減らせます。製品ごとに同じ原語の訳が異なる場合は、用語集を分けて選択します。
大量ファイルのバッチ翻訳とリージョン制限
S3に置いたファイルをまとめて訳すときは、start_text_translation_jobでバッチ翻訳を始めます。入力フォルダの読み取りと出力バケットの読み書きを許可し、Amazon Translateが引き受けられる信頼ポリシーを設定したIAMロールが必要です。入出力バケットは呼び出し先と同じリージョンに置き、コードのバケット名とロールARNを実環境の値に置き換えます。
job = client.start_text_translation_job(
JobName="manuals-ja",
InputDataConfig={"S3Uri": "s3://my-bucket/input/", "ContentType": "text/plain"},
OutputDataConfig={"S3Uri": "s3://my-bucket/output/"},
DataAccessRoleArn="arn:aws:iam::123456789012:role/TranslateBatchRole",
SourceLanguageCode="en",
TargetLanguageCodes=["ja"],
)
print(job["JobId"], job["JobStatus"])
1ジョブで指定できる訳出先は10言語まで、同時に動かせるジョブは10件、待機できるジョブは1,000件です。
2022年ごろの解説記事には「東京リージョンはバッチ翻訳に対応していない」と書かれたものが残っていますが、2023年3月に対応リージョンが追加され、現在のバッチ翻訳の対応リージョン一覧には東京が含まれます。一方、対訳データで訳を寄せるActive Custom Translationは、2026年10月時点でもバージニア北部・オレゴン・アイルランドの3リージョンだけです。データを国内リージョンに置くことが要件なら、Active Custom Translationは選べません。
Amazon Translateの訳文をポストエディットする体制
ポストエディットは、機械翻訳の訳文を人が読んで直す工程です。用語集で固有名詞の訳を指定しても、適用されない場合があります。固有名詞に加え、文脈に依存する言い回しや業界の慣用表現も確認します。公開する文書や契約・製品マニュアルでは、Amazon Translateの出力を下訳として、人の確認を前提に工程を組みます。
AWSの人手レビュー構成(Amazon A2I)は新規受付を停止
AWSは2020年の公式ブログで、Amazon TranslateとAmazon Augmented AI(A2I)を組み合わせ、訳文を1文ずつ人がレビューして修正版をS3に書き出す構成を紹介していました(Amazon TranslateとAmazon A2Iによるヒューマンレビューワークフローの設計)。ところが2026年6月30日のAWSサービスの提供状況の変更で、A2Iはメンテナンスへ移ると発表され、2026年7月30日から新規の顧客は使えなくなりました。既存の利用者は使い続けられますが、新機能は追加されません。いまからポストエディットの仕組みを作るなら、A2Iを前提にした設計は採らないでください。Amazon Translate本体は、この発表の対象に入っていません。
翻訳管理システムとAmazon Bedrockによる後編集体制
現実的な選択肢は2つです。1つ目は翻訳管理システム(TMS)の機械翻訳エンジンとしてAmazon Translateをつなぐ方法です。AWSのMemsource(現Phrase)連携の発表では、機械翻訳の候補を下訳として挿入し、翻訳者のポストエディットに回し、編集量を分析する流れが説明されています。翻訳者が社内外にいて、訳文の承認フローが必要な組織はこちらを選びます。
2つ目は、Amazon Translateの訳文をAmazon Bedrockの生成AIに渡して直させる方法です。AWSの動画の自動吹き替えの構成例(2024年7月)は、字幕をAmazon Translateで訳したあと、Bedrockで後編集して品質を上げる手順を示しています。生成AIの後編集で人の手直し量を減らし、最終確認は人が行う構成にします。なお、参照した動画構成例も人手レビューにA2Iを使っているため、新規導入ではレビュー部分を別の仕組みに置き換えます。生成AIの後編集は原文に無い情報を足すことがあるため、数値・固有名詞・否定表現は原文と突き合わせる工程を省かないでください。
直した対訳は捨てずに貯めておくと、次の訳に反映できます。修正後の訳語はカスタム用語集へ、文単位の対訳はActive Custom Translationの対訳データ(1ファイル5GBまで)として登録できます。ただし前章のとおりActive Custom Translationは東京で使えないため、国内でデータを完結させたい場合は用語集の更新までにとどめます。
翻訳データの保存とオプトアウト
機密文書を訳す前に確認しておきたいのがデータの扱いです。Amazon Translateのガイドラインは、翻訳モデルの品質向上のために入力データを保存する場合があると記載しています。AWS OrganizationsのAIサービスのオプトアウトポリシーでは、サービス改善のためのコンテンツ利用を止められ、その対象サービスの一覧にAmazon Translateが含まれます。同ページには、改善目的のコンテンツが利用中とは別のリージョンに保存される場合があるとも書かれています。顧客情報や未公開の文書を流す前に、組織のポリシーでオプトアウトを設定しておくのが安全です。社内のAWS環境やIAM・ネットワークの設計から相談したい場合は、AWSのインフラ構築支援も参考にしてください。
Google翻訳・DeepL・ChatGPTとの選び分け
機械翻訳は訳文の品質だけでなく、どの基盤に組み込むかで選びます。
| サービス | 向いている用途 |
|---|---|
| Amazon Translate | AWS内で完結する大量翻訳・用語の統一 |
| Google Cloud Translation | Google Cloudで組むシステム |
| DeepL API | 読み物の翻訳(実文書で自然さと誤訳を比較) |
| ChatGPTなどの生成AI | 文脈やトーンを指示して訳す |
システムがすでにAWS上にあり、S3のファイルを定期的に訳す、製品名の訳語を用語集で指定する、IAMで権限を絞る、といった要件があるならAmazon Translateを第一候補にします。一方で、マーケティング記事のように読み物としての自然さが評価を決める文書を、Amazon Translateの訳文だけで公開するのは避けてください。この用途では、DeepLや生成AIも含めて実際の文書で訳文を比較し、採用するサービスにかかわらず公開前の人手確認と必要な後編集を挟みます。生成AIでの翻訳はChatGPT Translateの使い方とGoogle翻訳・DeepLとの違いで比べています。機械翻訳と生成AI翻訳の仕組みの違いはAI翻訳の仕組みと業務導入の判断基準で解説しています。スキャンしたPDFや画像の文字を訳すなら、先にAmazon Textractでテキスト化してからAmazon Translateに渡します。ただしTextractの文字検出は英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語に対応し、日本語の画像には日本語対応のOCRが必要です。
よくある質問
Amazon Translateの料金はいくらですか?
標準テキスト翻訳とバッチ文書翻訳は100万文字あたり15USDです。Wordファイル(docx)のリアルタイム文書翻訳は30USD、対訳データを使うActive Custom Translationは60USDです(2026年10月時点)。
Amazon Translateは無料で使えますか?
最初の翻訳リクエストから12か月間、標準テキスト翻訳は月200万文字まで無料です。起算はアカウント作成日ではありません。リアルタイム文書翻訳は無料枠の対象外です。
Amazon Translateで丁寧語(です・ます調)に訳せますか?
訳せます。SettingsのFormalityにFORMALを指定すると丁寧語、INFORMALではくだけた表現になります。日本語は対応言語の11言語に含まれます。
TranslateTextで一度に翻訳できる文字数は?
入力は10,000バイトまでです。一般的なひらがな・漢字だけなら約3,300字が目安ですが、文字によってバイト数は異なります。UTF-8で10,000バイトを超える文書は分割するか、バッチ翻訳を使います。
Amazon Translateの訳文にポストエディットは必要ですか?
公開文書や契約・マニュアルでは必要です。AWSのA2Iは2026年7月30日から新規受付を停止したため、翻訳管理システムに組み込むか、Amazon Bedrockで後編集して最後に人が確認する体制を組みます。