Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Orbsを使ってAWSへ簡単デプロイ
Kim, Hirokuni
February 23, 2019
1
1.2k
Orbsを使ってAWSへ簡単デプロイ
JAWS Days 2019での登壇資料
Kim, Hirokuni
February 23, 2019
Tweet
Share
More Decks by Kim, Hirokuni
See All by Kim, Hirokuni
How We Migrated K8S Without Downtime
kimh
0
160
エンジニアが起業する意味: 起業経験ゼロから電動キックボード 事業を創る話
kimh
0
680
K8sとTraefikでつくるマイクロフロントエンド
kimh
13
1.7k
CI/CDを使い倒して数段上のソフトウェア開発をしよう (デブサミ関西)
kimh
2
570
デブサミ福岡: CI/CDを使い倒して数段上のソフトウェア開発をしよう
kimh
0
340
CircleCI 2.0を支える2つの コンテナクラスターとSRE
kimh
6
5.7k
なぜ今CI/CDがアジャイル組織に必要とされるのか?
kimh
0
280
CircleCI 2.0を支える2つのコンテナクラスター
kimh
2
4.1k
CircleCI 2.0を支えるインフラとSREの役割
kimh
5
1.9k
Featured
See All Featured
Six Lessons from altMBA
skipperchong
15
2.3k
Designing for Performance
lara
600
65k
A Tale of Four Properties
chriscoyier
149
21k
Intergalactic Javascript Robots from Outer Space
tanoku
261
26k
WebSockets: Embracing the real-time Web
robhawkes
58
6k
Automating Front-end Workflow
addyosmani
1351
200k
Build The Right Thing And Hit Your Dates
maggiecrowley
22
1.4k
Why Our Code Smells
bkeepers
PRO
326
55k
Building Better People: How to give real-time feedback that sticks.
wjessup
346
17k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
Done Done
chrislema
178
15k
What's new in Ruby 2.0
geeforr
336
30k
Transcript
1 Orbsを使ってAWSへ簡単デ プロイ #jawsdays #circlecijp
2 イントロダクション
3 宣伝 (会社) • 日本語サポート • ドキュメントの日本語化 • ユーザーコミュニティー CircleCI初の海外支社
@CircleCIJapan
4 自己紹介: Kim, Hirokuni (金 洋国) - 元CircleCI 開発者 -
CircleCI Japan Tech Lead ”この発言は個人の見解ではなく所属する組 織を代表しています”
5 宣伝 (個人) 電動キックボードを体験できるサービス Hop-on! を運営 • 日本で唯一のサービス(のはず) • “みなとみらい”
“電動キックボード” 検索 • 続きは https://www.hop-on.jp/ で!
6 解決したい問題
7 その前に: CircleCIの思想 • コンフィグはファイルに書かれるべき • 明示的であるべき • No Magic!
デメリット - 1から設定を書かないといけない - 冗長になる
8 CircleCIとAWSを連携するのは色々大変
9 AWS連携の問題 • aws cliちゃんとインストールしたり... • docker loginでecrにログインしないとだったり... • 手動でaws
CLIをバシバシ叩かないといけない... • 同じようなプロジェクトが複数あると大変
10 解決方法
11 CircleCI Orbsを使おう
12 Orbsとは? • コンフィグのパッケージ機構 • プロジェクトをまたいで共有可能 • 誰でも登録して使える
13 Orbsレジストリ Orbsの種類 - Certified (CircleCI) - Partner (CircleCI認定パートナー) -
3rd Party (その他) https://circleci.com/orbs/registry
14 Demo
15 デモイメージ http://kim-app2-612788733.us-ea st-1.elb.amazonaws.com/
16 準備: 環境変数の設定 APIキーとパスを環境変数から登録しておく
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
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
19 結果 370 → 20
20 結果 コンフィグの削減量 370行 → 20行 展開されたコンフィグは https://circleci.com/gh/kimh/picard-test/3219#config/containers/0 で確認できます
21 まとめ
22 まとめ • AWSのOrbsでECR/ECSへのデプロイが簡単に • コンフィグの量を劇的にコンパクトにできる • Orbsは誰でも登録して使える
23 CircleCI ユーザーコミュニティーのご紹介 FB Community Group @CircleCIJapan
24 Orbsの由来 Orb (オーブ)
25 Orbsの由来 Orb (オーブ) 丸い
26 Orbsの由来 Orb (オーブ) 丸い Circle
27 お後がよろしいようで