はじめに
AWSでシステム構築に携わって約1年経ちました。
その中で苦労したことや注意点をまとめます。
あれこれ
1.設定をきちんとしたのに、メールの送信がうまくできないことがある。
AWSでメールシステムを構築する方法は、EC2上に、MTAを構築するかAmazon SESを利用します。
スパムメール対策で、AWS側がメールの制限をかけているため、このような事象が発生します。
普通に送信する場合は不要かもしれませんが、バッチ処理等でメールを数百通送るようなシステムの場合、運用後に問題が発生する可能性もあります。
AWSのサポートで、メール送信数の解除が可能です。
2.cloud-init機能により、環境間(本番、stg、開発)で差異がでる。
Amazon LinuxのEC2インスタンスの場合、環境設定を自動更新できる「cloud-init」という機能があります。
この機能を使うと、インスタンス起動時に自動でyum update
を行なってくれます。
インスタンス作成時の手間は省けますが、予期せぬパッチ適用で環境間で差異が発生する可能性があります。
cloud-initの機能を無効にすることで対応可能です。
3.インスタンスの起動台数上限により、新しくインスタンスを作成できない。
AWSのアカウントに対して、インスタンスの起動台数上限があります。
AutoScaleをしている際は、インスタンスが新規作成できなくなってしまいます。
環境毎にアカウントを分けるか、サポートに起動台数の上限緩和申請をしましょう。
4.S3のバケット名に「.」はつけてはいけない。
S3のバケット名に「.」をつけると、アクセスできなくなる可能性があります。
これは、S3でバケットを作成されるときに付与されるURLが関係しています。
S3では、httpまたはhttpsで通信を行いますが、SSL証明書には「*.s3-ap-northeast-1.amazonaws.com」というワイルドカードが用いられています。
バケット名に「.」をつけるとサブドメインとみなされてしまい、通信エラーが起こります。
5.RDSのパラメータグループの変更は、設定によって反映されるタイミングが違う。
RDSの設定変更は、パラメータグループの変更を行うが、変更すぐに反映されるものと、再起動を必要とするものがあります。
再起動が必要かどうかは、各設定の「Apply Type」から確認できます。
「Static」になっているものは、再起動が必要です。
6.RDSへの初回接続に時間がかかる。
AWSの仕様で「ファーストタッチペナルティ」というものがあります。
これは、初回接続時にデータが実ボリュームに格納されない時があるためです。
したがって、新規作成時に起こる事象というより、スナップショットから復元した際に起こる現象と言えるでしょう。
事前ウォーミングを行うことで、回避可能です。
7.デフォルトのVPCを削除してはいけない。
デフォルトのVPCには特別な役割があるようです。
画面に表示されるのが鬱陶しい時に、削除してしまうと予期せぬ不具合が発生することがあるようです。
削除後に、デフォルトのVPCと全く同じ設定を入れてもダメ見たいです。
削除してしまったら、AWSのサポートに問い合わせて作成してもらいましょう。
8.IAMの権限の強さは「Deny, Allow, デフォルトDeny」
Denyポリシーを適用しているときに、一部Allowポリシーを適用してもDenyポリシーが優先され実行できません。
9.全セキュリティーグループの作成上限は250個
上限を超える数は作成できません。
10.ネットワークACLはインバウンドだけでなく、アウトバウンドも許可が必要。
セキュリティーグループのようにインバウンドを許可しただけでは、通信ができません。
アウトバウンドにウェルノンポートを許可する設定を入れましょう。