Slide 1

Slide 1 text

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


Slide 2

Slide 2 text

アジェンダ
 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. まとめ


Slide 3

Slide 3 text

はじめに


Slide 4

Slide 4 text

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


Slide 5

Slide 5 text

自己紹介
 @ystn_percode ● SREの文化を組織に広める活動 
 ● プロジェクトのインフラ設計・構築支援 
 ● AWS, GCPの社内トレーニング 
 谷 泰成|株式会社ゆめみ
 社内活動
 
 ● CircleCI User Community Leader(Osaka) 
 ● AWS, GCPのインフラ設計・リプレイス支援(副業) 
 社外活動
 


Slide 6

Slide 6 text

circleci/aws-sam-serverless とは?


Slide 7

Slide 7 text

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 


Slide 8

Slide 8 text

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


Slide 9

Slide 9 text

CircleCI Orbs
 Docker Imageを用 意しないと…
 aws configureで認 証しないと…
 commandsにセット アップを
 書かないと…
 考えることが多い!!


Slide 10

Slide 10 text

CircleCI Orbs
 Orbを使ってみる…


Slide 11

Slide 11 text

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


Slide 12

Slide 12 text

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


Slide 13

Slide 13 text

AWS SAM
 ● サーバーレスアプリケーションの特徴 
 ○ 利用者がAWS上でゲストOSなどを管理しない 
 ○ 必要なサーバーリソースはAWSの特定サービスを 
 利用する
 ○ アプリケーションのコード管理のみで 
 サービス運用を実現する 


Slide 14

Slide 14 text

Hello World


Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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


Slide 18

Slide 18 text

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


Slide 19

Slide 19 text

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


Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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


Slide 22

Slide 22 text

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


Slide 23

Slide 23 text

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


Slide 24

Slide 24 text

CircleCIジョブの環境変数を設定する
 環境変数の設定は複数ある
 1. BASH_ENV を使用した環境変数 
 2. シェルコマンドを使用した環境変数 
 3. steps、jobs、dockerなどで使用する environment: [ key: value ] 
 4. プロジェクトで設定する環境変数 
 5. コンテキストで設定する環境変数 
 6. APIを使用した環境変数 
 7. 定義済みの環境変数 


Slide 25

Slide 25 text

CircleCIジョブの環境変数を設定する
 環境変数の設定は複数ある
 1. BASH_ENV を使用した環境変数 
 2. シェルコマンドを使用した環境変数 
 3. steps、jobs、dockerなどで使用する environment: [ key: value ] 
 4. プロジェクトで設定する環境変数 
 5. コンテキストで設定する環境変数 
 6. APIを使用した環境変数 
 7. 定義済みの環境変数 


Slide 26

Slide 26 text

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


Slide 27

Slide 27 text

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


Slide 28

Slide 28 text

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


Slide 29

Slide 29 text

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


Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

まとめ


Slide 32

Slide 32 text

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


Slide 33

Slide 33 text

No content