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
TerraformでEC2 Auto Scaling構築してみた
Search
tessy
July 25, 2023
Technology
4
1.1k
TerraformでEC2 Auto Scaling構築してみた
Terraformを利用して、EC2 Auto Scalingを構築してみました。
Terraformの第一歩としての説明や、ベストプラクティス的なフォルダ構成などを簡単に説明しています。
tessy
July 25, 2023
Tweet
Share
More Decks by tessy
See All by tessy
Kindに頼らない!おうちで構築するマルチマスターKubernetes Cluster
tessy
0
130
ALBがついに対応したmTLS認証でトラストストア、パススルーを検証してみた
tessy
1
3.8k
Cloudflareで取得したドメインをRoute53+ACMで管理する
tessy
1
350
EC2 AutoScalingでスケーリングポリシー設定を失敗してうまく行かなった件とその対策
tessy
0
900
Other Decks in Technology
See All in Technology
「ヒットする」+「近い」を同時にかなえるスマートサジェストの作り方.pdf
nakasho
0
140
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
7
7.1k
vLLM Community Meetup Tokyo #3 オープニングトーク
jpishikawa
0
190
Claude Codeが爆速進化してプラグイン追従がつらいので半自動化した話 ver.2
rfdnxbro
0
400
AWSをCLIで理解したい! / I want to understand AWS using the CLI
mel_27
2
130
Kaggleで鍛えたスキルの実務での活かし方 競技とプロダクト開発のリアル
recruitengineers
PRO
1
180
Databricksアシスタントが自分で考えて動く時代に! エージェントモード体験もくもく会
taka_aki
0
340
Eight Engineering Unit 紹介資料
sansan33
PRO
1
6.9k
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
4
990
AIエージェント・エコノミーの幕開け 〜 オープンプロトコルが変えるビジネスの未来 〜
shukob
0
110
ビズリーチにおける検索・推薦の取り組み / DEIM2026
visional_engineering_and_design
1
110
わたしがセキュアにAWSを使えるわけないじゃん、ムリムリ!(※ムリじゃなかった!?)
cmusudakeisuke
1
350
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
620
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
120
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Un-Boring Meetings
codingconduct
0
220
Amusing Abliteration
ianozsvald
0
120
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Chasing Engaging Ingredients in Design
codingconduct
0
130
Transcript
EC2 Auto Scaling ⽇本IBM ⼿嶋 達也 2023/7/25 で 作成してみた。
⾃⼰紹介 @tterima Teshima-Tatsuya 主なAWS資格
IaC(Infrastructure As Code)であり、インフラ環境(主にCloud)をコード化して管理可能なOSS HCL(Hashicorp Configuration Language)という独⾃の⾔語で設定を記述する。 ▪公式サイト https://www.terraform.io/ 主にローカルにterraformコマンドをインストールして実⾏する。 Terraform
Cloudというものもある。
Terraformで出来ること 各種プロバイダを利⽤してインフラを構築することが出来る。 ▪プロバイダ⼀覧 https://registry.terraform.io/browse/providers 各種Cloudやローカルリソース なども扱える ▪AWSプロバイダ https://registry.terraform.io/providers/hashicorp/aws/latest
公式サイトの⾒⽅ Resources →作成対象 Data Sources →既存のリソース情報を参照
初期設定 下記から環境に応じたインストールを⾏う。 • https://www.terraform.io/downloads Macの場合はこれだけ。WindowsはexeをDL可能 各種プロバイダに応じた設定を⾏う。
Terraformはじめの⼀歩 〜サブネットを構築してみる〜
サブネット構築(構成) • VPC内にサブネットが⼀つ存在する例を作成する。
サブネット構築(初期設定) TerraformをAWS上で扱うためには、terraformが必要な権限 を有しているアカウントを利⽤する必要がある。 Terraformはデフォルトでは「~/.aws/credentials」の情報を 利⽤するため、aws cliをインストールして「aws configure」 を実⾏して初期設定する。 もしくは環境変数にアカウント情報を追加する
サブネット構築(フォルダ構成) . └ main.tf
サブネット構築(リソース定義) プロバイダ設定 VPCリソース サブネットリソース Terraformはコマンド実⾏するフォルダに存在する*.tfファイルを⾛査する。 今回は1ファイルだが、上記の設定をファイル分割しても良いし、同じファイルにしても良 い。 ⾒通しを良くするためには、ファイル分割をするのが良い。
サブネット構築(リソース反映) • terraform init • terraformで利⽤するプロバイダ、モジュール等を初期設定
サブネット構築(リソース反映) • terraform plan • 実⾏計画の表⽰(実⾏時エラーは防げないため、過信は禁物) • terraform apply •
環境への反映 未設定の部分は デフォルト値が⼊る ARNなど、実際に作成した後に 確定する値は作成するまで不明
サブネット構築(リソース反映) 反映後は「stateファイル」と呼ばれるファイルに実際の結果 が反映される。
State(構成ファイル)について Terraformは実⾏結果をstateと呼ばれるファイルに記録する。 この記録と現在の設定ファイルをチェックして、差分が存在する場合は差分反映を⾏ う。 同時に、実際のインフラ環境のチェックもして、差分がある場合は、設定ファイルを 基に正しい設定に戻すことも可能。 なお、このファイルには機密データが⼊り込む場合があるため、 絶対にパブリックリポジトリ等にアップしないこと!! (githubとかに置くと簡単に侵⼊されちゃうよ) デフォルトの設定だとローカルにファイルを保存するが、複数⼈で作業する場合は、
同⼀のStateを⾒る必要があるため、通常S3等に配置し、DynamoDBで実⾏時の排他 制御を⾏う。
EC2 Auto Scalingを構築する
EC2 Auto Scaling(構成)
EC2 Auto Scaling(フォルダ構成) . ├── env │ └── prod │
├── backend.tf │ ├── main.tf │ ├── provider.tf │ └── variables_vpc.tf │ └── test │ ├── …. └── modules ├── elb ├── iam ├── s3 ├── vpc │ ├── ….tf └── web-server ├── ….tf mainでモジュール呼び出し 変数はvariables_XXX 設定情報などはその他ファイル それぞれのまとまりをmoduleとして表現 して、環境ごとに同じ設定を使う。 変数でそれぞれの環境の差分を管理してい く
EC2 Auto Scaling(各ファイル抜粋) main.tf variables_vpc.tf aws_subnet.tf これらを作成し、main.tfがあるフォルダに移動して、以下を実⾏すると、 あっという間に環境の出来上がり • terraform
plan • terraform apply
Terraform(その他IaaC)を上⼿に利⽤するために。 • 対象のリソースで何を作成する必要があるのかをコンソール上な どで把握する。 • 作ってみたら、ステップバイステップでapplyまで実施して、 都度、エラーチェック等を⾏う。 • リソース間の作成順序を保つために、「vpc_id =
aws_vpc.main.id」のようにほかリソースを参照する • 、「vpc_id = “xxxxxx”」のような書き⽅だとterraformは順序を検知出来 ない • モジュールを活⽤する。 • とにかく検証を繰り返す!壊して何度も作り直す!
終わり