Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ちょいテク100本ノック。できるまで帰しません 。今から使えるちょいテク集

F8f7692cb46c0f7feda5210a46b47bcf?s=47 shogomuranushi
February 06, 2020
1.4k

ちょいテク100本ノック。できるまで帰しません 。今から使えるちょいテク集

F8f7692cb46c0f7feda5210a46b47bcf?s=128

shogomuranushi

February 06, 2020
Tweet

Transcript

  1. ちょいテク100本ノック。 できるまで帰しません 明日から、今日から、今から使えるちょいテク集 JAWS-UG Osaka 「知ってると役立つ、AWSちょいテク祭り」 Shogo Muranushi

  2. None
  3. CLI

  4. 個人に発行した IAMクレデンシャルの ローテーションどうしてます?

  5. • 3行でAWSのクレデンシャルをローテーションしてくれるやつ • 1日1回自動ローテーションも可能 •   は心理的安全性高い • Windows版もあるらしい $

    brew tap rhyeal/aws-rotate-iam-keys https://github.com/rhyeal/aws-rotate-iam-keys $ brew install aws-rotate-iam-keys $ brew services start aws-rotate-iam-keys $ aws-rotate-iam-keys
  6. 複数のAWSアカウント利用している時 に −−profile 打つの面倒ですよね

  7. • インタラクティブに AWS Profile をスイッチでき るやつ • MFAは非対応なので今は使ってない。でも Profile名覚えなくていいのでかなり便利でした •

    alias ax="source _awsp"
  8. • 複数のAWSアカウントを利用している人、 Switch Role利用ユーザは必須 • CLIツールで --profile に対応していないコマン ドも assume

    role (Switch Role)出来る $ assume-role stage aws iam get-user or $ assume-role stage MFA code: xxxxxx $ aws s3 ls
  9. どのAWSアカウントが設定されている かわからん

  10. • いちいち細かいコマンドまで覚えない • サクッとどのAWSアカウントのクレデンシャルが設定されているか確認し たい • s3 と ls くらいは覚えられる

    クレデンシャルが正しく設定されているかの確認方法
  11. • いちいち細かいコマンドまで覚えない • サクッとどのAWSアカウントのクレデンシャルが設定されているか確認し たい • s3 と ls くらいは覚えられる

    $ aws s3 ls クレデンシャルが正しく設定されているかの確認方法
  12. Terraformの0.11と0.12って変わりすぎじゃね? 0.12に上げたら既存のコード動かないんだけど

  13. • Terraformをバージョンを切り替えられるやつ • 0.11系と0.12系の記述方法が結構違うのでバージョン依存はかなり 困る • 基本最新版を利用していたが、隣のチームの多数あるTerraformの コードを0.12に書き換えるのは不毛だったので切り替えツールを利用 し始めた $

    brew install tfenv $ tfenv install 0.11.14 $ tfenv install 0.12.20 $ tfenv list $ tfenv use 0.11.14
  14. コンソール

  15. セキュリティ要件でMFA有効にして 毎日MFA入れている方に朗報です

  16. U2F セキュリティキーの有効化 + Krypton • U2F いわゆる YubiKey 等で多要素認証するやつ •

    Krypton と組み合わせれば、MFAコードを毎回入力することなく自動で ログインできる • CLIは非対応なので、コンソール用とCLI用のIAMユーザを保有しています +
  17. コンソールの複数のAWSアカウントを切り 替えるスイッチロールの切り替え履歴5 件って少なくね?

  18. • AWSコンソールのSwitch Roleは最大5個ま でしか記憶しないので沢山拡張してくれるやつ • Chrome / Firefox の拡張機能 •

    アカウントに色を付けられるので、dev, stage, prodで色分けして使ってます [profile test] role_arn = arn:aws:iam::123456789012:role/test color = ffaaee
  19. セキュリティ

  20. 入社するたびに「IAMユーザください」と言われる。 使わなくなっても言ってこないよね・・? クレデンシャルとか放置プレイで意識せぬままに漏洩とか、 いろいろ怖い

  21. 100日以上使用していないIAMユーザは問答無用で消す • 100日以上AWSのアクティビティが無い=要らないと判断し強い気持ちで削除 • メリット ◦ 個人のIAMユーザのクレデンシャルをシステムに組み込まない ▪ 退職時の個人アカウントリスクも防げる ◦

    不要なアカウントの漏洩リスクが排除できる ▪ 使わない人に限ってパスワードが脆弱だったり ◦ は心理的安全性高い
  22. ビリング

  23. 請求情報だけじゃ1つのAWSアカウント内で、 どの機能・プロジェクトでコストがかかってるか わからんぜよ

  24. コスト配分タグを活用 • 解説 ◦ 一言でいうと、任意に付与した AWSリソースのタグでコストの集計 が可能 • ABEJAでは Key:

    Project, Value: <機能名> を付与 している • リソースにタグ付け出来ないものもある ◦ CW LogsやEKSなど ◦ コストエクスプローラーで `No Tagkey: Project` で絞り込み 可能 • タグエディターで一括付与もできる
  25. あなたが転職してAWS周りを 見ることになったら初めに何や るかシリーズ

  26. 一番目はBillingを見る • 無駄なリソースが無いか確認 ◦ プロビジョンドIOPSは高い ◦ 関連付けられていないEIP ◦ in-use状態じゃないEBS ◦

    インスタンスがぶら下がっていないELB、など • 基本的にヒアリングしないと分からないけど、まずは金額が一番大きい ところから手をつける
  27. 二番目はSecurity Groupを見る • みんなやっちゃう 0.0.0.0/0 • 理由を必ず確認して閉じるアーキテクチャに変更しよう

  28. 三番目はIAMを見る • IAMユーザは全AWS環境で1人1つ。複数持たない • AWS内部のシステムはIAMロールに • AWS外部のシステムはやむを得ずIAMユーザで

  29. デモをしてるとこの辺で20分位なはず • 残り ◦ Kubernetes系のちょいテク ◦ Terraform系のちょいテク

  30. kubectl系で使用しているalias # Kubernetes source <(kubectl completion zsh) alias k='kubectl' alias

    kx='kubectx' alias knx='kubens' alias kp='kubectl get pod' alias kpd='kubectl describe pod' alias kl='kubectl logs' alias kn='kubectl get node' alias kh='kubectl get hpa' function ke () { kubectl exec -it ${1} bash }
  31. • Kubernetes の Terminal UI ツール • いちいちコマンド打たなくてもインタラクティブに管理できる

  32. • Nodeの中身を俯瞰して可視化する ツール • NodeにどのようなPodが配置されて いるか • Nodeのリソース状況はどうか • コンテナの状態

    • コンテナの使用率など
  33. Terraformのちょいテク

  34. Terraformのちょいテク 全部をTerraformで構築しようとするな 数時間かける位やったら手作業でもええやん

  35. 以上、ご清聴ありがとうございました