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
1k
TerraformでEC2 Auto Scaling構築してみた
Terraformを利用して、EC2 Auto Scalingを構築してみました。
Terraformの第一歩としての説明や、ベストプラクティス的なフォルダ構成などを簡単に説明しています。
tessy
July 25, 2023
Tweet
Share
More Decks by tessy
See All by tessy
ALBがついに対応したmTLS認証でトラストストア、パススルーを検証してみた
tessy
1
3.4k
Cloudflareで取得したドメインをRoute53+ACMで管理する
tessy
0
240
EC2 AutoScalingでスケーリングポリシー設定を失敗してうまく行かなった件とその対策
tessy
0
830
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile
hr01
0
67k
Enhancing SaaS Product Reliability and Release Velocity through Optimized Testing Approach
ropqa
1
230
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
170
事業成長の裏側:エンジニア組織と開発生産性の進化 / 20250703 Rinto Ikenoue
shift_evolve
PRO
2
21k
Lufthansa ®️ USA Contact Numbers: Complete 2025 Support Guide
lufthanahelpsupport
0
190
Glacierだからってコストあきらめてない? / JAWS Meet Glacier Cost
taishin
1
160
CDKTFについてざっくり理解する!!~CloudFormationからCDKTFへ変換するツールも作ってみた~
masakiokuda
1
130
AI専用のリンターを作る #yumemi_patch
bengo4com
5
4.3k
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
Delta airlines Customer®️ USA Contact Numbers: Complete 2025 Support Guide
deltahelp
0
680
What’s new in Android development tools
yanzm
0
310
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
27k
Featured
See All Featured
The Language of Interfaces
destraynor
158
25k
A Tale of Four Properties
chriscoyier
160
23k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
RailsConf 2023
tenderlove
30
1.1k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Embracing the Ebb and Flow
colly
86
4.7k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Navigating Team Friction
lara
187
15k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Code Reviewing Like a Champion
maltzj
524
40k
Six Lessons from altMBA
skipperchong
28
3.9k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
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は順序を検知出来 ない • モジュールを活⽤する。 • とにかく検証を繰り返す!壊して何度も作り直す!
終わり