はじめに
AWSを使っていると英語のエラーメッセージに遭遇します。
ただ、全文を完璧に読める必要はありません。
多くの場合は、
- 権限の問題
- リソース不存在
- 通信の問題
- 設定値の問題
のどれかです。
今回はAWS運用で特によく見るエラーについて、
- エラーの意味
- なぜ起こるのか
- どう対処するのか
を紹介します。
きっかけ
私自身、とても英語が苦手で、エラーが出るたびに翻訳をかけ、内容を理解することが多く、毎回とても、手間だと感じていました。その中で、起こり得るエラーについて、簡単に覚えるだけで、作業速度が格段に変わると思ったので、今回これをまとめようと思いました。(ですがいずれは、これ以外も多くのエラーなどが考えられるので、少しずつ理解できる英語を増やす必要はあります。)
実際によく見るエラー文
Access Denied
これは「アクセスが拒否」されたときに出てくるエラー文になっています。
原因としては、
- IAMロールの権限不足
- IAMユーザーの権限不足
- SCP(Service Control Policy)による拒否
- Permission Boundaryによる制限
などが原因として挙げられます。
対処法としては、
- IAMロールの権限を確認
- ポリシーの修正
などを行うと改善する可能性があります。
UnauthorizedOperation
こちらは「その操作を実行する権限がない」時に出てくるエラー文になっており、特にEC2の関連で多く見られるエラーになっています。
原因としては、Access Deniedと同じように、ロールの権限が足りていないため起こるエラーになっています。
ResourceNotFoundException
こちらは、「指定したリソースがみつからない」時に出てくるエラーになっています。
原因としては、
- 指定されているリソースが存在しない
- 指定している名前が誤っている
などがエラーの原因になっています。
対処法として、
- 改めてAWSコンソールなどで、対象のリソースを確認
してみることで改善できる可能性があります。
ThrottlingException
こちらは「APIを呼びすぎている」時に出るエラーになっています。
原因としては、
- 大量のリクエスト
- 無限ループ
などがエラーの原因になっています。
対処法として、
- どこかで無限ループになっているものがないか
- リクエストがキャパシティ以上にリクエストされていないか
などを確認すると改善できる可能性があります。
Connection Refused
こちらは、「接続先のサーバーまでは到達できたのですが、サービスが受け付けていない状態」の時に起こるエラーになっています。
原因として、
- Webサーバー停止
- DB停止
- ポート未リスニング
などがエラーの原因になっていることが多いです。
対処法としては、
- Linuxで確認
- ポートを確認
例:
systemctl status nginx
systemctl status httpd
systemctl status mysqld
ss -tulnp
などを行うことで改善できる可能性があります。
Instance Reachability Check Failed
「EC2インスタンス内部に問題が起こっている」時に起こるエラーになります。
原因として、
- OSのフリーズ
- メモリ不足
- ファイルシステム障害
- カーネルパニック
などによってエラーになっている可能性が高いです。
対処法としては、
- EC2再起動
- システムログの確認
- CloudWatch確認
- EBS確認
などを行うと改善する可能性が高いです。
RequestTimeout
こちらは、「通信が一定時間内に完了しなかった」したときに起こるエラーになります。
原因として、
- ネットワークの不安定
- セキュリティグループの設定
- NACL設定
などがあげられます。
対処法としては、
- ネットワーク疎通を確認
- セキュリティグループの許可設定を確認
- NACL設定の確認
などを行うことで改善する可能性があります。
InvalidParameterValue
これは、「指定したパラメータが不正」な場合に発生するエラーです。
原因として、
- インスタンスタイプの指定ミス
- サブネット指定ミス
- 存在しないID指定
- リージョン違い
などが考えられます。
対処法として、
- 入力値の見直し
- リソースIDの確認
- 指定したサブネットやVPCの確認
- 現在のリージョンの確認
などを行うと改善する可能性があります。
まとめ
上記の8個が基本的によく起こり得るエラーとその原因になります。ほかにも様々エラーはあるのですが、まずはこの8個のエラーは何なのか、何が原因なのか、対処法は何なのか、といったところを少しずつ覚えていくことで、作業の効率化になるのではないでしょうか。