Windows から AWS にデプロイしてつまずいた4つ

GenU(AWS が公開している生成 AI のサンプル)を、Windows の PC から AWS にデプロイ(作ったものを AWS 上に組み立てて動かすこと)しました。デプロイが通るまでに3回失敗し、通ったあとにも画面でエラーが出ました。4つとも原因が分かり、直せたので、症状・原因・直し方と、最初から避ける頼み方をまとめます。

まとめ:Claude Code で AWS に社内文書チャットを作る まとめ

1. 「’cp’ is not recognized」でデプロイが止まる

症状:デプロイの1回目が、'cp' is not recognized(cp というコマンドが無い)で止まりました。

原因:GenU の組み立ての途中で、cp(コピー)や chmod(権限の変更)といった Linux のコマンドを使っています。Windows には、これらのコマンドがありません。

直し方:Git for Windows には、これらのコマンドが付いています(C:\Program Files\Git\usr\bin)。デプロイの前に、このフォルダを PATH(コマンドを探しに行く場所の一覧)に足しました。PC 全体の設定は変えず、デプロイするときだけ足しています。

Windows でデプロイするので、手順の中で Linux のコマンド(cp、chmod など)を使っていないか、先に調べて。
使っていたら、Git for Windows に付いているものを、そのときだけ使えるようにして。

2. Docker のイメージの送信が途中で切れる

症状:デプロイの2回目と3回目が、ECR(AWS 上で Docker のイメージを置いておく場所)への送信の途中で止まりました。タイムアウト(時間切れ)と切断です。

原因:止まったのは、MCP チャット(AWS の公式ドキュメントを調べる機能)用のイメージでした。展開すると約2.7GBあり、ほかのイメージと並行して送っていました。回線側の理由は特定できていません。

直し方:そのイメージだけを、docker push(イメージを送るコマンド)で単独で送りました。1回目で成功し、かかった時間は12秒でした。その後のデプロイでは「送信済み」として扱われ、4回目で最後まで通りました。

デプロイが送信の途中で止まったら、すぐにやり直さずに、どのイメージで止まったかを調べて。
大きいイメージなら、そのイメージだけを単独で送ってから、デプロイをやり直して。

3. 画面で質問すると「エラーが発生しました」

症状:デプロイが通り、ログインもできました。ところが、チャットで質問すると「エラーが発生しました」と表示されました。AWS 側の記録を見ると、API(画面から呼ばれる裏側の処理)が、起動して約50ミリ秒で終わっていました。

原因:API の起動に使うファイル(run.sh)の改行コードが、Windows 式の CRLF になっていました。私の PC の Git は、ファイルを取り込むときに改行を Windows 式に変える設定(core.autocrlf=true)になっていました。AWS 上の Linux は、CRLF のファイルの1行目を正しく読めず、起動直後に止まっていました。

直し方:run.sh の改行を Linux 式の LF に直しました。また、GenU を取り込み直したときに戻らないように、.gitattributes(Git にファイルごとの扱いを指定するファイル)に、このファイルは LF で扱うよう1行足しました。

packages/cdk/lambda/api/run.sh text eol=lf

4. 直したのに「変更なし」で反映されない

症状:run.sh を LF に直してデプロイし直しましたが、「変更なし」と判定され、AWS 上のファイルは CRLF のままでした。

原因:デプロイの道具(CDK)は、ファイルの中身から識別番号を作り、前回と同じなら送りません。結果から見ると、この識別番号は改行の違いを区別していないようでした(CDK の資料では確認できていません)。

直し方:run.sh にコメントを1行足して、中身を変えてからデプロイしました。今度は反映されました。最後に、AWS 上のファイルを取り出して、CR(Windows 式の改行の印)が0個であることを確かめています。

直したのに反映されないときは、AWS 上で動いているファイルを取り出して、直したとおりになっているか確かめて。

もう1つ:AWS CLI に日本語を渡すと失敗する

4つのほかに、AWS CLI(AWS をコマンドで操作する道具)に日本語の入ったファイルを渡すと、文字化けして失敗しました。ファイルが Shift_JIS(Windows の古い日本語の文字コード)として読まれていました。日本語を \u3042 のような書き方(文字を番号で書く形)にした JSON にして、回避しました。

最初からこう頼めばよかった

Windows の PC から GenU を AWS にデプロイします。
始める前に、Windows だとつまずきそうな点を調べて、3つまで挙げてください。
特に、Linux のコマンド、ファイルの改行コード(CRLF と LF)、日本語の文字コードを確認してください。
デプロイのログはファイルに保存してください。
失敗したら、すぐにやり直さず、ログから原因を調べて報告してください。

出典(確認日:2026-10-13)

前回:何を作ったか:安く始めるための構成と準備
次回:RAG の正解を10問中8問から10問にした3つの直し方

コメント

タイトルとURLをコピーしました