AWS

AWS の 502 エラー:原因と解決策502

エラーの概要 502 Bad Gateway は、API Gateway や Application Load Balancer(ALB)がバックエンド(EC2、Lambda、ECS など)から不正な応答を受け取った、あるいは応答を得られなかったことを示すエラーです。AWS 環境では、バックエンドサービスの一時的な障害やタイムアウト、リソース不足など複数の原因で発生しやすいステータスコードです。 実際のエラーメッセージ例 API Gateway から返されるレスポンス例: { "message": "502 Bad Gateway" } CloudWatch Logs に記録されるロードバランサーのログ例: [ALB] 2024-01-15T10:23:45Z app/my-app/1234567890abcdef 192.0.2.1:54321 10.0.1.100:8080 0.050 0.100 0 502 - - arn:aws:elasticloadbalancing:ap-northeast-1:123456789012:targetgroup/my-targets/1234567890abcdef "GET http://example.com/ HTTP/1.1" "Mozilla/5.0" - arn:aws:acm:ap-northeast-1:123456789012:certificate/12345678-1234-1234-1234-123456789012 - ecs default - - よくある原因と解決手順 原因1:バックエンドのタイムアウトまたはクラッシュ Lambda 関数や EC2 インスタンス上のアプリケーションが処理中にタイムアウトするか、予期せず停止している場合、ALB や API Gateway は 502 を返します。 Before(タイムアウト設定が不適切): # Lambda 関数がタイムアウト時間内に完了できない import time def lambda_handler(event, context): time.sleep(35) # デフォルトのタイムアウト 30秒を超える return {"statusCode": 200} After(タイムアウトを延長し、処理を最適化): ...

2026年1月1日 · ErrorLog
AWS

AWS の 503 エラー:原因と解決策503

エラーの概要 AWS の 503 Service Unavailable は、リクエストが処理できない一時的なサービス障害を示すステータスコードです。AWS のサービス側に処理能力の不足、障害、またはバックエンド側の問題があることを意味します。このエラーは通常一時的であり、リトライ戦略により解決することが多いですが、設定ミスが原因になることもあります。 実際のエラーメッセージ例 API Gateway / ALB を経由する場合 { "message": "Service Unavailable" } CloudWatch ログで確認される例 [ERROR] 503 Service Unavailable - Target: backend-instance-1 is unhealthy [ERROR] ApplicationLoadBalancer rejected request: All targets are unavailable AWS CLI 実行時の例 An error occurred (ServiceUnavailable) when calling the GetObject operation: Service is unavailable. Please try again later. よくある原因と解決手順 原因1:EC2 / ECS バックエンドインスタンスがダウンしている バックエンドが応答しないため、Application Load Balancer(ALB)や Network Load Balancer(NLB)がリクエストを処理できなくなります。ヘルスチェックが失敗すると、すべてのターゲットが unhealthy と判定されます。 Before(ターゲットグループの設定確認) # 現在のターゲットの状態を確認 aws elbv2 describe-target-health \ --target-group-arn arn:aws:elasticloadbalancing:ap-northeast-1:123456789012:targetgroup/my-app/abc123def456 { "TargetHealthDescriptions": [ { "Target": { "Id": "i-0123456789abcdef0", "Port": 8080 }, "TargetHealth": { "State": "unhealthy", "Reason": "Target.ResponseCodeMismatch", "Description": "Health checks failed with these codes: [500]" } } ] } After(原因の特定と修正) ...

2026年1月1日 · ErrorLog
Docker

Docker の 400 エラー:原因と解決策400

エラーの概要 Docker の 400 エラーは、クライアント側のリクエストが不正な形式であることを示すHTTPステータスコードです。Docker デーモンとの通信(コンテナの操作、イメージのプッシュ・プル、API呼び出し)の際に、形式不正なリクエストが送信された場合に発生します。多くの場合、Dockerfile の構文エラー、APIリクエストの形式ミス、または設定ファイルの不正な記述が原因です。 実際のエラーメッセージ例 docker build -t myimage:latest . Step 1/5 : FROM ubuntu:20.04 Step 2/5 : RUN apt-get update && apt-get install -y curl Step 3/5 : COPY . /app Step 4/5 : WORKDIR /app Step 5/5 : RUN python script.py Error response from daemon: invalid header field value "oci runtime error" Error response from daemon: HTTP/400: Bad Request { "message": "invalid request: malformed JSON in request body", "code": 400, "detail": "failed to decode request body" } よくある原因と解決手順 原因1:Dockerfile の RUN コマンドの構文エラー なぜ発生するか Dockerfile の RUN コマンドで行末の区切り文字(バックスラッシュ)が正しく使われていないか、シェルコマンドの構文が不正な場合に、Docker デーモンが該当行を解析できず 400 エラーを返します。 ...

