🚨 Step 8: トラブルシューティング
🎯 このページの目的
ハンズオン中によく発生する問題と、その解決方法をまとめています。 エラーが発生した際は、まずこのページを確認してください。
🔐 認証・ログイン関連の問題
Q: AWSコンソールにログインできない
症状
- 「認証情報が正しくありません」エラー
- ログイン画面でエラーが表示される
解決方法
-
アカウントIDの確認
- 12桁の数字であることを確認
- ハイフンは含めない
-
ユーザー名の確認
2025-tohoku-it-
から始まることを確認- 前後にスペースが入っていないか確認
-
パスワードの確認
- 大文字・小文字を正確に入力
- Caps Lockがオンになっていないか確認
-
ブラウザの確認
- プライベートモード・シークレットモードで試す
- ブラウザのキャッシュをクリア
💡 それでも解決しない場合
スタッフに配布資料を見せて、認証情報を再確認してもらってください。
🪣 S3関連の問題
Q: S3バケットが作成できない
症状
- 「バケット名が既に使用されています」エラー
- 「バケット名が無効です」エラー
解決方法
-
バケット名の修正
修正前: 2025-tohoku-it-giovanni-images
修正後: 2025-tohoku-it-giovanni-images-0109末尾に日付や番号を追加してください。
-
命名規則の確認
- 小文字のみ使用(大文字は使用不可)
- 数字、ハイフンのみ使用可能
- ピリオドは使用不可
Q: バケットにアクセスできない
症状
- 「Access Denied」エラー
- バケット一覧に表示されない
解決方法
-
リージョンの確認
- 画面右上が「東京(ap-northeast-1)」になっているか確認
- 違う場合は東京リージョンに変更
-
権限の確認
- 正しいIAMユーザーでログインしているか確認
📊 DynamoDB関連の問題
Q: DynamoDBテーブルが作成できない
症状
- タイムアウトエラー
- 権限エラー
解決方法
-
テーブル名の確認
正しい形式: あなたのユーザー名-image-metadata
例: 2025-tohoku-it-giovanni-image-metadata -
パーティションキーの確認
- キー名:
image_id
- データ型:
String
(文字列)
- キー名:
-
リージョンの確認
- S3バケットと同じリージョン(東京)で作成
Q: GSI(インデックス)が作成できない
症状
- インデックス作成ボタンが無効
- エラーメッセージが表示される
解決方法
-
テーブルステータスの確認
- メインテーブルが「アクティブ」になるまで待つ
- 通常1-2分で完了
-
ブラウザの更新
- ページを更新(F5)してから再度実行
⚡ Lambda関数関連の問題
Q: Lambda関数が実行されない
症状
- 画像をアップロードしても何も起こらない
- CloudWatch Logsにログが出力されない
解決方法
-
S3トリガーの確認
- Lambda関数の「トリガー」タブを確認
- S3トリガーが設定されているか確認
-
IAMロールの確認
- Lambda関数に正しいIAMロールが設定されているか
- ロールに必要な権限があるか
-
環境変数の確認
TABLE_NAME
が正しく設定されているか- DynamoDBのテーブル名と一致しているか
Q: Lambda関数でタイムアウトエラー
症状
Task timed out after 3.00 seconds
解決方法
-
タイムアウト設定の変更
- Lambda関数の「設定」→「一般設定」
- タイムアウトを
5分 0秒
に変更
-
メモリ設定の確認
- メモリを
512 MB
に設定
- メモリを
Q: Lambda関数で権限エラー
症状
AccessDenied: User is not authorized to perform
UnauthorizedOperation: You are not authorized
解決方法
-
IAMロールの権限確認
- S3アクセス権限ポリシー
- DynamoDBアクセス権限ポリシー
- AWSLambdaBasicExecutionRole
-
リソース名の確認
- ポリシー内のバケット名、テーブル名が正しいか
- ARNのスペルミスがないか
🌐 CloudFront関連の問題
Q: CloudFrontディストリビューションが作成できない
症状
- 作成中のまま進まない
- エラーが発生する
解決方法
-
オリジン設定の確認
- 正しいS3バケットを選択しているか
- バケット名にスペルミスがないか
-
OAC設定の確認
- Origin Access Controlが正しく作成されているか
- 作成したOACが選択されているか
Q: CloudFrontで画像にアクセスできない
症状
AccessDenied
The request signature we calculated does not match
解決方法
-
ディストリビューションステータス確認
- ステータスが「Enabled」になっているか
- 「Deploying」の場合は10分程度待つ
-
S3バケットポリシーの確認
- CloudFrontから提案されたポリシーをコピーしたか
- ポリシーが正しく保存されているか
-
URLの確認
- CloudFrontドメイン名が正しいか
- ファイルパスが正しいか
正しい形式: https://d123abc456def.cloudfront.net/thumbnails/medium/image_thumb.jpg
📝 一般的な問題
Q: ページが表示されない・読み込まれない
解決方法
-
ブラウザのリロード
- Ctrl+F5(Windows)/ Cmd+Shift+R(Mac)で強制更新
-
ブラウザの変更
- Chrome、Firefox、Safariを試す
- プライベートモード・シークレットモードを試す
-
インターネット接続の確認
- 他のWebサイトにアクセスできるか確認
Q: 設定が反映されない
解決方法
-
時間を置いて再試行
- AWSは設定変更に時間がかかる場合があります
- 2-3分待ってから再度確認
-
キャッシュのクリア
- ブラウザのキャッシュをクリア
- AWSコンソールからログアウト→再ログイン
📊 デバッグ手順
CloudWatch Logsでの確認方法
-
ロググループの場所
CloudWatch → ログ → ロググループ → /aws/lambda/あなたのユーザー名-image-processor
-
よくあるエラーとその意味
# タイムアウトエラー
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
→ バケット名の確認、リージョンの確認
🆘 それでも解決しない場合
スタッフへの相談時に準備する情報
-
エラーメッセージの全文
- スクリーンショットまたはテキストでコピー
-
実行した手順
- どのステップで問題が発生したか
- どのような操作を行ったか
-
設定情報
- バケット名、テーブル名、関数名
- 使用しているリージョン
-
CloudWatch Logsの内容
- Lambda関数のログがある場合はその内容
💡 スタッフへの効果的な質問方法
「Step 3のLambda関数作成で、IAMロール設定時にこのエラーが出ました」のように、具体的なステップとエラー内容を伝えてください。
📚 参考:よくある間違い
❌ よくある間違い
-
大文字・小文字の混同
- S3バケット名は小文字のみ
- Lambda関数名は大文字・小文字を区別
-
リージョンの不一致
- すべてのリソースは東京リージョンで作成
- 画面右上のリージョン表示を常に確認
-
名前の入力ミス
- ユーザー名の前後にスペース
- ハイフンとアンダースコアの混同
-
設定の反映時間
- CloudFrontは5-10分
- DynamoDBテーブルは1-2分
- 即座に反映されないことを理解
✅ 成功のコツ
-
手順の順番を守る
- 前のステップが完了してから次に進む
- 「アクティブ」「Enabled」状態を確認
-
名前の一貫性
- すべてのリソース名に同じユーザー名を使用
- メモを取って名前を統一
-
エラーメッセージを読む
- エラーメッセージには解決のヒントが含まれている
- Google翻訳を使って英語エラーを理解
🔗 関連リンク
問題が解決しない場合は、以下のステップに進んでください: