AWSを初めて使う方に贈る、つまずきポイント集
2019-04-03
こんにちは、松枝です。
今回は、Amazon Web Services (以降、AWS と表記) を使用してみて気付いた、AWSを初めて使う方が各サービスを使用する上でつまずきそうなポイントをまとめました。
AWS つまずきポイント
API Gateway の設定変更ができない
- リソースポリシー(アクセス制御)の設定などを変更した際には、APIの再デプロイが必要です。
- API Gateway にて何かの設定を変更した場合、必ず API を再デプロイを行なうような習慣にした方が良いかもしれません。
EC2 が ECS に登録されない
- ECS Agent から ECS への通信(HTTPS 443)が拒否されていないか ACL・セキュリティグループの Outbound ルールを確認してください。
- terraform 等で EC2 を作成している場合、AMI は ECS 用に最適化されたもの(Amazon ECS-Optimized Amazon Linux 2 AMI など)を使用していることを確認してください。
VPC内のインスタンスにインターネットから接続できない
- 0.0.0.0/0 をインターネットゲートウェイにルーティングする定義をルートテーブルに登録する必要があります。
CodeBuild のビルドについての設定方法がわからない
- buildspec.yml ファイルをソース管理に追加して CodeBuild にて指定する必要があります。
CodeBuild で .Net Core のビルドが失敗する
- .Net Core 用の Environment を指定してください。
VPC が5つまでしか作れない
- クォータ上限のため、VPC は1リージョンあたり5つまでしか作成できません。
- サブネットを活用する、制限の引き上げをリクエストする、などの対応を取りましょう。
.NET Core で作成した Lambda 関数が動かない、時々動かない
- Lambda のタイムアウト時間のデフォルトは3秒になっており、例えば .NET Core アプリだと起動が間に合わずエラーになります。適宜変更しましょう。
EC2へのSSH接続に失敗する
- ユーザー名が正しいことを確かめてください。AMI の種類によってデフォルトのユーザー名が異なります。
- Amazon Linux 2 または Amazon Linux AMI の場合:ec2-user
- Ubuntu AMI の場合:ubuntu
- 【参考】https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
Terraform つまずきポイント
AWS のリソース作成に Terraform を活用しましたが、その際に気付いたつまずきポイントもまとめてみました。
terraform destroy で S3 バケットが削除できない
- S3 バケット内にオブジェクトが残っている場合は、Terraform から destroy できません。
- AWS Console からであれば削除できます。
リソースがすでに存在する...旨のエラーが発生する
- terraform が作成しようとするリソースがすでに AWS 上に存在することが原因です。
- terraformは、AWS リソースの AWS 上での ID で管理しているので、これが競合してしまうとエラーになります。
- AWS 上に存在するリソースを AWS コンソール等から削除することで回避可能です。
tfファイルの記述には問題が無さそうだが、terraform apply でエラーが発生する
- 依存関係の不足により、先に作成するべきリソースが作られずエラーになっています。
- 依存関係を depends_on で必ず定義してください。
同じ tf ファイルを複数人で同時に編集すると意図せずリソースが削除される
- terraform はコードを実行して作成したリソースの情報を tfstate ファイルに記録しています。このため複数人で同一ファイルを用いて環境を調整する場合、tfstate ファイルを何らかの方法で同期する必要があります。
tf ファイル内で json を用いて設定している項目の値が正しく設定されない
- AWS API Gateway のリソースポリシーのように json で設定している一部の項目ではエスケープ文字(\)が設定されたり、改行コードが削除されたりして、項目への設定が正しく行われない場合があります。
- json を別ファイルとして読み込むことで問題を回避可能です。
まとめ
上記で記載したことが AWS を初めて使った時につまずきやすいポイントになると思われます。
これから AWS を活用しようとされている皆様のご参考になれば幸いです。