Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ちょいテク100本ノック。できるまで帰しません 。今から使えるちょいテク集
Search
shogomuranushi
February 06, 2020
1
2.7k
ちょいテク100本ノック。できるまで帰しません 。今から使えるちょいテク集
shogomuranushi
February 06, 2020
Tweet
Share
More Decks by shogomuranushi
See All by shogomuranushi
ノーコード x ChatBotで遊んでたら ReActを実装しそうだった話
shogomuranushi
0
1.2k
ChatGPT関連情報の追い方、個人・業務での使い方、サービスへの組み込み方、 ABEJAでの取り組み4例、ここ2週間のトピックなど行けるところまで
shogomuranushi
5
1.9k
FPが教える iDeCo のすごさ
shogomuranushi
0
130
AWS Control Tower導入してハッピーになりました
shogomuranushi
0
230
EKS を使ってる人から見た App Runner
shogomuranushi
7
2.4k
Suggested Topicの質問に可能な限り答えてみた
shogomuranushi
0
1.1k
顧客のアプリケーションコードが動くマルチテナント環境における課題とEKSにたどり着くまで
shogomuranushi
0
1.6k
after of Infrastructure-as-Code-is-very-tired
shogomuranushi
16
3.4k
what is Cloud Run?
shogomuranushi
2
110
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Adopting Sorbet at Scale
ufuk
73
9.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
890
Unsuck your backbone
ammeep
668
57k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Side Projects
sachag
452
42k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Building Applications with DynamoDB
mza
90
6.1k
Code Review Best Practice
trishagee
64
17k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Transcript
ちょいテク100本ノック。 できるまで帰しません 明日から、今日から、今から使えるちょいテク集 JAWS-UG Osaka 「知ってると役立つ、AWSちょいテク祭り」 Shogo Muranushi
None
CLI
個人に発行した IAMクレデンシャルの ローテーションどうしてます?
• 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
複数のAWSアカウント利用している時 に −−profile 打つの面倒ですよね
• インタラクティブに AWS Profile をスイッチでき るやつ • MFAは非対応なので今は使ってない。でも Profile名覚えなくていいのでかなり便利でした •
alias ax="source _awsp"
• 複数の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
どのAWSアカウントが設定されている かわからん
• いちいち細かいコマンドまで覚えない • サクッとどのAWSアカウントのクレデンシャルが設定されているか確認し たい • s3 と ls くらいは覚えられる
クレデンシャルが正しく設定されているかの確認方法
• いちいち細かいコマンドまで覚えない • サクッとどのAWSアカウントのクレデンシャルが設定されているか確認し たい • s3 と ls くらいは覚えられる
$ aws s3 ls クレデンシャルが正しく設定されているかの確認方法
Terraformの0.11と0.12って変わりすぎじゃね? 0.12に上げたら既存のコード動かないんだけど
• 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
コンソール
セキュリティ要件でMFA有効にして 毎日MFA入れている方に朗報です
U2F セキュリティキーの有効化 + Krypton • U2F いわゆる YubiKey 等で多要素認証するやつ •
Krypton と組み合わせれば、MFAコードを毎回入力することなく自動で ログインできる • CLIは非対応なので、コンソール用とCLI用のIAMユーザを保有しています +
コンソールの複数のAWSアカウントを切り 替えるスイッチロールの切り替え履歴5 件って少なくね?
• AWSコンソールのSwitch Roleは最大5個ま でしか記憶しないので沢山拡張してくれるやつ • Chrome / Firefox の拡張機能 •
アカウントに色を付けられるので、dev, stage, prodで色分けして使ってます [profile test] role_arn = arn:aws:iam::123456789012:role/test color = ffaaee
セキュリティ
入社するたびに「IAMユーザください」と言われる。 使わなくなっても言ってこないよね・・? クレデンシャルとか放置プレイで意識せぬままに漏洩とか、 いろいろ怖い
100日以上使用していないIAMユーザは問答無用で消す • 100日以上AWSのアクティビティが無い=要らないと判断し強い気持ちで削除 • メリット ◦ 個人のIAMユーザのクレデンシャルをシステムに組み込まない ▪ 退職時の個人アカウントリスクも防げる ◦
不要なアカウントの漏洩リスクが排除できる ▪ 使わない人に限ってパスワードが脆弱だったり ◦ は心理的安全性高い
ビリング
請求情報だけじゃ1つのAWSアカウント内で、 どの機能・プロジェクトでコストがかかってるか わからんぜよ
コスト配分タグを活用 • 解説 ◦ 一言でいうと、任意に付与した AWSリソースのタグでコストの集計 が可能 • ABEJAでは Key:
Project, Value: <機能名> を付与 している • リソースにタグ付け出来ないものもある ◦ CW LogsやEKSなど ◦ コストエクスプローラーで `No Tagkey: Project` で絞り込み 可能 • タグエディターで一括付与もできる
あなたが転職してAWS周りを 見ることになったら初めに何や るかシリーズ
一番目はBillingを見る • 無駄なリソースが無いか確認 ◦ プロビジョンドIOPSは高い ◦ 関連付けられていないEIP ◦ in-use状態じゃないEBS ◦
インスタンスがぶら下がっていないELB、など • 基本的にヒアリングしないと分からないけど、まずは金額が一番大きい ところから手をつける
二番目はSecurity Groupを見る • みんなやっちゃう 0.0.0.0/0 • 理由を必ず確認して閉じるアーキテクチャに変更しよう
三番目はIAMを見る • IAMユーザは全AWS環境で1人1つ。複数持たない • AWS内部のシステムはIAMロールに • AWS外部のシステムはやむを得ずIAMユーザで
デモをしてるとこの辺で20分位なはず • 残り ◦ Kubernetes系のちょいテク ◦ Terraform系のちょいテク
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 }
• Kubernetes の Terminal UI ツール • いちいちコマンド打たなくてもインタラクティブに管理できる
• Nodeの中身を俯瞰して可視化する ツール • NodeにどのようなPodが配置されて いるか • Nodeのリソース状況はどうか • コンテナの状態
• コンテナの使用率など
Terraformのちょいテク
Terraformのちょいテク 全部をTerraformで構築しようとするな 数時間かける位やったら手作業でもええやん
以上、ご清聴ありがとうございました