Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
110
ALBがついに対応したmTLS認証でトラストストア、パススルーを検証してみた
tessy
1
3.7k
Cloudflareで取得したドメインをRoute53+ACMで管理する
tessy
1
320
EC2 AutoScalingでスケーリングポリシー設定を失敗してうまく行かなった件とその対策
tessy
0
880
Other Decks in Technology
See All in Technology
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
7
1.5k
ハッカソンから社内プロダクトへ AIエージェント「ko☆shi」開発で学んだ4つの重要要素
sonoda_mj
6
1.7k
日本の AI 開発と世界の潮流 / GenAI Development in Japan
hariby
1
450
202512_AIoT.pdf
iotcomjpadmin
0
140
Lookerで実現するセキュアな外部データ提供
zozotech
PRO
0
200
【開発を止めるな】機能追加と並行して進めるアーキテクチャ改善/Keep Shipping: Architecture Improvements Without Pausing Dev
bitkey
PRO
1
130
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
500
Building Serverless AI Memory with Mastra × AWS
vvatanabe
0
560
AWSに革命を起こすかもしれない新サービス・アップデートについてのお話
yama3133
0
500
100以上の新規コネクタ提供を可能にしたアーキテクチャ
ooyukioo
0
250
オープンソースKeycloakのMCP認可サーバの仕様の対応状況 / 20251219 OpenID BizDay #18 LT Keycloak
oidfj
0
170
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
380
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
0
130
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
81
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
280
4 Signs Your Business is Dying
shpigford
186
22k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
WENDY [Excerpt]
tessaabrams
8
35k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
120
A Soul's Torment
seathinner
1
2k
Odyssey Design
rkendrick25
PRO
0
440
Leadership Guide Workshop - DevTernity 2021
reverentgeek
0
170
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は順序を検知出来 ない • モジュールを活⽤する。 • とにかく検証を繰り返す!壊して何度も作り直す!
終わり