「JAWS-UG CDK支部 #1 〜初回拡大版〜」 #jawsug_cdk 受講メモ - omuronの備忘録

omuronの備忘録

個人的な備忘録

「JAWS-UG CDK支部 #1 〜初回拡大版〜」 #jawsug_cdk 受講メモ

JAWS-UG CDK支部 #1 〜初回拡大版〜

jawsug-cdk.connpass.com

セッション

AWS Summit Online re:Cap - CDK & BLEA

Yukitaka Ohmuraさん

  • AWS Summit Online の CDK&BLEA 関連セッション
    • CI/CD Live Coding (developer zone) : みんなのエディターが違うのにも注目
    • AWS-17 : 手順書は30分位かかったけど、コード経由ですると14分程度
    • AWS-19 : BLEA につながるセキュリティのお話
    • AWS-22 : Baseline Environment on AWS (BLEA)
      • AWS のセキュリティベストプラクティスを実装した OSS のサンプルテンプレート
      • BLEA を使って AWS 環境のガバナンスを効かす
      • GitHub から fork してカスタマイズして利用すると良い
        • カスタマイズすることが前提
  • BLEA Updates
    • CDK Pipelines を使用するサンプルが追加された

BLEA って知りませんでした。
セキュリティはやらなきゃいけないけどお金もそこそこかかるしバランス取りながら進めないと。

CDKでお手軽カスタムリソース!

かわごえさん

  • CDK : CFn が生成されてデプロイされる -> CFn 非対応は使えない
  • VPC + Networkfirewall + ルートテーブルなどをまとめたかった
    • EndpointIds の順序が担保されてなくて困った
      • 公式もカスタムリソース使ってるし...
  • AwsCustomResource を使うと Lambda を自身で作らなくてもカスタムリソース作れる
    • getResponseField() で他リソースから参照できる
  • カスタムリソースを本当に使う必要があるかはよく検討を

カスタムリソース使ったこと無いや...諦めて CLI でやっちゃう。

インフラエンジニアがCDK on TypeScriptを推す理由

あんどぅさん

www.docswell.com

  • CDK のいいところ
    • プログラミング言語AWS リソースを抽象化
    • CFn 間の依存関係を定義できたり、デプロイ順を CLI で解決
    • L2 Construct 最高
    • AWS サポートあり(CFn になるので)
  • TypeScript を推す理由
    • CDK のソース自体が TypeScript
    • パラメータ補完と渡し間違い防止
    • インフラデプロイ時に環境成約を型に定義できる
      • 設定を必ずして欲しいものとか、値の指定とかできる
        • ECS のソフトリミットの設定を必須にしたりとかできる
  • CDK で型があると IDE で対話しながら進めれて開発者体験が良い

私も CDK のために TypeScript 勉強した口です。

はじめてのプルリク - BLEA 編

watanyさん

speakerdeck.com

  • AWSConfigRole が非推奨で AWS_ConfigRole が推奨になった
    • BLEA をみると非推奨を使っている
      • コントリビュートしたい
  • CONTRIBUTING.md を読む
    • fork して修正してテストして明確なメッセージでコミットして...
      • コミットでエラー、 git secrets 戻らないので awslabs/git-secrets インストール
      • README_ja.md にちゃんと書いてあった
    • プルリクを main ブランチでしてしまったので修正
    • Author おかしいとツッコまれたので修正
    • 無事コントリビューターになれた

コントリビュートするのがすごい!

AWS Amplify で触れる AWS CDK

tacckさん

speakerdeck.com

  • Amplify:サービスとしての Amplify と OSS ツールの Amplify の2つに別れてる
  • Amplify + CDK
    • re:Invent で Amplify Studio 発表
      • 同時に Amplify に機能が沢山追加された
  • Amplify Custom : Amplify の機能に無いものを追加できる
  • Amplify のリソースは Amplify CLI で準備
    • それ以外はどうする?
      • コンソール:お試し、手作業が必要であれば
      • CFn:アプリの人は辛い
      • CDK:アプリの人でも使いやすい、AWS知らないと辛い
      • Amplify + CDK:アプリの人でも使いやすい、アプリとAWSの繋がりを意識する必要あり
  • Amplify + CDK の課題:フルスタック寄りのスキル必要
    • 個人や小規模で素早くするならフィットする
    • 人数が多かったり開発者がメンテしないなら CDK 使ったほうが良さそう

Amplify ちょっと使うには便利なイメージ。
公開しないちょっとした社内向けの便利ツールとかがマッチするとかかな。

Construct Hub に自作ライブラリを公開しよう with projen

hayao_kさん

speakerdeck.com

  • Construct Hub:コミュニティやAWS/パートナーが後悔する Construct Library レジストリ
    • 3つの条件:JSII-compatible, OSS, CDK Keyword 利用で npm Rregistry に公開
      • projen 使うと意識しなくていい
  • Projen:Construct の考え方をプロジェクト構成に適用
    • プロジェクト構成をコードで定義し、維持するためのツール
      • プロジェクトの雛形作るだけじゃなく、それを継続維持できる
    • いろいろなプロジェクトの雛形がビルドインされている
    • projen new awscdk-construct して .projenrc.js に設定を定義する
      • GitHub Actions の CI/CD 設定 yaml も組み込まれてるので簡単に使える

projen 知りませんでした。

CDKを活用して年間700万円以上のコストを削減した話

ゆっきーさん

https://winteryukky.github.io/slides-cost-cut-using-aws-cdk/1

  • コスト削減の実現に CDK を使った話
  • Trusted Advisor で削減可能コストを見る
    • 低使用率 の EC2 を検知
      • 不要なのに常設していた
  • EC2 に 25万/月 + 監視に 35万/月かかっていて、年720万のコスト
    • 朝昼1回しか動かず、監視も CloudWatch で取れるものだった
    • Step Functions + ECS にアーキテクチャ変更
  • Step Functions のつらみ
    • GUI だと利用リソースの画面と行ったり来たりしないとだめ
    • CFn だとフローが把握が難しいし、量が増えて読みにくい
  • CDK で Step Fucntions のつらみを解決
    • CDK だとフローをイメージしやすい
      • .next .when とかで簡単に書けるし
    • IAM Role の設定も不要
    • CFn -> CDK でコード量が数%程度まで圧縮される

CDK のコード量の少なさは圧倒的!
TypeScript さえ覚えれば戦える。

所感

CDK 便利ですよね!
AWS を知った上で、CloudFormation が使えて、さらに TypeScript も書けないと辛い部分も感じますが、それを乗り越える価値はあると思ってます。