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)環境を構築する話 / C...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Takamichi Aso
February 27, 2020
Programming
740
0
Share
インフラエンジニア歴2ヶ月の私がCDKを使ってECS(Fargate)環境を構築する話 / Coral Developers Night AWS LT
Takamichi Aso
February 27, 2020
More Decks by Takamichi Aso
See All by Takamichi Aso
開発環境から本番環境までのDocker活用方法 / Fintech Engineer 20210604
unk2072
0
200
WordPressが技術負債になった話 / Coral Developers 20210525
unk2072
3
3.7k
健康第一の話 / Coral Developers Meeting #1
unk2072
0
190
Vue.js + socket.io で簡単に実装できるリアルタイム更新処理 / Coral Developers Night #1
unk2072
0
2.1k
Other Decks in Programming
See All in Programming
CDK Deployのための ”反響定位”
watany
4
790
Swift Concurrency Type System
inamiy
0
540
Offline should be the norm: building local-first apps with CRDTs & Kotlin Multiplatform
renaudmathieu
0
220
GitHubCopilotCLIをはじめよう.pdf
htkym
0
200
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
3k
「Linuxサーバー構築標準教科書」を読んでみた #ツナギメオフライン.7
akase244
0
1.4k
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
0
150
AI時代のPhpStorm最新事情 #phpcon_odawara
yusuke
0
190
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
5k
ついに来た!本格的なマルチクラウド時代の Google Cloud
maroon1st
0
160
AWSコミュニティ活動は顧客のクラウド推進に効くのか / Do AWS community activities help customers adopt the cloud?
seike460
PRO
0
140
의존성 주입과 모듈화
fornewid
0
150
Featured
See All Featured
Building AI with AI
inesmontani
PRO
1
910
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
170
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
Mind Mapping
helmedeiros
PRO
1
160
The Limits of Empathy - UXLibs8
cassininazir
1
310
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Leo the Paperboy
mayatellez
7
1.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.6k
Building Adaptive Systems
keathley
44
3k
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