2026年1月1日 · ErrorLog
Docker

Docker の 401 エラー:原因と解決策401

エラーの概要 Docker で 401 エラーが発生するのは、レジストリ(Docker Hub や ECR、プライベートレジストリなど)への認証に失敗したときです。認証情報が提供されていない、または提供されていても無効・期限切れの場合に表示されます。特に docker pull、docker push、docker login の実行時によく見られます。 実際のエラーメッセージ例 Error response from daemon: unauthorized: incorrect username or password { "errors": [ { "code": "UNAUTHORIZED", "message": "authentication required", "detail": null } ] } Error response from daemon: Get "https://registry-1.docker.io/v2/": unauthorized: authentication required よくある原因と解決手順 原因1: docker login コマンドを実行していない Docker Hub やプライベートレジストリを利用する際に、事前に docker login で認証を済ませていないと 401 エラーが発生します。 Before(エラーが起きる状態) docker pull my-private-repo.azurecr.io/myapp:latest # Error response from daemon: unauthorized After(修正後) ...

2026年1月1日 · ErrorLog
Docker

Docker の 403 エラー:原因と解決策403

エラーの概要 Docker の 403 エラーは、認証(ログイン)には成功したものの、対象のリソース(イメージ、レジストリ、ボリューム等)へのアクセス権限がないことを示します。これはプライベートリポジトリへのアクセス、組織内のアクセス制限、または不十分な認証トークンの権限が原因で発生することがほとんどです。Docker CLI、Docker Desktop、または docker push/pull 時に頻繁に遭遇するエラーです。 実際のエラーメッセージ例 Error response from daemon: Head "https://registry-1.docker.io/v2/myuser/myimage/manifests/latest": unauthorized: authentication required 403 Forbidden { "errors": [ { "code": "DENIED", "message": "permission denied", "detail": "requested access to the resource is denied" } ] } docker push myrepo/myimage:tag denied: requested access to the resource is denied よくある原因と解決手順 原因1:Docker Hub のログイン認証が無効または権限不足 なぜ発生するか:Docker CLI がログインしていない状態、または無効なトークンでリポジトリにアクセスしようとすると、403 エラーが返されます。特にプライベートリポジトリの場合、認証なしでのアクセスが拒否されます。 Before(エラーが起きるコマンド) # ログインせずにプライベートリポジトリをプルしようとする docker pull myusername/private-image:latest # または古い認証情報で実行 docker push myrepo/myimage:tag After(修正後のコマンド) ...

2026年1月1日 · ErrorLog
Docker

Docker の 404 エラー:原因と解決策404

エラーの概要 Docker で 404 エラーが発生するのは、指定したイメージまたはリポジトリがレジストリ(Docker Hub や ECR などのイメージ保管先)に存在しないことを意味します。このエラーは docker pull、docker run、docker push などのコマンド実行時に表示され、イメージ名の誤字、存在しないタグの指定、アクセス権限の不足などが主な原因です。 実際のエラーメッセージ例 $ docker pull myapp:latest Error response from daemon: manifest not found: myapp:latest { "errors": [ { "code": "NAME_UNKNOWN", "message": "repository myapp not found", "detail": {} } ] } よくある原因と解決手順 原因1:イメージ名またはタグの誤字 Docker Hub や ECR に存在するイメージ名でも、1文字でも間違っていれば 404 エラーが発生します。大文字小文字の混在や、アンダースコア・ハイフンの混同が典型的です。 Before(エラーが起きる例): docker pull ubuntu:Latest docker pull myapp:1.0.0_beta docker run node:16-alphine node app.js After(修正後): docker pull ubuntu:latest docker pull myapp:1.0.0-beta docker run node:16-alpine node app.js 原因2:指定したタグがレジストリに存在しない イメージ名は正しくても、そのバージョン(タグ)が公開されていない場合があります。特にプライベートレジストリやカスタムイメージで頻発します。 ...

2026年1月1日 · ErrorLog
Docker

Docker の 409 エラー:原因と解決策409

