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
DevelopersIO 2022 俺のTerraform Pipeline
Search
takakuni
July 29, 2022
Technology
10k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DevelopersIO 2022 俺のTerraform Pipeline
takakuni
July 29, 2022
More Decks by takakuni
See All by takakuni
ECS Express Mode
takakuni
0
47
AWS WAF Anti-DDoS Protection in 5 Minutes!
takakuni
0
690
AWS Backup Air-Gapped Vaults with Multi-Party Approval Explained in 5 Minutes!
takakuni
0
360
5min GuardDuty Extended Threat Detection EKS
takakuni
0
420
OpenAI models overview 202505
takakuni
0
490
[Sample] Validate hyperlink for Amazon Bedrock Data Automation
takakuni
0
340
Classmethod AI Talks #13
takakuni
0
500
About Extended Threat Detection in Amazon GuardDuty
takakuni
0
450
SageMaker Hyperpod 101 #regrowth_sapporo
takakuni
1
470
Other Decks in Technology
See All in Technology
Tab5をRubyで動くパソコンにする
kishima
2
260
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
320
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
310
When Does a Local Qwen Start to Break
morshoto
0
190
Adaptive Warehouse を今すぐ導入すべき理由と迷ったときの判断基準
__allllllllez__
0
120
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
240
2026-09-10 【Snowflake World Tour Tokyo 2026】dbt Core と Snowflake で実現する多層的なデータガバナンス / Multi-Layered Data Governance Powered by dbt Core and Snowflake
civitaspo
0
230
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
270
GuardDuty 検知対応を DevOps Agent で効率化しようとしている話 / GuardDuty Investigations with DevOps Agent
masahirokawahara
1
340
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
110
薬剤師(ドメインエキスパート)と一緒に育てる薬局向けAIアシスタント
kakehashi
PRO
2
120
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
270
Featured
See All Featured
The Invisible Side of Design
smashingmag
301
52k
Odyssey Design
rkendrick25
PRO
2
800
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
730
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Why Our Code Smells
bkeepers
PRO
340
58k
Designing for Performance
lara
611
70k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Transcript
俺のTerraform Pipeline AWS事業本部コンサルティング部 たかくに
2 ⾃⼰紹介 名前︓たかくに 所属︓AWS事業本部コンサルティング部 ⼊社︓2022年1⽉にジョイン 好きなAWSサービス︓Amazon VPC Twitter︓@takakuni_
3 アジェンダ ・お題 ・私の考えたアーキテクチャ ・ワークフローをざっくり解説 ・アーキテクチャ解説 ・詰まった点やこだわった点 ・まとめ
4 お題 ある企業ではAWSリソースのデプロイツールでTerraformを 採⽤しています。 企業ではさらなるIaC化推進の⼀環として、デプロイフローを CI/CDで実装することを検討しています。 あなたはこのCI/CDパイプラインをどのように設計しますか︖
5 私の⾒解 唯⼀解はないと思います。 (みんな違ってみんないい)
6 ツールの⼀例
7 私の考えたアーキテクチャ
8 私の考えたアーキテクチャ
9 ワークフロー
10 ワークフロー
11 ワークフロー
12 ワークフロー
13 ワークフロー
14 ワークフロー
15 ワークフロー
16 ワークフロー
17 ワークフロー
18 ワークフロー
19 アーキテクチャ解説
20 アーキテクチャ解説
21 アーキテクチャ解説
22 アーキテクチャ解説 (Lambda) CodeBuild (tfsec)の実⾏内容 exclude.ymlの例 tfsec -s --no-color --config-file
exclude.yml . tfsec -s --no-color --config-file exclude.yml . --format junit > reports/tfsec/report.xml --- exclude: # Ignoreしたいルールを記載 - aws-iam-enforce-mfa - aws-vpc-add-description-to-security-group
23 アーキテクチャ解説
24 アーキテクチャ解説 (tfsec) なぜ、Secrets Managerを使うのか →「Docker Hubのイメージ取得制限」を回避するため 添付画像:docker docsより引用
25 解決⽅法 ① Secrets Managerを使⽤して、認証ユーザー経由でイメー ジを取得する。 ②NAT Gatewayを使⽤して、IPアドレスを変更してイメージ を取得する。 ③イメージをECRに保存して、ECRからイメージを取得する。
26 解決⽅法 (Secrets Manager) ・Docker Hubへログインして認証 ユーザーとしてイメージを取得 ・「レジストリの認証情報」では、 Secrets Managerが必要
添付画像:AWS ナレッジセンターより引用
27 解決⽅法 (NAT Gateway)
28 解決⽅法 (ECR)
29 解決⽅法 ① Secrets Managerを使⽤して、認証ユーザー経由でイメー ジを取得する。 ②NAT Gatewayを使⽤して、IPアドレスを変更してイメージ を取得する。 ③イメージをECRに保存して、ECRからイメージを取得する。
30 解決⽅法 ① Secrets Managerを使⽤して、認証ユーザー経由でイメー ジを取得する。 →新しいイメージを使いたい。コスト最適化。 ②NAT Gatewayを使⽤して、IPアドレスを変更してイメージ を取得する。
→NAT Gatewayの使⽤⽤途が「CI/CDパイプラインに限る」 場合、コスパが悪い。 ③イメージをECRに保存して、ECRからイメージを取得する。 →バージョン管理が⼤変。古いイメージの使い回しの恐れ。
31 解決⽅法 “Too Many Requests.” でビルドが失敗する…。AWS CodeBuild で IP ガチャを回避するために
Docker Hub ロ グインしよう!という話 Docker オフィシャルイメージが ECR Public で利用可能 になりました #reinvent
32 アーキテクチャ解説
33 アーキテクチャ解説
34 アーキテクチャ解説 printenvコマンドの出⼒結果(⼀部抜粋)
35 アーキテクチャ解説
36 アーキテクチャ解説
37 アーキテクチャ解説 [AWS × Terraform] plan できるけど apply できない GitOps
な IAM ユーザーポリシーの設定方法 ・アーティファクト⽤のS3バケットへ の操作権限 ・S3、DynamoDBの暗号化で使⽤する KMSキーへの操作権限 ・CloudWatch Logsへのビルドログの 配信権限
38 まとめ
39 まとめ ・なるべくAWSリソースを使⽤した設計をご紹介 ・CodeBuildからDocker Hubへのイメージプルには注意 ・CodePipelineでは「名前空間」で値の受け渡しが可能 ・terraform planのIAMロールは「ReadOnlyAccess」が有効 TerraformのCI/CDパイプラインを実装してみた
None