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
PortainerとDocker Swarmで遊べる環境を作った話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yamato
August 24, 2020
Programming
1.3k
1
Share
PortainerとDocker Swarmで遊べる環境を作った話
Yamato
August 24, 2020
More Decks by Yamato
See All by Yamato
続く障害からの脱却 オブザーバビリティで立て直すサービス開発
yamato_sorariku
0
1.6k
#phpconkagawa レガシーコードにもオブザーバビリティを 〜少しずつ始めるサービス監視〜
yamato_sorariku
0
1.4k
わたしがインシデント対応のときに意識していることたち in PHPカンファレンス小田原2024 #phpcon_odawara
yamato_sorariku
0
1.1k
PHPerKaigi_2024_アンカンファレンス_-_完成度低いの歓迎LT大会
yamato_sorariku
1
120
一年目の君へ、人に頼れるようになろう
yamato_sorariku
2
700
Cloud Runを最速で体験する方法
yamato_sorariku
0
430
クローズドなサービスをIdentity-Aware Proxyを使って安全に公開する
yamato_sorariku
0
920
WEBサービスを支えるインフラたち + 自己流の学び方
yamato_sorariku
0
260
GCP PubSub Emulatorの WEB UIツール作った話(未完)
yamato_sorariku
0
470
Other Decks in Programming
See All in Programming
10 Tips of AWS ~Gen AI on AWS~
licux
5
430
JAWS-UG横浜 #100 祝・第100回スペシャルAWS は VPC レスの時代へ
maroon1st
0
160
tRPCの概要と少しだけパフォーマンス
misoton665
2
220
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
2
730
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
280
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
24
14k
NakouPAY説明用
annouim0
0
250
The Less-Told Story of Socket Timeouts
coe401_
3
470
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
4
980
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
280
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
260
Liberating Ruby's Parser from Lexer Hacks
ydah
2
1.7k
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
99
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
300
Making Projects Easy
brettharned
120
6.6k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.5k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
490
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
27
3.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
810
Six Lessons from altMBA
skipperchong
29
4.2k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Transcript
PortainerとDocker Swarmで 遊べる環境を作った話 ゆるWeb勉強会@札幌 OnLine #8
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 お話したいこと • なぜ自前で作ったのか • Docker Swarm
/ Portainer とは • 作った環境の構成/デプロイまでのフロー • 感想 ※ 具体的な構築手順などは今回ありません。
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 なぜ自前で環境を作ろうと思った? • 趣味で使ういい感じのDockerインフラを安い維持費で用意したかった ◦ AWSやGCPの無料枠使うことも考えたが、趣味で使うには従量課金がチョット怖い •
趣味でやることなので、あえて苦労もしてみたかった ◦ AWS ECSとか使ったら瞬殺なところ、あえて自前構築
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Docker Swarmとは? Docker Swarm • Dockerに含まれているクラスタリングツール
• 複数のDockerホストを束ねて1つの仮想Dockerホストとして利用できる • 複数のサービス(コンテナ)をまとめたStackと呼ばれる単位で管理もできる • docker-compose.ymlとほぼ同じ書き方で構築することができる。
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Portainerとは? Portainer • Go製の軽量なWebGUI Docker管理ツール •
Docker Imageが公式で用意されており、デプロイするだけで簡単に構築可能 • WebAPIが用意されており、Webhookを利用したCD環境構築なども可能 • 有料で使える機能(Single Sign Onなど)もあるが、個人で使う分には不要
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 なぜPortainer/Docker Swarmを選んだのか? • 色々アプリ作ってデプロイしていたが、 docker-compose x
CLI だけでやるの疲れた ◦ WebGUIでサクサクやりたかった • 軽量で簡単に構築できるうえに APIが用意されていて、CD環境構築までできる ◦ 個人でやるときでも、 CI/CDは大切だと思う • k8sも考えたが、個人でやるにはオーバースペックすぎると感じた ◦ あくまでお安めの VPSでサクサク動いてほしかった
構成について
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 構成 さくらVPSを3台使って構築しています • リバースプロキシ&SSL終端 • Docker
Swarm & Portainer マネージャ • Docker Swarm & Portainer エージェント 6台写ってますが、3台は別用途のサーバです。
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 構成図 Docker Swarm クラスタ Webサーバ
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 構成図 Docker Swarm クラスタ Webサーバ Dockerクラスタをインターネット上に直で
晒さないためのリバースプロキシ & SSL終端も兼務
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 構成図 Docker Swarm クラスタ Webサーバ Docker
Swarmで構築されたクラスタ マネージャノードには Portainerをデプロイ エージェントノードには Portainer Agentをデプロイ (どちらもDockerでデプロイ) いずれもSSH以外のインバウンドアクセスは Webサーバからの接続しか許可していない。 (Firewalldで管理)
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Portainerの画面 (公式のデモ環境)
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Portainerの画面 (公式のデモ環境)
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Portainerの画面 (公式のデモ環境)
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Portainerの画面 (公式のデモ環境)
デプロイについて
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 デプロイの流れ Docker Swarm クラスタ Webサーバ
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 デプロイの流れ Docker Swarm クラスタ Webサーバ Git
push
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 デプロイの流れ Docker Swarm クラスタ Webサーバ Gitlab
CIが起動 Docker imageをビルドして、 Gitlab Docker Registry にプッシュ
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 デプロイの流れ Docker Swarm クラスタ Webサーバ イメージのプッシュ後、
Gitlab CI で Portainerの Webhook URLにアクセス
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 デプロイの流れ Docker Swarm クラスタ Webサーバ Gitlab
Docker Registry から 最新のイメージを取得し、起動する
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Git push するだけでデプロイできる環境の完成!
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 自分で作ってみた感想 • Web GUIで操作できるのが楽 ◦ CLIで入って作業することがなくなった
• 気軽に起動しっぱなしのコンテナを建てれて楽しい ◦ 例えば、Herokuの無料枠は 1000時間/月 なので、2, 3つ建てると無料枠では足りなくなる • AWS ECS に対する感謝 ◦ あんなに簡単に構築できるって素晴らしい …… • データの永続化って難しい ◦ ホストのボリュームにデータが保存されるので、ホスト切り替えが大変。 今後の課題 などなど書いていますが ……
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 自分で作ったインフラで遊ぶのが楽しい
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 興味があるかたはぜひ、使ってみてください! Dockerで起動するので、手元の環境で簡単に試すこともできます (Docker Swarmモードである必要はないです)
ありがとうございました!