メインコンテンツまでスキップ

🚨 Step 8: トラブルシューティング

🎯 このページの目的

ハンズオン中によく発生する問題と、その解決方法をまとめています。 エラーが発生した際は、まずこのページを確認してください。


🔐 認証・ログイン関連の問題

Q: AWSコンソールにログインできない

症状

  • 「認証情報が正しくありません」エラー
  • ログイン画面でエラーが表示される

解決方法

  1. アカウントIDの確認

    • 12桁の数字であることを確認
    • ハイフンは含めない
  2. ユーザー名の確認

    • 2025-tohoku-it- から始まることを確認
    • 前後にスペースが入っていないか確認
  3. パスワードの確認

    • 大文字・小文字を正確に入力
    • Caps Lockがオンになっていないか確認
  4. ブラウザの確認

    • プライベートモード・シークレットモードで試す
    • ブラウザのキャッシュをクリア
💡 それでも解決しない場合

スタッフに配布資料を見せて、認証情報を再確認してもらってください。


🪣 S3関連の問題

Q: S3バケットが作成できない

症状

  • 「バケット名が既に使用されています」エラー
  • 「バケット名が無効です」エラー

解決方法

  1. バケット名の修正

    修正前: 2025-tohoku-it-giovanni-images
    修正後: 2025-tohoku-it-giovanni-images-0109

    末尾に日付や番号を追加してください。

  2. 命名規則の確認

    • 小文字のみ使用(大文字は使用不可)
    • 数字、ハイフンのみ使用可能
    • ピリオドは使用不可

Q: バケットにアクセスできない

症状

  • 「Access Denied」エラー
  • バケット一覧に表示されない

解決方法

  1. リージョンの確認

    • 画面右上が「東京(ap-northeast-1)」になっているか確認
    • 違う場合は東京リージョンに変更
  2. 権限の確認

    • 正しいIAMユーザーでログインしているか確認

📊 DynamoDB関連の問題

Q: DynamoDBテーブルが作成できない

症状

  • タイムアウトエラー
  • 権限エラー

解決方法

  1. テーブル名の確認

    正しい形式: あなたのユーザー名-image-metadata
    : 2025-tohoku-it-giovanni-image-metadata
  2. パーティションキーの確認

    • キー名: image_id
    • データ型: String(文字列)
  3. リージョンの確認

    • S3バケットと同じリージョン(東京)で作成

Q: GSI(インデックス)が作成できない

症状

  • インデックス作成ボタンが無効
  • エラーメッセージが表示される

解決方法

  1. テーブルステータスの確認

    • メインテーブルが「アクティブ」になるまで待つ
    • 通常1-2分で完了
  2. ブラウザの更新

    • ページを更新(F5)してから再度実行

⚡ Lambda関数関連の問題

Q: Lambda関数が実行されない

症状

  • 画像をアップロードしても何も起こらない
  • CloudWatch Logsにログが出力されない

解決方法

  1. S3トリガーの確認

    • Lambda関数の「トリガー」タブを確認
    • S3トリガーが設定されているか確認
  2. IAMロールの確認

    • Lambda関数に正しいIAMロールが設定されているか
    • ロールに必要な権限があるか
  3. 環境変数の確認

    • TABLE_NAMEが正しく設定されているか
    • DynamoDBのテーブル名と一致しているか

Q: Lambda関数でタイムアウトエラー

症状

Task timed out after 3.00 seconds

解決方法

  1. タイムアウト設定の変更

    • Lambda関数の「設定」→「一般設定」
    • タイムアウトを 5分 0秒 に変更
  2. メモリ設定の確認

    • メモリを 512 MB に設定

Q: Lambda関数で権限エラー

症状

AccessDenied: User is not authorized to perform
UnauthorizedOperation: You are not authorized

解決方法

  1. IAMロールの権限確認

    • S3アクセス権限ポリシー
    • DynamoDBアクセス権限ポリシー
    • AWSLambdaBasicExecutionRole
  2. リソース名の確認

    • ポリシー内のバケット名、テーブル名が正しいか
    • ARNのスペルミスがないか

🌐 CloudFront関連の問題

Q: CloudFrontディストリビューションが作成できない

