Submit Search
Upload
Jenkinsとamazon ecsで コンテナCI
•
Download as PPTX, PDF
•
11 likes
•
5,934 views
shigeyuki azuchi
Follow
Amazon ECSのコンテナをJenkinsのスレーブノードとして利用する話。
Read less
Read more
Software
Report
Share
Report
Share
1 of 25
Download now
Recommended
Istioサービスメッシュ入門
Istioサービスメッシュ入門
Yoichi Kawasaki
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync
Amazon Web Services Japan
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
Yoshiyasu SAEKI
Recommended
Istioサービスメッシュ入門
Istioサービスメッシュ入門
Yoichi Kawasaki
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync
Amazon Web Services Japan
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
Yoshiyasu SAEKI
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
Seiya Mizuno
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
Amazon Web Services Japan
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
Amazon Web Services Japan
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
DevOps with Database on AWS
DevOps with Database on AWS
Amazon Web Services Japan
[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様
Shuji Kikuchi
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
都元ダイスケ Miyamoto
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
Eiji KOMINAMI
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 AWS WAF
AWS Black Belt Online Seminar 2017 AWS WAF
Amazon Web Services Japan
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
Yahoo!デベロッパーネットワーク
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
Ore Product
Drone.io のご紹介
Drone.io のご紹介
Uchio Kondo
捕鯨!詳解docker
捕鯨!詳解docker
雄哉 吉田
More Related Content
What's hot
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
Seiya Mizuno
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
Amazon Web Services Japan
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
Amazon Web Services Japan
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
DevOps with Database on AWS
DevOps with Database on AWS
Amazon Web Services Japan
[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様
Shuji Kikuchi
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
都元ダイスケ Miyamoto
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
Eiji KOMINAMI
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 AWS WAF
AWS Black Belt Online Seminar 2017 AWS WAF
Amazon Web Services Japan
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
Yahoo!デベロッパーネットワーク
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
Ore Product
What's hot
(20)
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Docker Compose 徹底解説
Docker Compose 徹底解説
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
DevOps with Database on AWS
DevOps with Database on AWS
[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
AWS Black Belt Online Seminar 2017 AWS WAF
AWS Black Belt Online Seminar 2017 AWS WAF
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
Viewers also liked
Drone.io のご紹介
Drone.io のご紹介
Uchio Kondo
捕鯨!詳解docker
捕鯨!詳解docker
雄哉 吉田
Dockerの利用事例
Dockerの利用事例
maebashi
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
maebashi
モニタリングシステムのこれまでとこれから (2015-01-30)
モニタリングシステムのこれまでとこれから (2015-01-30)
YOSHIKAWA Ryota
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
Yosuke Furukawa
Light and shadow of microservices
Light and shadow of microservices
Nobuhiro Sue
Viewers also liked
(7)
Drone.io のご紹介
Drone.io のご紹介
捕鯨!詳解docker
捕鯨!詳解docker
Dockerの利用事例
Dockerの利用事例
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
モニタリングシステムのこれまでとこれから (2015-01-30)
モニタリングシステムのこれまでとこれから (2015-01-30)
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
Light and shadow of microservices
Light and shadow of microservices
Similar to Jenkinsとamazon ecsで コンテナCI
コンテナって何?
コンテナって何?
Hiroyuki Numao
Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!
Etsuji Nakai
Try andstudy cloud
Try andstudy cloud
Etsuji Nakai
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
Kuniyasu Suzaki
Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124
Kazuhisa Hara
Awsビギナー向け資料 ec2 20111124
Awsビギナー向け資料 ec2 20111124
satoshi
Xen Nic
Xen Nic
Kazuhisa Hara
業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~
業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~
SORACOM, INC
Dockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しよう
Takashi Makino
Amazon Ec2
Amazon Ec2
Akio Katayama
Amazon EC2
Amazon EC2
Akio Katayama
20170413 aws–windows users meetup
20170413 aws–windows users meetup
Amazon Web Services Japan
OSvパンフレット v3
OSvパンフレット v3
Takuya ASADA
Fabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFes
Sho Shimauchi
EC2クラスタインスタンス使ってみました!
EC2クラスタインスタンス使ってみました!
Eiji Sato
Dockerを使ってみよう
Dockerを使ってみよう
GIG inc.
はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる]
はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる]
SORACOM, INC
Kubernetes introduction
Kubernetes introduction
DAEBUM LEE
AWS Black Belt Techシリーズ Amazon EBS
AWS Black Belt Techシリーズ Amazon EBS
Amazon Web Services Japan
Windows とコンテナの話
Windows とコンテナの話
Kazuki Takai
Similar to Jenkinsとamazon ecsで コンテナCI
(20)
コンテナって何?
コンテナって何?
Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!
Try andstudy cloud
Try andstudy cloud
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124
Awsビギナー向け資料 ec2 20111124
Awsビギナー向け資料 ec2 20111124
Xen Nic
Xen Nic
業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~
業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~
Dockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しよう
Amazon Ec2
Amazon Ec2
Amazon EC2
Amazon EC2
20170413 aws–windows users meetup
20170413 aws–windows users meetup
OSvパンフレット v3
OSvパンフレット v3
Fabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFes
EC2クラスタインスタンス使ってみました!
EC2クラスタインスタンス使ってみました!
Dockerを使ってみよう
Dockerを使ってみよう
はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる]
はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる]
Kubernetes introduction
Kubernetes introduction
AWS Black Belt Techシリーズ Amazon EBS
AWS Black Belt Techシリーズ Amazon EBS
Windows とコンテナの話
Windows とコンテナの話
More from shigeyuki azuchi
新しいオフチェーンコントラクトeltooとSIGHASH_NOINPUT
新しいオフチェーンコントラクトeltooとSIGHASH_NOINPUT
shigeyuki azuchi
【暗号通貨輪読会#14】confidential transaction
【暗号通貨輪読会#14】confidential transaction
shigeyuki azuchi
福岡ブロックチェーンエコノミー勉強会In東京「カラードコインの作り方」
福岡ブロックチェーンエコノミー勉強会In東京「カラードコインの作り方」
shigeyuki azuchi
福岡ブロックチェーンエコノミー勉強会Vol.3「Segregated Witness」
福岡ブロックチェーンエコノミー勉強会Vol.3「Segregated Witness」
shigeyuki azuchi
福岡ブロックチェーンエコノミー「ブロックチェーンのコンセンサス形成」
福岡ブロックチェーンエコノミー「ブロックチェーンのコンセンサス形成」
shigeyuki azuchi
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?
shigeyuki azuchi
e-ZUKA Tech Night in 博多! -fin tech特集- Bitcoinのブロックチェーンでできるコントラクト
e-ZUKA Tech Night in 博多! -fin tech特集- Bitcoinのブロックチェーンでできるコントラクト
shigeyuki azuchi
Open Assetsを利用したP2P型の投票システムとエクスプローラ
Open Assetsを利用したP2P型の投票システムとエクスプローラ
shigeyuki azuchi
neo4jを使ったブロックチェーンデータの解析
neo4jを使ったブロックチェーンデータの解析
shigeyuki azuchi
Serverlessでサイト監視
Serverlessでサイト監視
shigeyuki azuchi
Openassets ruby
Openassets ruby
shigeyuki azuchi
オンプレ環境と連携するハイブリッドクラウド活用事例 (2014.8.8 AWS Japan Tour 2014 福岡)
オンプレ環境と連携するハイブリッドクラウド活用事例 (2014.8.8 AWS Japan Tour 2014 福岡)
shigeyuki azuchi
More from shigeyuki azuchi
(12)
新しいオフチェーンコントラクトeltooとSIGHASH_NOINPUT
新しいオフチェーンコントラクトeltooとSIGHASH_NOINPUT
【暗号通貨輪読会#14】confidential transaction
【暗号通貨輪読会#14】confidential transaction
福岡ブロックチェーンエコノミー勉強会In東京「カラードコインの作り方」
福岡ブロックチェーンエコノミー勉強会In東京「カラードコインの作り方」
福岡ブロックチェーンエコノミー勉強会Vol.3「Segregated Witness」
福岡ブロックチェーンエコノミー勉強会Vol.3「Segregated Witness」
福岡ブロックチェーンエコノミー「ブロックチェーンのコンセンサス形成」
福岡ブロックチェーンエコノミー「ブロックチェーンのコンセンサス形成」
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?
e-ZUKA Tech Night in 博多! -fin tech特集- Bitcoinのブロックチェーンでできるコントラクト
e-ZUKA Tech Night in 博多! -fin tech特集- Bitcoinのブロックチェーンでできるコントラクト
Open Assetsを利用したP2P型の投票システムとエクスプローラ
Open Assetsを利用したP2P型の投票システムとエクスプローラ
neo4jを使ったブロックチェーンデータの解析
neo4jを使ったブロックチェーンデータの解析
Serverlessでサイト監視
Serverlessでサイト監視
Openassets ruby
Openassets ruby
オンプレ環境と連携するハイブリッドクラウド活用事例 (2014.8.8 AWS Japan Tour 2014 福岡)
オンプレ環境と連携するハイブリッドクラウド活用事例 (2014.8.8 AWS Japan Tour 2014 福岡)
Jenkinsとamazon ecsで コンテナCI
1.
JenkinsとAmazon ECSで お手軽コンテナCI Shigeyuki Azuchi HAW
International, Inc 2015.12.12 JAWS-UG 福岡ちょっと濃い目にAWSの話をしてみよう
2.
コンテナとは?
3.
コンテナとは? ユーザ空間 ハイパーバイザー(Xen) EC2(カーネル空間) ユーザプロセス ユーザプロセス … ユーザ空間 ユーザプロセス ユーザプロセス … … ユーザ空間 EC2(カーネル空間) ユーザプロセス ユーザプロセス … ユーザ空間 ユーザプロセス ユーザプロセス …
… ● VMと違って、起動するプロセスはホストOS上で直接起動するため、VMよりオーバヘッドが少 なく軽量。 ● 通常のプロセスと違ってプロセスの一部がグループ化されてて(Linuxカーネルのcgoupとか使っ て)、グループ外から隔離されたユーザ空間で動作する。 ※chrootに似てるけどchrootはネットワークやプロセスの制限はできない。 ● 既に起動済みのOSの上で動作するのでプロビジョニングも高速。
4.
コンテナの実装いろいろ ● LXC(Linux Container) Linuxカーネル2.6.29から利用可能になったcgroupを利用した コンテナ。 ●
Herokuのdyno Herokuのアプリケーションが実行されるプラットフォーム。 LXCをベースにしたコンテナ。 ● Docker 多分一番シェアがあるコンテナ。 初期はLXCに依存していたが、現在はlibcontainerに刷新。
5.
Amazon ECSとは?
6.
Amazon EC2 Container
Service EC2クラスタ上にDockerのコンテナ群を 管理できるサービス EC2 ・・ EC2 ・・ EC2 ・・ ECS Cluster ローカルマシンや1台のサーバ上でDockerコンテナを起動するのは簡単で 運用もシンプルだけど、複数のサーバでの運用や特定のスペックを必要と するコンテナの管理をしようとすると専用のオーケストレーションツール が必要になる。 →Amazon ECSで簡単管理!
7.
ECSでできること
8.
ECSでできること ● Dockerサポート Amazon ECS-Optimized
Amazon Linux AMIを利用するこ とでDockerコンテナの環境を自前で用意する必要無し。 ● マネージドクラスタ クラスタ管理をするのに専用のオーケストレーションツー ルは不要で、ECSが全てのクラスタを管理。 ● タスクの定義 使用するDockerイメージや、メモリ量、CPUユニット、デ ータボリューム等を定義したタスクをJSONで定義。 ● プログラマブルなAPI 他のAWSサービスと同様APIを使ってECSの管理が可能。
9.
ECSでできること ● スケジューリング リソースの使用状況(CPU、メモリとか)に応じてコ ンテナを配置するスケジューラが存在。 ● コンテナの自動復旧 コンテナに異常が発生しても、指定された数のコンテ ナが常時稼働するよう自動調整。 ※タスクに定義されたリソース消費量を超えるとkillされたりするので。 ●
コンテナのロードバランシング ELBと合わせてトラフィックをコンテナ全体に分散。 タスク定義でELBを指定するとスケジューラによって 自動的にコンテナがELBに追加・削除される。 (Auto Scaleする訳ではない)
10.
ECSでできること ● コンテナの自動アップデート タスク定義を新しいバージョンにするとスケジューラ が自動的に更新されたイメージを展開。 ● モニタリング タスク、サービス、クラスタ毎にタスクのCPUとメモ リをCloudWatchでモニタニング可能。 ●
リポジトリのサポート Docker Hub以外に任意のプライベートDockerレジス トリをサポート。またAmazon EC2 Container Registryが使えるようになるはず。 (EC2 Container Regstryが年内リリースのはず)
11.
ECSのコンポーネント
12.
ECS Cluster Container Inctance EC2 ECS
Agent Task container container Container Inctance EC2 ECS Agent Task container container ・ ・ ・ Task Definition Service EC2 Container Service ECS Cluster 【ECS Cluster】 1つ以上のコンテナインスタンスを集約したグ ループ
13.
Container Inctance EC2 ECS Agent Task container container Container
Inctance EC2 ECS Agent Task container container ・ ・ ・ ECS Cluster Task Definition Service EC2 Container Service Container Instance 【ECS Container Instance】 ● ECSクラスタに登録されているEC2インスタンス。 ● コンテナインスタンス用のAMIを使って起動する ECSクラスタを指定して起動するか、AutoScallingによって 起動。 ● 起動するとデフォルトでDockerとECS Agentが起動し、 クラスタに登録される。 ● 課金も基本的にはEC2の使用料。
14.
Container Inctance EC2 ECS Agent Task container container Container
Inctance EC2 ECS Agent Task container container ・ ・ ・ ECS Cluster Task Definition Service EC2 Container Service ECS Agent 【ECS Agent】 ● ECSインスタンス上で稼働するAgent。 ● サポートしてるのはEC2インスタンスのみなので、ローカルマ シンとかにインストールしてもクラスタに参加はできない。 ● クラスタにインスタンスを参加させたり、クラスタで定義され たタスクやサービスをインスタンス上にコンテナを起動して実 行する。 ● Agent自体もDocker ImageでDocker Hub上で公開されてる。
15.
Container Inctance EC2 ECS Agent Task container container Container
Inctance EC2 ECS Agent Task container container ・ ・ ・ ECS Cluster Task Definition Service EC2 Container Service Task Definition 【Task Definition】 以下のようなECSコンテナとして動作する アプリケーションの定義を設定。 ● 使用するDockerイメージ ● 各コンテナで使用するCPUユニット、メモリ量 ● コンテナインスタンスとのポートマッピング ● コンテナ内のデータ領域のマウントポイント ● リンクするコンテナ ● 永続化するデータボリューム ● etc..
16.
Container Inctance EC2 ECS Agent Task container container Container
Inctance EC2 ECS Agent Task container container ・ ・ ・ ECS Cluster Task Definition Service EC2 Container Service Service 【Service】 バッチジョブのように動作ののち停止するタイプ のタスクとはことなり、ずっと起動するアプリケ ーションの場合、Serviceとして作成。 Desired number of Tasksで設定した数のコンテナ が常時起動する状態になる。
17.
Container Inctance EC2 ECS Agent Task container container Container
Inctance EC2 ECS Agent Task container container ・ ・ ・ ECS Cluster Task Definition Service EC2 Container Service Task 【Task】 Task Definitionを元にコンテナインスタンスで起動 するコンテナアプリケーション。 1つのTaskDefinitionから複数のTaskが生成される。
18.
CI環境でECSを利用
19.
CI環境でよくある問題 ● Slow Test コードベースが大きくなると、それに合わせてテストコー ドも肥大化してテストの実行にかかる時間が増えていく。 テストが完了するのに20,30分かかると気軽にテストやデ プロイしにくい。 ●
カオスな実行環境 プロジェクトによって言語や実行環境が異なるとテスト環 境も異なる。 複数のプロジェクトのCIを同じ環境で実行しようとすると バージョンの異なるソフトウェアのインストールや管理が ツラい。
20.
そんな悩みを コンテナで解決!
21.
Jenkins meets Docker ECSのDockerコンテナをSlaveノードとして、Jenkinsの各ジョブを実行できる Plugin ※現状、リージョンの選択ができない(us-east-1のみ)ので東京リージョンで 稼働させたい場合は、リージョン指定できるようフォークしたので↓からどうぞ。 https://github.com/azuchi/amazon-ecs-plugin/tree/support-region-setting
22.
Jenkinsのシステム設定 EC2 Container Service Create
Task Definition Task Definitionの作成とRun Taskを行えるパーミッ ションのアクセスキーとシークレットアクセスキー を設定。
23.
ジョブの設定 ジョブの実行ノードをシステム設定画面で設定した スレーブテンプレートを指定するだけ。 ジョブを実行すると EC2 Container Service Run
Task container
24.
注意点 ● リポジトリへアクセスする際の鍵 ○ コンテナインスタンスに配置し鍵を共有 コンテナインスタンス起動時のuser
dataでコンテナインスタンス上 に鍵を配置し、コンテナからはその鍵を参照する。 ○ ビルドパイプラインの有効利用 リポジトリからソースを取得するだけのJobを作成し、成果物を保 存→下流ジョブでコンテナを起動し、成果物(ソース)をコピーし てジョブ実行。 ● コンテナのリンクは設定できない ECSのTask Definitionではリンクするコンテナを設定できるけど、 amazon-ecs-pluginではスレーブの実行に使えるのは単一コンテナのみ。
25.
まとめ ● 並列実行でテストスピード向上 各コンテナは独立して動作するのでDBまで含めたテストの 並列実行も簡単に。 ● クリーンな実行環境 各ジョブの実行環境をDocker
Imageで提供することで Jenkinsのマスターノードへの必要なソフトウェアのインス トールが不要に。 ● テストリソースはECSがよろしく管理 ECSに適切なスペックのコンテナインスタンスを登録して おけば、テスト実行時のコンテナの配備や調整といったメ ンドクサイことをECSが肩代わり。
Download now