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
インフラエンジニア歴2ヶ月の私がCDKを使ってECS(Fargate)環境を構築する話 / Coral Developers Night AWS LT
Search
Takamichi Aso
February 27, 2020
Programming
0
540
インフラエンジニア歴2ヶ月の私がCDKを使ってECS(Fargate)環境を構築する話 / Coral Developers Night AWS LT
Takamichi Aso
February 27, 2020
Tweet
Share
More Decks by Takamichi Aso
See All by Takamichi Aso
開発環境から本番環境までのDocker活用方法 / Fintech Engineer 20210604
unk2072
0
130
WordPressが技術負債になった話 / Coral Developers 20210525
unk2072
3
3.4k
健康第一の話 / Coral Developers Meeting #1
unk2072
0
180
Vue.js + socket.io で簡単に実装できるリアルタイム更新処理 / Coral Developers Night #1
unk2072
0
1.8k
Other Decks in Programming
See All in Programming
VS Code をプロダクトにどう取り込むか
onomax
1
360
スクラムガイドのスプリントレトロスペクティブを改めて読みかえしてみた / Re-reading the Sprint Retrospective Section in the Scrum Guide
mackey0225
3
410
コーンフレークから始める モデリング会話入門
ogurotakayuki
0
370
VSCodeでのDatabricks開発もお勧めしたい/I would also recommend Databricks development with VSCode.
kazumain
0
250
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
760
2 週間で Twitter Bot を作ってみた
contour_gara
0
360
"config" ってなんだ? / What is "config"?
okashoi
0
240
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
180
データアナリストが行うDatabricksを活用したETLの自動化事例
shinoa
0
270
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
670
ゆるい個人開発のススメ
kuroppe1819
10
990
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
1.7k
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
31
46k
Become a Pro
speakerdeck
PRO
11
4.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
The Cost Of JavaScript in 2023
addyosmani
16
3.9k
Making the Leap to Tech Lead
cromwellryan
124
8.5k
Practical Orchestrator
shlominoach
182
9.7k
Thoughts on Productivity
jonyablonski
58
3.8k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
How GitHub (no longer) Works
holman
304
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Product Roadmaps are Hard
iamctodd
44
9.7k
Transcript
Credit Engine, Inc. インフラエンジニア歴2ヶ月の私が CDKを使って ECS(Fargate)環境を構築する話 麻生隆道 1
Credit Engine, Inc. 2 今日話す内容(言いたいこと) • ピンチをチャンスに変えよう • CDKはすごく良い!流行ってほしい!
• レビューしてもらうと安心感があがる
Credit Engine, Inc. 3 自己紹介 クレジットエンジン株式会社 麻生 隆道(あそう たかみち)
たぶんフルスタックエンジニアやってます 趣味はプログラミングですが、最近本業が忙し くてあまり趣味を楽しめていない模様 (でも本業=趣味なので問題ない) 前職は12年ほど組み込みエンジニアやってまし たー
Credit Engine, Inc. Credit Engine の紹介 4 “かす”をかえる。“かりる”をかえる。 ミッション 中小事業者が融資を受ける際には
様々な紙ベースの書類が必要であった オンラインで完結するので簡単に使え 空いた時間で本来の事業に集中できる
Credit Engine, Inc. Credit Engine Platformの紹介 5 ミッション実現のためLENDYで培ってきたノウハウを金融機関などに提供 三菱UFJ銀行 『Biz
LENDING』 みずほ銀行 『みずほスマートビジネスローン』
Credit Engine, Inc. Credit Engine Platformをバージョンアップ 提供先に合わせて簡単にカスタマイズし 素早くサービスを提供できるように構成を見直した 6
Credit Engine, Inc. アプリケーション構成 Nginx API サーバ Postgre SQL socket.io
Redis エンドユーザ画面 バックオフィス画面 7
Credit Engine, Inc. この構成のインフラって誰が作るんだっけ? 昨年から募集出してるけ ど、全然採用できない・・・ 8 誰もいないなら自分でや るしかないでしょ! ということで即席インフラエンジニアが爆誕!
Credit Engine, Inc. まずやったこと • 要求仕様をざっくり整理 • セキュリティ:大事 • 信頼性:これも大事
• パフォーマンス:あんまり大事じゃない • コスト:ほどほどにやればオッケー • どんな構成で実現するか決める • EC2はメンテがめんどくさいので、できるだけマネージドなやつ • dockerベースで構築することは決まっていた • ECS(Fargate)が良さそう! 9 基本的にマネージドなサービスを使って自分で頑張らない!
Credit Engine, Inc. インフラ構成 10 Nginx API サーバ RDS socket.io
Elasti Cache ALB ECS(Fargate) これをコードベースで書いておきたいよね・・・
Credit Engine, Inc. CDKを採用するまでの流れ • CDKが発表されたのはニュースサイトで見ていた • プログラマなら言語で書きたいよね! • まずはどんなものか調べてみよう
• CDKでECS(Fargate)環境を作っているサンプルがあった! https://qiita.com/ytanaka3/items/e755ff4551f01f76c303 • マジかよ!ベストプラクティスな構成が書けるらしいぞ! しかも、CloudFormationで書くより1/10のコード量!いいじゃん! インフラコードを何で書くか? 11
Credit Engine, Inc. 実際やってみて思ったこと CDKを書く言語はどれ? • 最初Python使ってみたけど環境構築すら面倒だった・・・ • 現状だとサンプル数が多いTypescriptを使うべきと判断 スイッチロール+MFAはCDKが対応してない
• 回避策ありました!(リンク先の最後にある小ネタを参照) https://dev.classmethod.jp/cloud/aws/aws-cdk-python-ec2/ 実際のコード量はやっぱり1/10? • 318行で書けました → CloudFormationを出力すると3445行! 12
Credit Engine, Inc. レビューを受けた 副業で手伝ってくれてるインフラエンジニアにレビューしてもらいましたが 基本的には問題なかった!(レビューしてもらうと安心感が上がる) 以下、指摘内容 • CIDRの切り方が大きすぎるので、小さくしたほうが良さそう •
これはデフォルトでは大きすぎるので修正 • Fargateから外部アクセスしないならNAT Gatewayはなくても良さそう • 外部アクセスあったので問題なし • ログ取得用のバケットに582318560864のアクセス権がついてる • ALBのログを取得してたからだったので問題なしでしたが、CDKがちゃんと 仕事してることが分かった! 13
Credit Engine, Inc. 残りやること CloudWatch + SNS による監視・通知を書く オートスケーリングの設定も書く
で、完成の予定 14
Credit Engine, Inc. ちなみに・・・ NAT Gatewayを使わないパターンもやってみました! 【結果:普通に実現できる!】 ただし、ecs-patternsをそのまま使うとサブネットが指定できないので、元のソース を以下から持ってきて、サブネットを指定してあげられるように変更する必要がある (時間あるときにPull
Request書きたいなー) https://github.com/aws/aws-cdk/blob/master/packages/%40aws-cdk/aws-ecs- patterns/lib/fargate/application-load-balanced-fargate-service.ts 15
Credit Engine, Inc. 16 今日話した内容(言いたかったこと) • ピンチをチャンスに変えよう • CDKはすごく良い!流行ってほしい!
• レビューしてもらうと安心感があがる
Credit Engine, Inc. インフラエンジニア募集中です 私達と一緒にオンラインレンディングのスタンダードとなるような仕 組みを作ってくれる、1人目のインフラエンジニアを募集していま す! CDK好きな人、集まれ! 17