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
初心者こそIaC!Terraformで学ぶAWS構築の基礎
Search
maimyyym
January 19, 2024
Technology
12k
32
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
初心者こそIaC!Terraformで学ぶAWS構築の基礎
2024/01/19
フレッシュメンLT #1 冬休みの自由研究
https://connpass.com/event/301006/
maimyyym
January 19, 2024
More Decks by maimyyym
See All by maimyyym
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
140
高負荷プロダクション環境におけるAWS Lambdaのリアル 〜スケールとコストを左右する実行ライフサイクルの技術仕様〜
maimyyym
2
880
少人数チームで実現する、大規模AWSサーバーレス基盤における"揺らがない"信頼性運用
maimyyym
1
180
組織内の開発ポリシーを 整えるはじめの一歩
maimyyym
1
100
未来の自分と明日の誰かへ繋ぐ、非連続的なキャリアと再現性の分析
maimyyym
0
190
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
3
2.6k
大規模サーバーレスAPIの堅牢性・信頼性設計 〜AWSのベストプラクティスから始まる現実的制約との向き合い方〜
maimyyym
11
6.5k
Amazon Inspector コードセキュリティで手軽に実現するシフトレフト
maimyyym
1
1k
組織とセキュリティ文化と、自分の一歩
maimyyym
3
1.7k
Other Decks in Technology
See All in Technology
子育てエンジニアの可処分時間が減っても成長を諦めない戦い方
sudoakiy
6
4.5k
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
700
大型犬好きによるPugの紹介
yamanoku
1
150
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
4
1.2k
Classmethod Company Deck
satoshi7
0
130
hackers_champloo_2026_tidb
makocchi
0
140
Running Kotlin + Quarkus with Lambda
nealle
1
450
不可逆な意思決定を避けながら10億超の顧客データを AI Ready にするデータ基盤設計
baseballyama
1
310
継続的なAIコスト最適化
bgpat
1
290
OR学会2026年秋期大会_機械学習と数理最適化の融合による、配合レシピ最適化システム開発事例
brainpadpr
0
130
会社説明資料
persolserverworks
0
9.7k
freeeらしさをAIとともに作る / Creating the freee Experience with AI
ymrl
0
220
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Marketing to machines
jonoalderson
1
5.9k
Practical Orchestrator
shlominoach
192
12k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
390
Designing Powerful Visuals for Engaging Learning
tmiket
1
600
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
400
Are puppies a ranking factor?
jonoalderson
2
4k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
300
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Transcript
初⼼者こそIaC︕ Terraformで学ぶAWS構築の基礎 フレッシュメンLT #1 冬休みの⾃由研究 2024.01.19 宮崎 真⾐ (@maimyyym) 1
アジェンダ • [0] はじめに • [1] AWS初⼼者の課題 • [2] 初⼼者にとってのTerraform
• [3] 具体例 • [4] 考察 • [5] まとめ 2
0 はじめに
私のここがフレッシュ 4
私のここがフレッシュ IT未経験 5
私のここがフレッシュ IT未経験 ⼊社3ヶ⽉ 6
⾃⼰紹介 宮崎 真⾐ Miyazaki Mai - Account - ︓@maimyyym -
Work at - 株式会社 Fusic (at 福岡︕) 技術本部/技術開発部⾨所属 - エンジニア - Skill - PHP(Laravel) - AWS - TypeScript 7 image
⾃⼰紹介 宮崎 真⾐ Miyazaki Mai - Account - ︓@maimyyym -
Work at - 株式会社 Fusic (at 福岡︕) 技術本部/技術開発部⾨所属 - エンジニア - Skill - PHP(Laravel) - AWS - TypeScript 8 image
私のここがフレッシュ(再) IT未経験 ⼊社3ヶ⽉ 9
私のここがフレッシュ(再) IT未経験 AWS実務経験なし 10
フレッシュな私の今⽇の話 認定試験に合格できる構築知識を学ぶために Terraformが役に⽴った︕ という話をします 11
どんな話を︖ # この発表で話さないこと 12 • 細かい制御の話 • 実際の開発運⽤の話 • CDKについて
どんな話を︖ # 話すこと 13 • 初⼼者こそIaC(Terraform)がおすすめ︕という主張 • 学び⽅の話
01 AWS初⼼者の課題
⽤語の整理 # AWSとは 15 Amazonが提供するクラウドプラットフォーム # AWS認定試験とは クラウド(AWS)に関する 専⾨知識・スキルを証明する ための資格試験
引⽤︓https://aws.amazon.com/jp/certification/
⽤語の整理 # AWSとは 16 Amazonが提供するクラウドプラットフォーム # AWS認定試験とは クラウド(AWS)に関する 専⾨知識・スキルを証明する ための資格試験
引⽤︓https://aws.amazon.com/jp/certification/
認定試験に必要な知識 # SAP や SCS に共通して必要な知識 17 ※個⼈的な所感です ユーザーやリソースのアクセスに関する ポリシー、ロールなどの権限設定
認定試験に必要な知識 # SAP や SCS に共通して必要な知識 18 “ユーザーやリソースのアクセスに 関するポリシー、ロールなどの 権限設定”
・・・︖🤔 →こういう問題︕ SCS-C01公式サンプル問題より引⽤ (※現在のバージョンはC02)
認定試験に必要な知識 # SAP や SCS に共通して必要な知識 19 • この問題は読み取り許可の話。 •
実際は複数の権限設定がある。 • 試験問題を解くためには、 全てを理解している必要がある (バケットポリシー)
⽤語の整理 # SAP や SCS に共通して必要な知識 20 考えること、多すぎ︕ やってもやっても覚えられない🤯
⽤語の整理 # SAP や SCS に共通して必要な知識 21 でも、なんとか整理できました
⽤語の整理 # SAP や SCS に共通して必要な知識 22 Terraformのおかげ︕
02 初⼼者にとっての Terraform
Terraform︖ 24 IaC (Infrastructure as Code)ツールの⼀つ # Terraformとは
IaCとは # IaC (Infrastructure as Code)とは 25 サーバーやネットワーク、ストレージなどの インフラストラクチャをコードで管理すること
IaCとは # AWSにとってのIaC 26 CloudFormation CDK Terraform AWS環境構築のためのAWSが提供するIaCサービス。 JSONまたはYAMLでテンプレートを定義する。 AWSクラウド開発キット=プログラミング⾔語を使⽤して記述したインフラ定義を
CloudFormationを通じてデプロイするためのフレームワーク。 HashiCorp社によって開発されたオープンソースのIaCツール。HCLという⾔語で記述。 AWSだけではなく、AzureやGCP等のクラウドサービスでも使える。
IaCとは 27 • インフラ環境構築を⾃動化 → ⼿作業のコスト・ミスの減少 • 設定の追加や変更が容易になる • チームで管理しやすい
# IaC化のメリット
でも・・・ 28 IaCって上級者向けでは︖ むずかしそう・・・
でも・・・ 29 特にTerraformは インフラエンジニアじゃないと ハードルが⾼そう(※偏⾒)
やってみよう 30 どうせいつか使うし、 やってみよう・・・︕
やってみよう 31 やってみた
Terraform # 初⼼者にとってのTerraformの利点 32 • 必要なリソースが分かる • 必要な設定が分かる • 各リソースの関係性・構築の全体像が分かる
03 具体例
やってみる # 構成図 34 SessionManagerからEC2に接続してS3バケットを表⽰したい︕
やってみる # 構成図 35
やってみる # 必要なリソース 36 • VPC • サブネット • EC2インスタンス
• S3バケット • VPCエンドポイント • セキュリティグループ (EC2、VPCエンドポイントにアタッチ) • IAMロール (S3権限、SSM権限のポリシーをアタッチ) • SessionManager⽤ • S3⽤
やってみる # 必要なリソース 37 • VPC • サブネット • EC2インスタンス
• S3バケット • VPCエンドポイント • セキュリティグループ (EC2、VPCエンドポイントにアタッチ) • IAMロール (S3権限、SSM権限のポリシーをアタッチ) • SessionManager⽤ • S3⽤ 本⽇は⼀部のみ抜粋します
やってみる # マネジメントコンソールの場合 38 • VPC作成 • サブネット作成 ※推奨される設定が デフォルトで既に⼊っている。
例︓CIDRブロック
やってみる # マネジメントコンソールの場合 39 • EC2インスタンス起動 ※推奨される設定が デフォルトで既に⼊っている。 例︓AMI インスタンスタイプ
セキュリティグループ
やってみる # マネジメントコンソールの場合 40 • EC2⽤IAMロールの作成 ※推奨される設定が デフォルトで既に⼊っている。 例︓信頼ポリシー
やってみる # マネジメントコンソールの場合 41 ※その他リソースの作成は省略 ネットワークリソース、サーバー関連だけでも 必要・推奨の設定が分かりやすく⽰されている ⚠実案件での運⽤ではなく、あくまで学習時の話です
やってみる # IaCの場合 - Terraform 42 • VPC • サブネット
やってみる # IaCの場合 - Terraform 43 • VPC • サブネット
◎CIDRブロックの記述
やってみる # IaCの場合 - Terraform 44 • EC2インスタンスとIAM ※SSM⽤のポリシーのみ付与している状態のため、S3⽤に さらに記述が必要。
やってみる # IaCの場合 - Terraform 45 • EC2インスタンスとIAM ◎AMIとインスタンスタイプの選択 ◎IAMポリシー
→ IAMロール → インスタンスプロファイルの流れ が分かりやすい ◎ポリシーの記述 ※SSM⽤のポリシーのみ付与している状態のため、S3⽤に さらに記述が必要。
やってみる # IaCの場合 - Terraform 46 • CIDRブロックを考える必要がある • AMI、インスタンスタイプを⾃ら考えて選ぶ必要がある
• IAMロール、ポリシーの関連が分かりやすい • ポリシーを記述することで、⼿で覚えることができる
04 考察
マネコン VS Terraform # どうして、Terraform︖ - CDKを選ばない理由 48 • 宣⾔的である
リソース作成に必要な設定をコードで可視化 各種プロパティ名が実際のリソース名・設定項⽬とほぼ同じ → コードを⾒れば中⾝が分かる • マルチプラットフォーム対応 抽象化が難しい︖全ての記述が必要 → ツール側で補うことがないため、隅々まで学べる
マネコン VS Terraform # マネジメントコンソールの必要性 49 • IaCツールはユーザー依存 設定・管理は全てユーザーの記述による。 コンソールはAWS側から⾒たリソースの状態が⽰されている。
必要な設定への導線もある (IaCにはない。※⽣成AIがここで役⽴つ︕) • 「IaCで作成→マネコンで確認」が⼤事 ⾃分が書いた設定とAWS上の設定を対⽐→理解が深まる
マネコン VS Terraform # IaCと⽣成AI 50 • IaCツールの利⽤に⽣成AIはほぼ必須 ※学習⽬的において コードの⾃動補完は必要な設定の導線となる。
⽣成されたコードを⼀⾏ずつ理解することが学びとなる。 →学習スピードUPには不可⽋。
05 まとめ
ちなみに、この発表のきっかけは 52 # 実際に構築して学びが⼤きかった ⼊社時研修で取り組んでみた Laravelアプリケーション構成 (CI/CDパイプライン込み)
ちなみに、この発表のきっかけは 53 # 実際に構築して学びが⼤きかった 【得られたこと】 • パブリックサブネットとIGW、各ルートテーブル • ALBの各設定項⽬ •
セキュリティグループの関連付け • ECS: タスクロールとタスク実⾏ロール • ECS: CloudWatchLogsの設定が必要 • ParameterStoreのSecureString値取得に必要な KMS権限 • CI/CDパイプライン構築⽅法(初の取り組みだった)
ちなみに、この発表のきっかけは 54 # 実際に構築して学びが⼤きかった 【得られたこと】 • パブリックサブネットとIGW、各ルートテーブル • ALBの各設定項⽬ •
セキュリティグループの関連付け • ECS: タスクロールとタスク実⾏ロール • ECS: CloudWatchLogsの設定が必要 • ParameterStoreのSecureString値取得に必要な KMS権限 • CI/CDパイプライン構築⽅法(初の取り組みだった) <どんな設定がどのリソースに必要か>
資格試験に有⽤だったこと 55 • ポリシーの記述→そのまま覚えられる • 複雑な構成における設定の抜け漏れが分かる • Professional、Spacialtyレベルで必要な細部までの理解 ができる
資格試験に有⽤だったこと 56 • ポリシーの記述→そのまま覚えられる • 複雑な構成における設定の抜け漏れが分かる • Professional、Spacialtyレベルで必要な細部までの理解 ができる
実務にもつながる 57 細部までの理解 実案件の開発・運⽤には必須
初⼼者にとってのTerraform 58 AWS構築に必要な知識を網羅して学ぶことができる
初⼼者にとってのTerraform 59 AWS構築に必要な知識を網羅して学ぶことができる
初⼼者にとってのIaC 60 • ⽬と⼿で覚えるタイプには抜群の効果がある • CDKにも初⼼者にとってのメリットがある(本⽇は省略) • 学習も開発運⽤も、ツールは適材適所で選ぶ # 補足
Point AWS初⼼者、考えること・理解すべきことが膨⼤に感じていた Point 3 Terraformの”細部まで網羅して記述する必要性” = 学びにとって有⽤ 61 Point 1
TerraformでAWS環境を構築したら、整理して覚えることができた︕ Point 2 初⼼者こそコードでインフラ構築をやってみよう︕ Point 4
ご清聴いただきありがとうございました Thank You We are Hiring ! https://recruit.fusic.co.jp/