Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
IaC(CloudFormaitonでログ運用と監視システムを作ってみて)
Search
hiyanger
November 11, 2023
Technology
0
96
IaC(CloudFormaitonでログ運用と監視システムを作ってみて)
2023/11/2 KDH
hiyanger
November 11, 2023
Tweet
Share
More Decks by hiyanger
See All by hiyanger
もういっそ AWS できなくても AWS できるようになるシステム作った
hiyanger
0
100
Terraform CI/CD パイプラインにおける AWS CodeCommit の代替手段
hiyanger
1
280
AWS 構成図を S3 にアップするだけで Terraform のコードを git push / pull request から terraform plan まで自動で動作するシステム
hiyanger
9
2.5k
テックブログのレベルを上げるために 抑えておくべき3つのポイント
hiyanger
0
88
もくもく会はなぜ良いのか?
hiyanger
0
70
AWS Codeシリーズ Terraformパイプライン 勉強会/ハンズオン
hiyanger
0
110
AWS Codeシリーズで構築したTerraformパイプラインのユーザー側IAM
hiyanger
0
140
AWS Codeシリーズを使った TerraformのCICDパイプラインの作り方
hiyanger
1
580
Codeシリーズで作るTerraformのCICDパイプラインの概要
hiyanger
2
340
Other Decks in Technology
See All in Technology
Engineer Recruting Deck
siva_official
PRO
1
3.2k
累計2500万着電を支える大規模 電話自動応答サービスのアーキテクチャ / Architecture of a Large-Scale Automated Phone Response Service Supporting 25 Million Cumulative Calls
ymachida
8
4.2k
241130紅白ぺぱ合戦LT「編集の技術」
toya524287
5
560
AWS re:Invent 2024 予選落ちのBedrockアプデをまとめて解説!
minorun365
PRO
2
230
セキュリティベンダー/ユーザー双方の視点で語る、 Attack Surface Managementの実践 - Finatextパート / cloudnative-architecture-of-asm
stajima
0
2.5k
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
30
15k
次のコンテナセキュリティの時代 - User Namespace With a Pod / CloudNative Days Winter 2024
pfn
PRO
4
420
Postman Flowsで作るAPI連携LINE Bot
miura55
0
220
Microsoft Ignite 2024 Update 2 - AIとIoT関連の最新情報をどこよりも早く!
iotcomjpadmin
0
270
Kubernetes だけじゃない!Amazon ECS で実現するクラウドネイティブな GitHub Actions セルフホストランナー / CNDW2024
ponkio_o
PRO
6
410
Hyperledger Fabric(再)入門
gakumura
3
6.7k
実践/先取り「入門 Kubernetes Validating/Mutating Admission Policy」 / CloudNative Days Winter 2024
pfn
PRO
1
140
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Gamification - CAS2011
davidbonilla
80
5k
Docker and Python
trallard
40
3.1k
Site-Speed That Sticks
csswizardry
0
85
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
A designer walks into a library…
pauljervisheath
204
24k
Transcript
〜TerraformerがAWS CloudFormationで環境作ってみた〜 ITインフラのコード化(IaC)
自己紹介 名前:檜山 準(ひやま じゅん) 所属:IRET お仕事:インフラエンジニア
-分析基盤の構築/保守/運用 -データチェックサーバの構築 出身:栃木県
外部でいろいろ活動してます😏 8/27 CloudFormationの本をZennで出す 9/26 JAWS-UG東京 ランチタイムLT
10/26 めぐろLT(ラクスル) 10/27 IRETスプラトゥーン大会 予選突破 11/3 KDH 登壇 ★いまここ 11/12 技術書典 出店 11/22 Cloud Security Day 2023 LT 12/22 IRETスマブラ大会 決勝出場予定 未定 CICDのZenn本 未定 JAWS-UG朝会 LT もろもろ「hiyanger」で活動してます! いろいろやりたいのでなんでもお声がけください!
〜レベル1〜 IaC(infrastructure as code)とは 〜レベル2〜 ① CloudFormtionで環境構築するにあたって必要な事前知識
② TerraformとCloudFormationの比較 〜レベル3〜 CloudFormationで環境構築して困ったことと、その対処方法 今日お話しすること(幅広くお話しします!)
〜レベル1〜 IaC(infrastructure as code)とは 〜レベル2〜 ① CloudFormtionで環境構築するにあたって必要な事前知識
② TerraformとCloudFormationの比較 〜レベル3〜 CloudFormationで環境構築して困ったことと、その対処方法 今日お話しすること(幅広くお話しします!)
6 IaCの前にそもそもインフラ(infrastructure)とは?
インフラ(infrastructure)とは ここが ITインフラだよ スマホなどをはじめとした アプリケーションなどで使われる 受け皿てきな存在です。
IaCとは インフラはAWSでは200以上ある様々なサービス画面からポチポチと構築します。 これらをコード化することを Iac(infrastructure as code) と呼びます。
IaCのメリット 構築における正義である、 スピードと精度の両方を爆上げできます。 まだコード化されてないインフラは、是非IaCを推進していきましょう! 再利用できる コードで書かれているので、同じコードをデプ ロイすれば同じ環境をすぐに構築できます。
変更管理できる コードを変更管理(Git)すれば、過去 の変更履歴を簡単に辿れます。 設定値を確認しやすい このサービスの設定値はどうだっけと いうとき、コードをみればすぐに確認 できます。そのため、設計書を起こす 必要もないです。
IaCの種類 クラウドベンダーに依存しない プログラミング言語に近い
〜レベル1〜 IaC(infrastructure as code)とは 〜レベル2〜 ① CloudFormtionで環境構築するにあたって必要な事前知識
② TerraformとCloudFormationの比較 〜レベル3〜 CloudFormationで環境構築して困ったことと、その対処方法 今日お話しすること(幅広くお話しします!)
12 仕事でTerraform使ったけど、CloudFormationも使ってみたい! (みなさんどっち派ですか?それともCDK派?)
個人的に環境作ってみた
事前に勉強したこと(これだけは学んでおけ!) 事前にいくつか学習しておくことで効率よく構築を進められます。 関数 テンプレートをできるだけシンプルにするた めに必須です。(Ref、Sub、GetAttくらいで OK) CLI
スタックをさくっと流すのに必須です。 クロススタック/ネスト 必須ではないけど、スタックをある程 度分割するために必要です。 (スタックを分割するとリソースの修正 がしやすい。なお、やりすぎは逆に煩 雑になるので注意)
AWSにおける CloudFormatin と Terraform の使い分けイメージ CloudFormation 確実性を重視 さくっとIaCを使いたい、出来る限り安全性を担保したいなど
Terraform スピード感を重視 プロジェクトの規模が大きい、環境が割と自由など
16 …ッ もっと細かくメリットを明らかにするんや!
AWS CloudFormationのメリット GUIが存在する これは初級者にとって大きなメリットです。どう動かすかと、どうなったが一目瞭然 です。デプロイの流れも非常に追いやすいです。
スタック(デプロイの単位)失敗時にリソースが綺麗にロールバック される CloudFormationではとにかくスタックが失敗すれば、スタック実行前の状態に戻し てくれます。 利用権限が柔軟 AWSのサービスなので、スタック削除のできるできないの権限を自由に与えること ができます。 ドキュメントが豊富 権限同様、AWSのサービスなのでやはり情報が豊富です。 実際にCloudFormationを使ってる画面
Terraformのメリット コードを記述するファイルの分割がしやすい リソースが膨大になれば、ファイルを分割する必要がでてきます。 ファイルを分割してしまうとデプロイが分かれるので、その依存関 係を保つ必要がありますが、Terraformではそれが容易に可能で す。
デプロイ(apply)失敗してもそのまま次のデプロイができる 直前の失敗したdeployの後処理が不要で、次のデプロイが継続し て可能です。そのため構築がスムーズに可能です。 コードが書きやすい 関数が豊富なので、結果コードが書きやすい(短くできる)です。
〜レベル1〜 IaC(infrastructure as code)とは 〜レベル2〜 ① CloudFormtionで環境構築するにあたって必要な事前知識
② TerraformとCloudFormationの比較 〜レベル3〜 CloudFormationで環境構築して困ったことと、その対処方法 今日お話しすること(幅広くお話しします!)
20 いよいよ最後のパートです。 ちょっとエンジニアよりのお話になります。 (CloudFormationでカスタムリソース使ったことある人いますか?)
構築時に困ったこと スタックがごく稀にバグる タイミングの問題なのでリトライすればOKです。 スタックの結果が返ってこない
1時間待ちぼうけ。テンプレートを確実に直しきってから流し直しま しょう。 S3にオブジェクトがあるとスタックを消せない カスタムリソースでLambda作って対処しました。 ログを出力するバケットなどはデータがたまると料金が高額になる。 自前の環境で作る人は、悲しいけど節約のために都度リソースを消 すということをしないといけないのである。
構築時に困ったこと スタックがごく稀にバグる タイミングの問題なのでリトライすればOKです。 スタックの結果が返ってこない
1時間待ちぼうけ。テンプレートを確実に直しきってから流し直しま しょう。 S3にオブジェクトがあるとスタックを消せない カスタムリソースでLambda作って対処しました。
S3にオブジェクトがあるとスタックが消せない事象 ①作成 ③削除 ②データを追加 × 削除 できないよー
S3にオブジェクトがあるとスタックが消せない事象 の対処 ①作成 ③削除 ②データを追加 コードに カスタムリソースを 追加する
カスタムリソースとは 通常のリソースタイプではできない処理に 機能を追加して 処理させる方法です。 今回の例だと、通常S3削除時にはオブジェクトを削除する という動作はできませんが、このカスタムリソースを使用す ることでオブジェクトを削除するという動作を追加すること ができます。
どんな感じでテンプレートに追加すればよい? Lambda側 S3削除用のlambdaをデプロイします。 Outputsでは、S3の作成が記述されたどこのyamlでも使 えるようにエクスポート(クロススタック) させてます。
どんな感じでテンプレートに追加すればよい? S3側 S3を作成してるコードの Resourcesにカスタムリソース使 うよ のコードを追加してあげます。
カスタムリソース作成時の注意点 前述でスタックの結果が 1時間帰ってこない というお話をしました が、カスタムリソースはLambdaの記述を誤るとこの事象に該当す るようです。 その間止めることも削除することもできず待つしかないので、でき るだけコードは詰めてからスタックを流しましょう。
IaC化をどんどん推奨して、よりインフラのレベルをあげていきましょう! いまはCICDやってるので、今後はその方面でアウトプットしていきます! Thanks!!