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

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

shogomuranushi
February 06, 2020
2.4k

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

shogomuranushi

February 06, 2020
Tweet

More Decks by shogomuranushi

Transcript

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

    View full-size slide

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

    View full-size slide

  3. ● 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

    View full-size slide

  4. 複数のAWSアカウント利用している時
    に −−profile 打つの面倒ですよね

    View full-size slide

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

    View full-size slide

  6. ● 複数の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

    View full-size slide

  7. どのAWSアカウントが設定されている
    かわからん

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. Terraformの0.11と0.12って変わりすぎじゃね?
    0.12に上げたら既存のコード動かないんだけど

    View full-size slide

  11. ● 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

    View full-size slide

  12. コンソール

    View full-size slide

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

    View full-size slide

  14. U2F セキュリティキーの有効化 + Krypton
    ● U2F いわゆる YubiKey 等で多要素認証するやつ
    ● Krypton と組み合わせれば、MFAコードを毎回入力することなく自動で
    ログインできる
    ● CLIは非対応なので、コンソール用とCLI用のIAMユーザを保有しています

    View full-size slide

  15. コンソールの複数のAWSアカウントを切り
    替えるスイッチロールの切り替え履歴5
    件って少なくね?

    View full-size slide

  16. ● AWSコンソールのSwitch Roleは最大5個ま
    でしか記憶しないので沢山拡張してくれるやつ
    ● Chrome / Firefox の拡張機能
    ● アカウントに色を付けられるので、dev, stage,
    prodで色分けして使ってます
    [profile test]
    role_arn = arn:aws:iam::123456789012:role/test
    color = ffaaee

    View full-size slide

  17. セキュリティ

    View full-size slide

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

    View full-size slide

  19. 100日以上使用していないIAMユーザは問答無用で消す
    ● 100日以上AWSのアクティビティが無い=要らないと判断し強い気持ちで削除
    ● メリット
    ○ 個人のIAMユーザのクレデンシャルをシステムに組み込まない
    ■ 退職時の個人アカウントリスクも防げる
    ○ 不要なアカウントの漏洩リスクが排除できる
    ■ 使わない人に限ってパスワードが脆弱だったり
    ○ は心理的安全性高い

    View full-size slide

  20. ビリング

    View full-size slide

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

    View full-size slide

  22. コスト配分タグを活用
    ● 解説
    ○ 一言でいうと、任意に付与した
    AWSリソースのタグでコストの集計
    が可能
    ● ABEJAでは
    Key: Project, Value: <機能名> を付与
    している
    ● リソースにタグ付け出来ないものもある
    ○ CW LogsやEKSなど
    ○ コストエクスプローラーで
    `No Tagkey: Project` で絞り込み
    可能
    ● タグエディターで一括付与もできる

    View full-size slide

  23. あなたが転職してAWS周りを
    見ることになったら初めに何や
    るかシリーズ

    View full-size slide

  24. 一番目はBillingを見る
    ● 無駄なリソースが無いか確認
    ○ プロビジョンドIOPSは高い
    ○ 関連付けられていないEIP
    ○ in-use状態じゃないEBS
    ○ インスタンスがぶら下がっていないELB、など
    ● 基本的にヒアリングしないと分からないけど、まずは金額が一番大きい
    ところから手をつける

    View full-size slide

  25. 二番目はSecurity Groupを見る
    ● みんなやっちゃう 0.0.0.0/0
    ● 理由を必ず確認して閉じるアーキテクチャに変更しよう

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  28. 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 }

    View full-size slide

  29. ● Kubernetes の Terminal UI ツール
    ● いちいちコマンド打たなくてもインタラクティブに管理できる

    View full-size slide

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

    View full-size slide

  31. Terraformのちょいテク

    View full-size slide

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

    View full-size slide

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

    View full-size slide