エラーの概要 Dockerの409エラーは、HTTP標準仕様で「Conflict(競合)」を示すステータスコードです。Docker Daemon がコンテナやイメージの操作を受け付けられない状態を表します。通常、リソースの重複、ポートの競合、不正なコンテナの状態遷移などが原因となります。このエラーが発生した場合、現在のシステム状態と実行しようとしている操作に矛盾があることを意味しています。 実際のエラーメッセージ例 { "message": "Error response from daemon: Conflict. The container name \"/web-app\" is already in use by container \"abc123def456\". You have to remove (or rename) that container to be able to reuse that name." } Error response from daemon: Conflict. You cannot remove a running container abc123def456. Stop the container before attempting removal, or force remove よくある原因と解決手順 原因1:同じ名前のコンテナが既に存在している 同じ名前のコンテナが実行中または停止状態で残っているため、新たにコンテナを作成・起動できない場合に発生します。 Before(エラーが起きる状況): docker run --name web-app -p 8080:80 nginx # Error: Conflict. The container name "/web-app" is already in use After(修正後): ...

2026年1月1日 · ErrorLog
Docker

Docker の 422 エラー:原因と解決策422

エラーの概要 Docker で 422 エラーが発生するのは、Docker API またはコンテナレジストリへのリクエストが構文的には正しいものの、含まれるデータが処理要件を満たしていない場合です。Docker Daemon、Docker Compose、レジストリ API との通信時にこのエラーが返される典型的なシナリオは、不正なイメージタグ指定、設定値の型違反、あるいは API スキーマの検証失敗です。 実際のエラーメッセージ例 { "message": "invalid tag format", "code": 422 } $ docker push myregistry.example.com/app:invalid@tag Error response from daemon: invalid tag format # docker-compose.yml でエラーが発生 ERROR: The Compose file is invalid because: Service 'web' has invalid value for ports: ports must be an integer or string よくある原因と解決手順 1. イメージタグの形式が不正 Docker レジストリ API は RFC 6391 に基づいたタグ形式を要求します。許可されない文字(@ や大文字の混在)が含まれている場合に 422 が返されます。 Before(エラーが起きる例): docker tag myimage:latest myregistry.example.com/app:INVALID@latest docker push myregistry.example.com/app:INVALID@latest # Error: invalid tag format After(修正後): ...

2026年1月1日 · ErrorLog
Docker

Docker の 429 エラー:原因と解決策429

エラーの概要 Docker の 429 エラーは、HTTP ステータスコード 429(Too Many Requests)を意味し、短時間に送信されたリクエスト数が上限を超えたことを示します。Docker Hub やプライベートレジストリに対して過度なアクセスが集中した場合、レート制限により一時的にリクエストが拒否されます。特に CI/CD パイプラインや複数マシンからの並行アクセスで頻繁に発生します。 実際のエラーメッセージ例 Docker コマンド実行時のエラーメッセージ: Error response from daemon: manifest unknown: manifest unknown Error pulling image <your-image>: rate limit exceeded Docker Compose でのビルド時: { "error": "too many requests", "details": "You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits" } よくある原因と解決手順 原因1:Docker Hub のレート制限に達している Docker Hub の無料プランでは、認証なしで6時間に100回の pull に制限されています。CI/CD で頻繁にイメージをダウンロードする環境では、この上限に達しやすくなります。 Before(エラーが起きる設定): docker pull ubuntu:latest docker pull nginx:latest docker pull postgres:latest # ... 100回以上のpullを短時間に実行 After(修正後): ...

2026年1月1日 · ErrorLog
Docker

Docker の 500 エラー:原因と解決策500

エラーの概要 Docker環境で500エラーが発生する場合、Dockerデーモンが予期しない内部エラーに遭遇していることを示しています。このエラーはDocker CLIコマンド実行時やコンテナ操作時に返される汎用的なサーバーエラーであり、原因は多岐にわたります。ディスク不足、メモリ枯渇、デーモンのクラッシュ、権限問題など、複数の要因が考えられるため、段階的な調査が必要です。 実際のエラーメッセージ例 $ docker run ubuntu:latest Error response from daemon: Internal Server Error { "message": "Internal Server Error" } $ docker ps Error response from daemon: error during connect: This error may indicate the docker daemon is not running. よくある原因と解決手順 原因1:Dockerデーモンが起動していない、または異常状態 Dockerコマンドを実行する際、バックエンドのdockerdプロセスが応答しない場合、500エラーが返されます。これはLinux環境で特に多く発生します。 Before(エラーが発生する状態): # dockerdが停止している状態 $ systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled) Active: inactive (dead) $ docker ps Error response from daemon: Internal Server Error After(解決後): ...

2026年1月1日 · ErrorLog