Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
68
AWS WAF Anti-DDoS Protection in 5 Minutes!
takakuni
0
720
AWS Backup Air-Gapped Vaults with Multi-Party Approval Explained in 5 Minutes!
takakuni
0
380
5min GuardDuty Extended Threat Detection EKS
takakuni
0
430
OpenAI models overview 202505
takakuni
0
510
[Sample] Validate hyperlink for Amazon Bedrock Data Automation
takakuni
0
350
Classmethod AI Talks #13
takakuni
0
520
About Extended Threat Detection in Amazon GuardDuty
takakuni
0
470
SageMaker Hyperpod 101 #regrowth_sapporo
takakuni
1
480
Other Decks in Technology
See All in Technology
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
440
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
100
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
170
高負荷プロダクション環境におけるAWS Lambdaのリアル 〜スケールとコストを左右する実行ライフサイクルの技術仕様〜
maimyyym
2
850
Codex概要
ymiya55
0
250
Claude Designがめちゃくちゃ便利なので使ってほしい
diggymo
0
260
The kernel report
ennael
PRO
1
210
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
210
AWS FinOps Agent 結局何が得意なの?
siromi
0
230
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
300
営業オントロジーの作り方と、エージェントからの辿り方 ── ナレッジワークの現場から
kworkdev
PRO
1
240
大阪オフィスに Unitree Go2 がやってきたので Physical AI やってみた
dafujii
0
250
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
How to train your dragon (web standard)
notwaldorf
97
6.8k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
490
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
550
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
410
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Rails Girls Zürich Keynote
gr2m
96
14k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
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