Orbsを使ってAWSへ簡単デプロイ

9996db3588c75fb4f2b582fa4021cfdb?s=47 Kim, Hirokuni
February 23, 2019
25

 Orbsを使ってAWSへ簡単デプロイ

JAWS Days 2019の登壇資料

9996db3588c75fb4f2b582fa4021cfdb?s=128

Kim, Hirokuni

February 23, 2019
Tweet

Transcript

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

  2. 2 イントロダクション

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

    @CircleCIJapan
  4. 4 自己紹介: Kim, Hirokuni (金 洋国) - 元CircleCI 開発者 -

    CircleCI Japan Tech Lead ”この発言は個人の見解ではなく所属する組 織を代表しています”
  5. 5 宣伝 (個人) 電動キックボードを体験できるサービス Hop-on! を運営 • 日本で唯一のサービス(のはず) • “みなとみらい”

    “電動キックボード” 検索 • 続きは https://www.hop-on.jp/ で!
  6. 6 解決したい問題

  7. 7 その前に: CircleCIの思想 • コンフィグはファイルに書かれるべき • 明示的であるべき • No Magic!

    デメリット - 1から設定を書かないといけない - 冗長になる
  8. 8 CircleCIとAWSを連携するのは色々大変

  9. 9 AWS連携の問題 • aws cliちゃんとインストールしたり... • docker loginでecrにログインしないとだったり... • 手動でaws

    CLIをバシバシ叩かないといけない... • 同じようなプロジェクトが複数あると大変
  10. 10 解決方法

  11. 11 CircleCI Orbsを使おう

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

  13. 13 Orbsレジストリ Orbsの種類 - Certified (CircleCI) - Partner (CircleCI認定パートナー) -

    3rd Party (その他) https://circleci.com/orbs/registry
  14. 14 Demo

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

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

  17. 17 ECRへDockerイメージのデプロイ version: 2.1 orbs: aws-ecr: circleci/aws-ecr@1.0.0 # 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
  18. 18 ECSへサービスのデプロイ version: 2.1 orbs: ... aws-ecs: circleci/aws-ecs@0.0.6 # 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
  19. 19 結果 370 → 20

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

  21. 21 まとめ

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

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

  24. 24 Orbsの由来 Orb (オーブ)

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

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

  27. 27 お後がよろしいようで