CircleCI AWS-SAM-SERVERLESSを使ってみた

E369844a542e163df02efff8c8085782?s=47 yastani
October 26, 2020

CircleCI AWS-SAM-SERVERLESSを使ってみた

【オンライン】【ソフトウェアテスト自動化LT大会編】CircleCI コミュニティミートアップにてお話しました。

E369844a542e163df02efff8c8085782?s=128

yastani

October 26, 2020
Tweet

Transcript

  1. circleci/aws-sam-serverless 
 を使ってみた
 株式会社ゆめみ
 谷 泰成


  2. アジェンダ
 1. はじめに
 a. 話す内容
 b. 自己紹介
 
 2. circleci/aws-sam-serverless

    とは? 
 a. CircleCI Orbs
 b. AWS SAM
 
 3. Hello World
 a. 手動でAWS SAMをデプロイしてみる 
 b. CircleCIで自動デプロイを設定する 
 c. CircleCIジョブの環境変数を設定する 
 
 4. まとめ

  3. はじめに


  4. 話す内容
 • 今日お話すること
 ◦ CircleCI OrbsやAWS SAMのざっくりとした紹介 
 ◦ Hello

    Worldをちょっと工夫するために学んだことの紹介 
 
 • このスライドにおける期待値(ゴール) 
 ◦ 入門者の方…「Hello World簡単じゃん!」と感じてCircleCIを触ってみてもらう 
 ◦ 経験者の方…「コイツよりもっと色々工夫できるぞ!」と次回登壇の敷居を下げる 

  5. 自己紹介
 @ystn_percode • SREの文化を組織に広める活動 
 • プロジェクトのインフラ設計・構築支援 
 • AWS,

    GCPの社内トレーニング 
 谷 泰成|株式会社ゆめみ
 社内活動
 
 • CircleCI User Community Leader(Osaka) 
 • AWS, GCPのインフラ設計・リプレイス支援(副業) 
 社外活動
 

  6. circleci/aws-sam-serverless とは?


  7. CircleCI Orbs
 • circleci/aws-sam-serverless? 
 ◦ AWS SAMを利用した、サーバーレスアプリケーションのCI/CD(ビルド、テスト、デプロイ)をサポー トするCircleCI Orbsの一つ

    
 https://github.com/CircleCI-Public/aws-sam-serverless-orb 
 
 • CircleCI Orbs?
 ◦ Orbs は、CircleCIのconfig.ymlに定義するcommandsやjobsなどの構成を簡略化する 
 設定ファイルのパッケージ 
 ◦ これはプロジェクト内、またはプロジェクト間で共有や再利用ができる 
 https://circleci.com/docs/ja/2.0/jobs-steps/#section=getting-started 

  8. CircleCI Orbs
 たとえば…
 CircleCIのジョブからawscliを使ってごにょごにょしたい!


  9. CircleCI Orbs
 Docker Imageを用 意しないと…
 aws configureで認 証しないと…
 commandsにセット アップを


    書かないと…
 考えることが多い!!

  10. CircleCI Orbs
 Orbを使ってみる…


  11. CircleCI Orbs
 ようこそ!
 AWSの世界へ!!


  12. AWS SAM
 • AWS SAM?
 ◦ AWS Serverless Application Model(AWS

    SAM) 
 ◦ AWS上でサーバーレスアプリケーション を構築するために利用できるオープンソースのフレーム ワーク
 ◦ サーバーレスアプリケーション は、Lambda関数、イベントソース、その他のリソースを 
 組み合わせてタスクを実行する 
 ◦ サーバーレスアプリケーション は単なるLambda関数だけではなく、APIやデータベース、イベント ソースのマッピングなどの追加リソースを含むことができる 

  13. AWS SAM
 • サーバーレスアプリケーションの特徴 
 ◦ 利用者がAWS上でゲストOSなどを管理しない 
 ◦ 必要なサーバーリソースはAWSの特定サービスを

    
 利用する
 ◦ アプリケーションのコード管理のみで 
 サービス運用を実現する 

  14. Hello World


  15. 手動でAWS SAMをデプロイしてみる
 のインストール サンプルアプリケーションの生成 生成されたサンプルアプリケーションの構造を見る ├── ├── │ └── ├──

    │ ├── │ ├── │ └── ├── └── └── ├── └──
  16. 手動でAWS SAMをデプロイしてみる
 サンプルアプリケーションのビルド ビルド成果物が生成される └── ├── └── 以下略 にデプロイする

  17. 手動でAWS SAMをデプロイしてみる


  18. 手動でAWS SAMをデプロイしてみる


  19. CircleCIで自動デプロイを設定する
 必要な各種初期設定は割愛…
 GitHubリポジトリの作成
 AWSアカウントの作成
 CircleCIアカウントの作成
 GitHubリポジトリとCircleCIアカウントの連携
 sam initコマンドで生成したサンプルアプリケーションコード


  20. CircleCIで自動デプロイを設定する
 の作成

  21. CircleCIで自動デプロイを設定する


  22. CircleCIで自動デプロイを設定する


  23. CircleCIで自動デプロイを設定する


  24. CircleCIジョブの環境変数を設定する
 環境変数の設定は複数ある
 1. BASH_ENV を使用した環境変数 
 2. シェルコマンドを使用した環境変数 
 3.

    steps、jobs、dockerなどで使用する environment: [ key: value ] 
 4. プロジェクトで設定する環境変数 
 5. コンテキストで設定する環境変数 
 6. APIを使用した環境変数 
 7. 定義済みの環境変数 

  25. CircleCIジョブの環境変数を設定する
 環境変数の設定は複数ある
 1. BASH_ENV を使用した環境変数 
 2. シェルコマンドを使用した環境変数 
 3.

    steps、jobs、dockerなどで使用する environment: [ key: value ] 
 4. プロジェクトで設定する環境変数 
 5. コンテキストで設定する環境変数 
 6. APIを使用した環境変数 
 7. 定義済みの環境変数 

  26. CircleCIジョブの環境変数を設定する
 プロジェクトで設定する環境変数


  27. CircleCIジョブの環境変数を設定する
 コンテキストで設定する環境変数


  28. CircleCIジョブの環境変数を設定する
 コンテキストで設定する環境変数


  29. CircleCIジョブの環境変数を設定する
 コンテキストで設定する環境変数


  30. CircleCIジョブの環境変数を設定する
 の作成

  31. まとめ


  32. まとめ
 CircleCI Orbsは欲しいものが公式にあるか探そう
 無くても独自のOrbをOrb Registryで公開できる
 Orbの使い方はCircleCI DeveloperのSourceで確認しよう
 複数のプロジェクトで使用する環境変数はContextでまとめて管理 しよう


  33. None