Slide 1

Slide 1 text

1 Orbsを使ってAWSへ簡単デ プロイ #jawsdays #circlecijp

Slide 2

Slide 2 text

2 イントロダクション

Slide 3

Slide 3 text

3 宣伝 (会社) ● 日本語サポート ● ドキュメントの日本語化 ● ユーザーコミュニティー CircleCI初の海外支社 @CircleCIJapan

Slide 4

Slide 4 text

4 自己紹介: Kim, Hirokuni (金 洋国) - 元CircleCI 開発者 - CircleCI Japan Tech Lead ”この発言は個人の見解ではなく所属する組 織を代表しています”

Slide 5

Slide 5 text

5 宣伝 (個人) 電動キックボードを体験できるサービス Hop-on! を運営 ● 日本で唯一のサービス(のはず) ● “みなとみらい” “電動キックボード” 検索 ● 続きは https://www.hop-on.jp/ で!

Slide 6

Slide 6 text

6 解決したい問題

Slide 7

Slide 7 text

7 その前に: CircleCIの思想 ● コンフィグはファイルに書かれるべき ● 明示的であるべき ● No Magic! デメリット - 1から設定を書かないといけない - 冗長になる

Slide 8

Slide 8 text

8 CircleCIとAWSを連携するのは色々大変

Slide 9

Slide 9 text

9 AWS連携の問題 ● aws cliちゃんとインストールしたり... ● docker loginでecrにログインしないとだったり... ● 手動でaws CLIをバシバシ叩かないといけない... ● 同じようなプロジェクトが複数あると大変

Slide 10

Slide 10 text

10 解決方法

Slide 11

Slide 11 text

11 CircleCI Orbsを使おう

Slide 12

Slide 12 text

12 Orbsとは? ● コンフィグのパッケージ機構 ● プロジェクトをまたいで共有可能 ● 誰でも登録して使える

Slide 13

Slide 13 text

13 Orbsレジストリ Orbsの種類 - Certified (CircleCI) - Partner (CircleCI認定パートナー) - 3rd Party (その他) https://circleci.com/orbs/registry

Slide 14

Slide 14 text

14 Demo

Slide 15

Slide 15 text

15 デモイメージ http://kim-app2-612788733.us-ea st-1.elb.amazonaws.com/

Slide 16

Slide 16 text

16 準備: 環境変数の設定 APIキーとパスを環境変数から登録しておく

Slide 17

Slide 17 text

17 ECRへDockerイメージのデプロイ version: 2.1 orbs: aws-ecr: circleci/[email protected] # ECRのOrbをインポート workflows: build-and-deploy: jobs: - aws-ecr/build_and_push_image: # 用意されているジョブにパラメータを渡して呼ぶ account-url: AWS_ECR_ACCOUNT_URL # ECRのアカウントの環境変数 repo: 'nginx' # イメージのレポジトリ tag: '${CIRCLE_SHA1}' # イメージのタグにコミットのSHAを使う https://github.com/kimh/picard-test/blob/jaws-days/.circleci/config.yml

Slide 18

Slide 18 text

18 ECSへサービスのデプロイ version: 2.1 orbs: ... aws-ecs: circleci/[email protected] # ECSのOrbをインポート workflows: build-and-deploy: jobs: - aws-ecr/build_and_push_image: ... - aws-ecs/deploy-service-update: # 用意されているジョブにパラメータを渡して呼ぶ requires: - aws-ecr/build_and_push_image # 最初にnginxイメージをビルド family: 'kim-app-nginx' # ECSのタスク定義 cluster-name: 'default-kim5' # ECSのクラスター名 # タスクで使うコンテナイメージを指定 container-image-name-updates: 'container=nginx,image-and-tag=833371238208.dkr.ecr.us-east-1.amazonaws.com/nginx:${CIRCLE_SHA1}' https://github.com/kimh/picard-test/blob/jaws-days/.circleci/config.yml

Slide 19

Slide 19 text

19 結果 370 → 20

Slide 20

Slide 20 text

20 結果 コンフィグの削減量 370行 → 20行 展開されたコンフィグは https://circleci.com/gh/kimh/picard-test/3219#config/containers/0 で確認できます

Slide 21

Slide 21 text

21 まとめ

Slide 22

Slide 22 text

22 まとめ ● AWSのOrbsでECR/ECSへのデプロイが簡単に ● コンフィグの量を劇的にコンパクトにできる ● Orbsは誰でも登録して使える

Slide 23

Slide 23 text

23 CircleCI ユーザーコミュニティーのご紹介 FB Community Group @CircleCIJapan

Slide 24

Slide 24 text

24 Orbsの由来 Orb (オーブ)

Slide 25

Slide 25 text

25 Orbsの由来 Orb (オーブ) 丸い

Slide 26

Slide 26 text

26 Orbsの由来 Orb (オーブ) 丸い Circle

Slide 27

Slide 27 text

27 お後がよろしいようで