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
Takamichi Aso
February 27, 2020
Programming
0
700
インフラエンジニア歴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
180
WordPressが技術負債になった話 / Coral Developers 20210525
unk2072
3
3.6k
健康第一の話 / 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
Web Components で実現する Hotwire とフロントエンドフレームワークの橋渡し / Bridging with Web Components
da1chi
2
1.4k
株式会社 Sun terras カンパニーデック
sunterras
0
180
TokyoR#119 bignners session2 Visualization
kotatyamtema
0
130
Let's Write a Train Tracking Algorithm
twocentstudios
0
220
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
410
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
2
1.3k
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
170
なぜGoのジェネリクスはこの形なのか? Featherweight Goが明かす設計の核心
ryotaros
7
990
ネイティブ製ガントチャートUIを作って学ぶUICollectionViewLayoutの威力
jrsaruo
0
120
気づいて!アプリからのSOS 〜App Store Connect APIで始めるパフォーマンス健康診断〜
waka12
0
250
大規模アプリにおけるXcode Previews実用化までの道のり
ikesyo
0
970
スマホで海難事故は防げるか?年間2000件以上の小型船舶の事故に挑むアプリ開発
atsuki_seo
0
120
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
610
Producing Creativity
orderedlist
PRO
347
40k
Scaling GitHub
holman
463
140k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
BBQ
matthewcrist
89
9.8k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
KATA
mclloyd
32
14k
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