症状

  • 作成中のまま進まない
  • エラーが発生する

解決方法

  1. オリジン設定の確認

    • 正しいS3バケットを選択しているか
    • バケット名にスペルミスがないか
  2. OAC設定の確認

    • Origin Access Controlが正しく作成されているか
    • 作成したOACが選択されているか

Q: CloudFrontで画像にアクセスできない

症状

AccessDenied
The request signature we calculated does not match

解決方法

  1. ディストリビューションステータス確認

    • ステータスが「Enabled」になっているか
    • 「Deploying」の場合は10分程度待つ
  2. S3バケットポリシーの確認

    • CloudFrontから提案されたポリシーをコピーしたか
    • ポリシーが正しく保存されているか
  3. URLの確認

    • CloudFrontドメイン名が正しいか
    • ファイルパスが正しいか
    正しい形式: https://d123abc456def.cloudfront.net/thumbnails/medium/image_thumb.jpg

📝 一般的な問題

Q: ページが表示されない・読み込まれない

解決方法

  1. ブラウザのリロード

    • Ctrl+F5(Windows)/ Cmd+Shift+R(Mac)で強制更新
  2. ブラウザの変更

    • Chrome、Firefox、Safariを試す
    • プライベートモード・シークレットモードを試す
  3. インターネット接続の確認

    • 他のWebサイトにアクセスできるか確認

Q: 設定が反映されない

解決方法

  1. 時間を置いて再試行

    • AWSは設定変更に時間がかかる場合があります
    • 2-3分待ってから再度確認
  2. キャッシュのクリア

    • ブラウザのキャッシュをクリア
    • AWSコンソールからログアウト→再ログイン

📊 デバッグ手順

CloudWatch Logsでの確認方法

  1. ロググループの場所

    CloudWatch → ログ → ロググループ → /aws/lambda/あなたのユーザー名-image-processor
  2. よくあるエラーとその意味

    # タイムアウトエラー
    Task timed out after 3.00 seconds
    → Lambda関数のタイムアウト設定を5分に変更

    # 権限エラー
    AccessDenied: User: arn:aws:sts::123456789012:assumed-role/
    → IAMロールの権限不足、ポリシーを確認

    # DynamoDB接続エラー
    ResourceNotFoundException: Requested resource not found
    → テーブル名の確認、環境変数TABLE_NAMEを確認

    # S3接続エラー
    NoSuchBucket: The specified bucket does not exist
    → バケット名の確認、リージョンの確認

🆘 それでも解決しない場合

スタッフへの相談時に準備する情報

  1. エラーメッセージの全文

    • スクリーンショットまたはテキストでコピー
  2. 実行した手順

    • どのステップで問題が発生したか
    • どのような操作を行ったか
  3. 設定情報

    • バケット名、テーブル名、関数名
    • 使用しているリージョン
  4. CloudWatch Logsの内容

    • Lambda関数のログがある場合はその内容
💡 スタッフへの効果的な質問方法

「Step 3のLambda関数作成で、IAMロール設定時にこのエラーが出ました」のように、具体的なステップとエラー内容を伝えてください。


📚 参考:よくある間違い

❌ よくある間違い

  1. 大文字・小文字の混同

    • S3バケット名は小文字のみ
    • Lambda関数名は大文字・小文字を区別
  2. リージョンの不一致

    • すべてのリソースは東京リージョンで作成
    • 画面右上のリージョン表示を常に確認
  3. 名前の入力ミス

    • ユーザー名の前後にスペース
    • ハイフンとアンダースコアの混同
  4. 設定の反映時間

    • CloudFrontは5-10分
    • DynamoDBテーブルは1-2分
    • 即座に反映されないことを理解

✅ 成功のコツ

  1. 手順の順番を守る

    • 前のステップが完了してから次に進む
    • 「アクティブ」「Enabled」状態を確認
  2. 名前の一貫性

    • すべてのリソース名に同じユーザー名を使用
    • メモを取って名前を統一
  3. エラーメッセージを読む

    • エラーメッセージには解決のヒントが含まれている
    • Google翻訳を使って英語エラーを理解

🔗 関連リンク

問題が解決しない場合は、以下のステップに進んでください: