AWS リソースメモ
目的
転職して、インフラ周りをガッツリ触るようになった。
色々知識が増えたので、忘れないようにメモしておく。
Tips
Terraform
- 手動で、AWS コンソールから、リソースを作った場合は、Terraform import をすれば良い。 - やり方はterraformのドキュメントの一番下に書いてある。
- 少なくとも、RDSといったストレージ系や、Iam、VPCなどは、terraform stateを分離しておいた方が良い。
- 環境毎に使わないリソースとかできるし、terraform apply が早い
- Remote Stateを設定しておけば、他のStateのoutputを利用できる
AWS Session Manager
- session managerを使えば、SSHの設定とか、踏み台サーバーとかがいらない。
- ポートのリダイレクトができるので、LocalからVPC内のRDSにアクセスするということも簡単。
- EC2じゃなくて、Fargate でも使える!
Aurora
- IAMを用いた認証ができる。パスワードが不要なので、流出する心配がない。 - ただ、IAMユーザーを作ったりしないといけないので、ちょっとめんどい。 - ユーザーが IAM 認証情報で Amazon RDS に接続できるようにする
- Performance Insightsは神。とりあえず入れおくと良い。
- SlowQueryはもちろんのこと、Lockの状況とかも確認できる。
API Gateway
- Rest APIを使って、直接Kinesis streamに流したり、SQSにQueue入れたりできる。
- Mock機能もあるので、公開されてるAPIを使った負荷テストしたい時に、代用のAPIを作ることができる。
S3
- S3でサイトを作りたい時は、Static Website HostingをONにして使うと思う。が、これだと吐き出されるURLがhttpになる。 - なので、CloudFrontを前段に入れるのが多いが、その場合、もしIP制限したい場合はWAFが必要になる。
- 一方で、Static Website HostingをOFFにしちゃえば、IP制限はS3の方でできるので、簡単!
Kinesis Stream
- Kinesisには、Aggregationという考え方がある
こちらの記事わかりやすい - https://aws.typepad.com/sajp/2016/02/process-amazon-kinesis-aggregated-data-with-aws-lambda.html
この機能を使えるライブラリはAWSが提供してくれてるものだと、ちゃんと使えるものが、Javaにしかないので、Kinesis Streamにイベントを入れるところは、Javaを使うと、安くなる。
- Aggregationした後は、De-Aggregationしないといけない。
- Kinesis StreamはDynamoDBのレコード追加とかも、取得してくれるので便利!