omuronの備忘録

個人的な備忘録

「nakanoshima.dev #25 サーバーレスでのIaC/CI/CD 」 #nakanoshima_dev 受講メモ

nakanoshima.dev #25 サーバーレスでのIaC/CI/CD

nakanoshima-dev.connpass.com

セッション

AWS SAMを使ったIaCとCI/

ポール氏

speakerdeck.com

なぜサーバレスで IaC や CI/CD が重要か

  • 本来の価値提供に注力したい
    • より早く安全に提供することが重要
    • IaC や CI/CD を活用する

What is CI/CD

SAM

  • サーバーレスアプリケーション構築用フレームワーク
  • CloudFormation をベースとして定義を抽象化
  • SAM CLI で操作
    • sam init -> sam build -> sam package -> sam deploy

SAM Pipelines

  • SAM Pipelines で CI/CD パイプラインの雛形が生成できる
    • CodePipeline だけじゃなく GitHub Actions, GitLab CI/CD, Jenkins なども対応
  • sam pipeline bootstrap -> sam pipeline init -> sam deploy でテンプレートに --template codepipeline.yaml を設定する

CDKで実現する、お手軽で安全なLambdaの管理

shukim氏

Lambda 管理の課題

  • オンラインエディタを使うと手元のコードと剥離する
  • 各関数の設定を把握しきれない
  • IaC で解決する

CDK の紹介

  • TypeScript などでインフラを定義できる
    • ループや条件分岐、関数化やライブラリ化で生産性向上できる
  • CLI とライブラリ (aws-cdk-lib) で提供
    • CLI はデプロイなどの基本操作
    • ライブラリはコード内でのリソース定義
  • Lambda のコードも TypeSqcript でかける
    • JavaScript に変換されてデプロイされる

所感

SAM は、それだけで事足りことが少ないので使わなくなっちゃいました。
CDK は便利だからよく使うようになりました。
ただ、デプロイに時間がかかる部分が困るんですよね。
public.ecr.aws/sam/build-xxx の Docker Image がどれも重くて CodeBuild とかで走らせると遅いし料金が嵩むのをなんとか解決したい。
キャッシュうまく使いつつ、イメージが古くなったらちゃんと更新するということを考えないとだめなのかな...?