Upgrade to Pro — share decks privately, control downloads, hide ads and more …

インフラエンジニア歴2ヶ月の私がCDKを使ってECS(Fargate)環境を構築する話 / Coral Developers Night AWS LT

インフラエンジニア歴2ヶ月の私がCDKを使ってECS(Fargate)環境を構築する話 / Coral Developers Night AWS LT

Takamichi Aso

February 27, 2020
Tweet

More Decks by Takamichi Aso

Other Decks in Programming

Transcript

  1. Credit Engine, Inc. 3 自己紹介
 クレジットエンジン株式会社
 麻生 隆道(あそう たかみち)
 


    たぶんフルスタックエンジニアやってます
 趣味はプログラミングですが、最近本業が忙し くてあまり趣味を楽しめていない模様
 (でも本業=趣味なので問題ない)
 
 前職は12年ほど組み込みエンジニアやってまし たー

  2. Credit Engine, Inc. Credit Engine の紹介
 4 “かす”をかえる。“かりる”をかえる。
 ミッション
 中小事業者が融資を受ける際には


    様々な紙ベースの書類が必要であった
 
 オンラインで完結するので簡単に使え
 空いた時間で本来の事業に集中できる

  3. Credit Engine, Inc. まずやったこと
 • 要求仕様をざっくり整理
 • セキュリティ:大事
 • 信頼性:これも大事


    • パフォーマンス:あんまり大事じゃない
 • コスト:ほどほどにやればオッケー
 • どんな構成で実現するか決める
 • EC2はメンテがめんどくさいので、できるだけマネージドなやつ
 • dockerベースで構築することは決まっていた
 • ECS(Fargate)が良さそう!
 9 基本的にマネージドなサービスを使って自分で頑張らない!

  4. Credit Engine, Inc. インフラ構成
 10 Nginx
 API
 サーバ
 RDS
 socket.io


    Elasti
 Cache
 ALB
 ECS(Fargate)
 これをコードベースで書いておきたいよね・・・

  5. Credit Engine, Inc. CDKを採用するまでの流れ
 • CDKが発表されたのはニュースサイトで見ていた
 • プログラマなら言語で書きたいよね!
 • まずはどんなものか調べてみよう


    • CDKでECS(Fargate)環境を作っているサンプルがあった!
 https://qiita.com/ytanaka3/items/e755ff4551f01f76c303
 • マジかよ!ベストプラクティスな構成が書けるらしいぞ!
 しかも、CloudFormationで書くより1/10のコード量!いいじゃん!
 インフラコードを何で書くか?
 11
  6. Credit Engine, Inc. 実際やってみて思ったこと
 CDKを書く言語はどれ?
 • 最初Python使ってみたけど環境構築すら面倒だった・・・
 • 現状だとサンプル数が多いTypescriptを使うべきと判断
 スイッチロール+MFAはCDKが対応してない


    • 回避策ありました!(リンク先の最後にある小ネタを参照)
 https://dev.classmethod.jp/cloud/aws/aws-cdk-python-ec2/
 実際のコード量はやっぱり1/10?
 • 318行で書けました → CloudFormationを出力すると3445行!
 12
  7. Credit Engine, Inc. レビューを受けた
 副業で手伝ってくれてるインフラエンジニアにレビューしてもらいましたが
 基本的には問題なかった!(レビューしてもらうと安心感が上がる)
 以下、指摘内容
 • CIDRの切り方が大きすぎるので、小さくしたほうが良さそう
 •

    これはデフォルトでは大きすぎるので修正
 • Fargateから外部アクセスしないならNAT Gatewayはなくても良さそう
 • 外部アクセスあったので問題なし
 • ログ取得用のバケットに582318560864のアクセス権がついてる
 • ALBのログを取得してたからだったので問題なしでしたが、CDKがちゃんと 仕事してることが分かった!
 13