Ponz Dev Log

ゆるくてマイペースな開発日記

AWSの各サービスを舐める (1) - IAM, EC2, RDS

今年の目標としてAWS 認定デベロッパー - アソシエイト(2018 June)を取ることを目標にしたので、 A CLOUD GURUのコースに沿って各サービスを舐めて回ることにしました。

気になるやつはGetting Startedをなぞって「へー( ˙꒳​˙ )」となるばかりだったので、これを機に使いこなしたいし。 最初の方から割と基本的なことが分かってなかったなと思うことが多いので、しばらくはブログ記事が備忘録になるかと思います笑

今回はタイトルにある、IAM, EC2, RDSのまとめです。

IAM

用語

  • ユーザー

    • AWSを利用する人
  • グループ

    • ユーザーの論理的なまとまり
    • グループに所属するユーザー全員に対してアクセス権限(できること/できないことを規定するもの)を設定・適用できる。
  • ポリシー

    • AWSリソースに対するアクセス権限の設定の論理的なセット
    • 実態はJSON文書
    • AWSで用意されたものだけじゃなく、自分で各リソースへのアクセス権限を設定可能
      • MFAの強制とかは自分でポリシーを作らないとダメっぽい
  • ロール

    • 名前の通り、AWSのアカウントにおける役割のこと。ユーザーまたはAWSリソースに対して付与する。
    • このロールにはポリシーを最大10個までつけることで権限を持つことができる。

ベストプラクティス

  • 個々の利用者にユーザー/アクセスキーを作る

    • ルートキーは漏れるとやばいので、まずは消せ。
    • 1つのアクセスキーは使いまわさない。使い回していると万が一キーを漏れた時に影響範囲が全員になってしんどい。
    • 1User, 1AccessKey / person
  • 権限はロールを使う

    • 同時に言うべきは、アクセスキー/シークレットキーを直接使わないこと
    • ロールに適切な権限をつけることで、ユーザーだけでなくリソースそのものが他のリソースにアクセスするのも安全。
  • 最低限の権限から始める

    • いきなりFull Accessが必要か?
    • 必要に応じて権限をゆるくするのが安全。

EC2

  • 仮想マシン

    • 仮想マシンスペックは汎用的なインスタンスだけでなく、I/O, メモリ, GPU特化のインスタンスもある。
    • OSやM/Wの入ったマシンイメージから作成する。
      • コミュニティイメージにはWAS入りのやつとかもあるので、探せばニッチなやつも見つかりそう。
    • 開発用のマシンが欲しいなら取り敢えずt2.microインスタンスを用意しておけば良さそう。
  • 永続ストレージ(EBS)

    • 自在にEC2に付け外しできるストレージ
    • SSD/HDDから選べる(その中でも更にボリュームサイズやスループットの性能で分類がある)
    • EC2にEBSのストレージをアタッチしてファイルシステムも作れるけど、それならEFS使ったほうが早くね?というのが素直な疑問。
    • 暗号化はもちろん、スナップショットも簡単に取れる。
      • スナップショットから仮想マシンイメージも作れる(!?)

RDS

  • RDBのマネージドサービス
  • 対象は6種類。Aurora以外はFree Teerもあるみたい。

  • 可用性を高めるには、MultiAZ or Backup or SnapShot

  • パフォーマンスを高めるには Read Replica

  • RDSで作られるDBのインスタンスリージョン固有になる。

    • セキュリティグループもリージョンにひもづく
    • EC2等の他のリソースからアクセスする場合はセキュリティグループのInBound/OutBoundで穴を開けておくこと。

次はS3やLambdaあたりを舐めまわそうかな。