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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
takakuni
July 29, 2022
Technology
10k
0
Share
DevelopersIO 2022 俺のTerraform Pipeline
takakuni
July 29, 2022
More Decks by takakuni
See All by takakuni
ECS Express Mode
takakuni
0
28
AWS WAF Anti-DDoS Protection in 5 Minutes!
takakuni
0
510
AWS Backup Air-Gapped Vaults with Multi-Party Approval Explained in 5 Minutes!
takakuni
0
240
5min GuardDuty Extended Threat Detection EKS
takakuni
0
300
OpenAI models overview 202505
takakuni
0
380
[Sample] Validate hyperlink for Amazon Bedrock Data Automation
takakuni
0
240
Classmethod AI Talks #13
takakuni
0
360
About Extended Threat Detection in Amazon GuardDuty
takakuni
0
350
SageMaker Hyperpod 101 #regrowth_sapporo
takakuni
1
380
Other Decks in Technology
See All in Technology
システムは「動く」だけでは足りない 実装編 - 非機能要件・分散システム・トレードオフをコードで見る
nwiizo
3
340
GitHub Copilotを極める会 - 開発者のための活用術
findy_eventslides
7
4.1k
組織的なAI活用を阻む 最大のハードルは コンテキストデザインだった
ixbox
6
1.8k
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
23k
本番環境でPHPコードに触れずに「使われていないコード」を調べるにはどうしたらよいか?
egmc
2
290
建設的な現実逃避のしかた / How to practice constructive escapism
pauli
4
320
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
74k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.4k
CloudSec JP #005 後締め ~ソフトウェアサプライチェーン攻撃から開発者のシークレットを守る~
lhazy
0
170
申請待ちゼロへ!AWS × Entra IDで実現した「権限付与」のセルフサービス化
mhrtech
1
280
【PHPカンファレンス小田原2026】Webアプリケーションエンジニアにも知ってほしい オブザーバビリティ の本質
fendo181
0
580
すごいぞManaged Kubernetes
harukasakihara
1
390
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
68
38k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
330
From π to Pie charts
rasagy
0
160
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Ruling the World: When Life Gets Gamed
codingconduct
0
190
The Limits of Empathy - UXLibs8
cassininazir
1
290
The untapped power of vector embeddings
frankvandijk
2
1.7k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
720
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
130
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
400
Mobile First: as difficult as doing things right
swwweet
225
10k
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