Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Orbsを使ってAWSへ簡単デプロイ
Search
Kim, Hirokuni
February 23, 2019
80
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Orbsを使ってAWSへ簡単デプロイ
JAWS Days 2019の登壇資料
Kim, Hirokuni
February 23, 2019
More Decks by Kim, Hirokuni
See All by Kim, Hirokuni
How We Migrated K8S Without Downtime
kimh
0
250
エンジニアが起業する意味: 起業経験ゼロから電動キックボード 事業を創る話
kimh
0
1.5k
K8sとTraefikでつくるマイクロフロントエンド
kimh
14
3.1k
CI/CDを使い倒して数段上のソフトウェア開発をしよう (デブサミ関西)
kimh
2
1.2k
デブサミ福岡: CI/CDを使い倒して数段上のソフトウェア開発をしよう
kimh
0
760
CircleCI 2.0を支える2つの コンテナクラスターとSRE
kimh
6
6.5k
なぜ今CI/CDがアジャイル組織に必要とされるのか?
kimh
0
380
CircleCI 2.0を支える2つのコンテナクラスター
kimh
2
4.9k
CircleCI 2.0を支えるインフラとSREの役割
kimh
5
2.5k
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
400
New Earth Scene 8
popppiees
3
2.4k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
620
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
Thoughts on Productivity
jonyablonski
76
5.2k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Everyday Curiosity
cassininazir
0
240
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Designing for Performance
lara
611
70k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
450
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 お後がよろしいようで