Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Masahiro NAKAYAMA
2,957 views
Mastdonインスタンス立ててみた in Azure #ssmjp
20170529 #ssmjp mastodon Azure上でマネージドサービスを使って クラウドっぽくMastodonを動かしてみた話
Technology
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Downloaded 10 times
1
/ 22
2
/ 22
3
/ 22
4
/ 22
5
/ 22
6
/ 22
7
/ 22
8
/ 22
9
/ 22
10
/ 22
11
/ 22
12
/ 22
13
/ 22
14
/ 22
15
/ 22
16
/ 22
17
/ 22
18
/ 22
19
/ 22
20
/ 22
21
/ 22
22
/ 22
More Related Content
PDF
Mroonga 20121129
by
Kentoku
PPTX
ReactiveProperty
by
一希 大田
PDF
「VAddy」ユーザーミートアップ Vol.4
by
Kentaro NOMURA
PDF
Reactive Extensionsはじめました
by
一希 大田
PDF
第一回Twitter勉強会スライド~『twitterをはじめよう』~
by
networkwan
PPTX
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
by
Takeshi Komiya
PDF
UniTask入門
by
torisoup
PPTX
第2回ブラトヨハシ 20161112 Wikipedia
by
Cantabrio Asturio
Mroonga 20121129
by
Kentoku
ReactiveProperty
by
一希 大田
「VAddy」ユーザーミートアップ Vol.4
by
Kentaro NOMURA
Reactive Extensionsはじめました
by
一希 大田
第一回Twitter勉強会スライド~『twitterをはじめよう』~
by
networkwan
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
by
Takeshi Komiya
UniTask入門
by
torisoup
第2回ブラトヨハシ 20161112 Wikipedia
by
Cantabrio Asturio
What's hot
PPTX
名古屋セキュリティ勉強会LT~学内CTFの話~
by
kataware
PDF
Tizenの.NET対応について
by
Shinya Nakajima
PDF
ブラウザの歴史
by
Makoto Kato
PDF
5 mnu pbox_solftlayer_summit
by
chenree3
PDF
UniRx完全に理解した
by
torisoup
PPT
what is twitter
by
home
PPTX
JAWS-UGコンテナ支部20160205_LT_ハンズラボ青木由佳
by
Yuka Aoki
PDF
セキュリティの○○○を買ってみた
by
cluclu_land
PDF
WEBブラウザのシェアをウェブの歴史で遡るニュースまとめ
by
新潟コンサルタント横田秀珠
PPTX
Glusterfsを用いた静的コンテンツ配信サーバ冗長化 20130723
by
Takaki Kawamura
PDF
UniRx の1歩目
by
infinite_loop
名古屋セキュリティ勉強会LT~学内CTFの話~
by
kataware
Tizenの.NET対応について
by
Shinya Nakajima
ブラウザの歴史
by
Makoto Kato
5 mnu pbox_solftlayer_summit
by
chenree3
UniRx完全に理解した
by
torisoup
what is twitter
by
home
JAWS-UGコンテナ支部20160205_LT_ハンズラボ青木由佳
by
Yuka Aoki
セキュリティの○○○を買ってみた
by
cluclu_land
WEBブラウザのシェアをウェブの歴史で遡るニュースまとめ
by
新潟コンサルタント横田秀珠
Glusterfsを用いた静的コンテンツ配信サーバ冗長化 20130723
by
Takaki Kawamura
UniRx の1歩目
by
infinite_loop
More from Masahiro NAKAYAMA
PDF
ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
by
Masahiro NAKAYAMA
PDF
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
by
Masahiro NAKAYAMA
PDF
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
by
Masahiro NAKAYAMA
PDF
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
by
Masahiro NAKAYAMA
PDF
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
by
Masahiro NAKAYAMA
PDF
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介
by
Masahiro NAKAYAMA
PDF
サーバーレス時代の システム設計ワークショップ
by
Masahiro NAKAYAMA
PDF
#ssmjp 2018/12 技術系同人誌を手に入れよう
by
Masahiro NAKAYAMA
PDF
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo
by
Masahiro NAKAYAMA
PDF
クラウドでハンズオンする話 #ssmjp
by
Masahiro NAKAYAMA
PPTX
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365
by
Masahiro NAKAYAMA
PDF
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
by
Masahiro NAKAYAMA
PDF
Serverless book
by
Masahiro NAKAYAMA
PDF
クラウドではじめるリアルタイムデータ分析 #seccamp
by
Masahiro NAKAYAMA
PPTX
技術系同人誌を書こう #ssmjp
by
Masahiro NAKAYAMA
PDF
「サーバレスの薄い本」からの1年 #serverlesstokyo
by
Masahiro NAKAYAMA
PDF
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
by
Masahiro NAKAYAMA
PDF
IoT(Bluetooth mesh) × サーバーレス
by
Masahiro NAKAYAMA
PDF
Serverless Architecture Overview #cdevc
by
Masahiro NAKAYAMA
PDF
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug
by
Masahiro NAKAYAMA
ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
by
Masahiro NAKAYAMA
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
by
Masahiro NAKAYAMA
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
by
Masahiro NAKAYAMA
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
by
Masahiro NAKAYAMA
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
by
Masahiro NAKAYAMA
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介
by
Masahiro NAKAYAMA
サーバーレス時代の システム設計ワークショップ
by
Masahiro NAKAYAMA
#ssmjp 2018/12 技術系同人誌を手に入れよう
by
Masahiro NAKAYAMA
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo
by
Masahiro NAKAYAMA
クラウドでハンズオンする話 #ssmjp
by
Masahiro NAKAYAMA
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365
by
Masahiro NAKAYAMA
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
by
Masahiro NAKAYAMA
Serverless book
by
Masahiro NAKAYAMA
クラウドではじめるリアルタイムデータ分析 #seccamp
by
Masahiro NAKAYAMA
技術系同人誌を書こう #ssmjp
by
Masahiro NAKAYAMA
「サーバレスの薄い本」からの1年 #serverlesstokyo
by
Masahiro NAKAYAMA
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
by
Masahiro NAKAYAMA
IoT(Bluetooth mesh) × サーバーレス
by
Masahiro NAKAYAMA
Serverless Architecture Overview #cdevc
by
Masahiro NAKAYAMA
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug
by
Masahiro NAKAYAMA
Mastdonインスタンス立ててみた in Azure #ssmjp
1.
Mastodonインスタンス 立ててみた in Azure Aki@nekoruri 2017-05-29 #ssmjp
2.
Mastodon • Twitterっぽいアレ • 高頻度で短文が更新されるマイクロブログ •
添付ファイル(画像や動画)が付いたりする • 「フォロー」に基づいた購読・通知と雑なアクセスコントロール • 分散SNS(Federated Social Web) • 「Twitterっぽいアレ」をブログ更新通知などの仕組みで分散化を実現 • 割と死に体だったプロトコルも流用採用している • Rails上に教科書通りに分散システムを実装(非同期処理の多用) • 微妙な言い換え(ツイート⇒トゥート、等)
3.
日本におけるMastodon • 4月中旬に過剰とも言える流行の波 • 猫も杓子もといった流行期は脱出 •
PixivのPawooやドワンゴのfriends.nico など、CGMサイトに対応するSNSとして 一定の存在感は引き続き確保 • 分散SNSの実現可能性を十分に示した 出典:https://friends.nico/@TaiseiMiyahara/10996911
4.
Mastodon用語 • インスタンス • 一つのドメインを持つMastodonシステム(例:mstdn.jp、pawoo.net) •
インスタンス毎にその管理者が運用し、ポリシーを持つ • ネットワーク屋っぽく言えばAS(自律システム) • リモートフォロー • 別のインスタンスのユーザをフォロー(購読)する • ローカルタイムライン • 自分と同じインスタンスで発言された全ての公開トゥートのタイムライン • 連合タイムライン • ローカルタイムライン +インスタンス内の誰かがリモートフォローする全ての公開トゥート
5.
AzureにMastodonを立ててみよう 1. まず服を脱ぎます UbuntuのVMを立てます。 2. 外部からのHTTPSの接続を許可します。 3.
Dockerとdocker-composeを入れます。
6.
あとは神チュートリアル資料の通り http://qiita.com/zembutsu/items/f1f1ede26102ba27fce2
7.
ほい
8.
完
9.
んなわけはない
10.
運用こそが本当の戦い • スケールアウト対応 • 添付ファイルがローカルファイル •
DB(PostgreSQL/Redis)が同一ホスト内のコンテナ間接続 • ドメインの分離 • 「添付」画像は、トゥートに直接URLとして含まれる。 ⇒ あとからドメインの変更・分離は難しいので最初に対応すること • バックアップとか冗長化とか • ぶっちゃけもうデータベースの面倒なんて自分で見たくない ⇒ マネージドDB使おう • ぶっちゃけもうメール配信キューの面倒なんて(ry ⇒ マネージドSMTPサービス使おう
11.
オブジェクトストレージの変更 • Mastodon自体の機能としてはAmazon S3に対応 •
S3互換のなにかを持ってくれば良い • Google Cloud Storageは標準のS3互換APIでそのまま通る模様 • s3proxy • S3互換APIを提供するプロキシサーバ • Azure BlobやOpenStack Swiftなどに保存できる • ローカルファイルにも保存できる ⇒ クラウド使わない場合もひとまずs3proxyでドメイン分離が可能
12.
オブジェクトストレージの変更 • Azure BlobがカスタムドメインのHTTPSができない •
とりあえずCDNを挟んで回避 • Azure CDN from Verizonなら無償でHTTPS証明書取れます • 解説記事の通りにやれば良い • http://blog.tmyt.jp/entry/2017/04/19/202922 『今話題のMastodonインスタンスを建ててS3の代わりに Azure Blob Storageを使う』 • paperclip.rb へのパッチは既に不要
13.
データストアのマネージドサービス化 • メインのDBはPostgreSQL • いやっふう! Azure
Database for PostgreSQLプレビュー来た! • 内部のPubSubなどにRedis • Azure Redis Cache
14.
PostgreSQLの切り替え • PortalからAzure Database
for PostgreSQL構築 • 接続のセキュリティとか適当に設定 • データ移行 • とりあえずpg_dumpで吸ってpsqlで投入 • 設定変更してdocker-composeあげ直し • docker-compose.ymlでdbを削除 • .env.productionに接続情報
15.
Redisの切り替え • Redis Cacheを構築 •
とりあえずテストでSSL無しで検証(時間不足) • 設定変更してdocker-composeあげ直し • docker-compose.ymlでredisを削除、.env.productionに接続設定 • 注意点 • Mastodon側で利用するRedisライブラリがSSL非対応 「NotImplementedError (SSL not supported by hiredis driver)」 • アクセスキーに「+/」が入ると駄目 • URLエンコードすればParseは通るが、デコードされずにサーバに投げられる! • ライブラリ周りの組み合わせのバグっぽい • 当たりを引けるまでアクセスキー再生成ガチャを回せば回避可能(ひどい)
16.
メール配信の切り替え • みんなだいすきSendGrid • Azureマーケットプレイス経由でも利用できるけど、 今回は構造計画研究所さん経由 •
設定変更してdocker-composeあげ直し • docker-compose.ymlでmtaを削除、.env.productionに接続情報 • ルート証明書ストアを適切に設定する必要がある (が、所詮通知だけと割り切って検証しない設定も可能) • メールなのでDNS設定も • SendGridのDomain Whitelabel機能を設定⇒DNSにレコード登録 • SPF/DKIMともにPASSできる
17.
最終的な構成 frontend (nginx) streaming (node) web (rails) SendGrid s3proxy sidekiq (worker) PostgreSQL (managed) Azure Blob Redis (managed) docker-compose管理 AzureCDN 画像など Web/Streaming 外部 インスタンス
18.
その他の課題 • コンテナ管理 • 監視
19.
コンテナ管理 • コンテナ数などの管理 • ウェブアプリだけでなく、非同期タスクのスループットが重要 •
負荷に応じたワーカーの制御が必要 • そもそもdocker-composeとか手で叩く時代じゃない • GKEみたいなのが欲しい • Azure Container Serviceでそれっぽくできそう • 結局はコンテナのスケジューリングの問題に行き着く
20.
監視 • 一般的なサーバ性能メトリクス • CPU、メモリ •
Sidekiqキュー • 規模が大きくなるとここが詰まる模様 • 複数のキューごとにプロセス分離など • マネージドサービスのメトリクス • PostgreSQL • Redis • サービス死活 • ユーザの投稿内容 • 自インスタンスのユーザの投稿の違法性 • Federate先のユーザから流れてきた投稿の違法性
21.
まとめ • Azureでもクラウドっぽくできマストドン • Azure
Database for PostgreSQL万歳! • AWS Certificate Managerの影に隠れているけど、 Azure CDNもDigiCertのフルマネージド証明書が取得/利用可能 • 手抜きしたけどLB最初から挟んだ方が良い • もうステートレスになってるから、LB挟んで増やせばOK • ちなみに1月からMicrosoft MVPになりました • みんな祝って! • 今後も基本はベンダーニュートラルでやっていきます。 <良 い モ ノ は 良 い>
22.
で、誰? • Aki (@nekoruri) •
BLEなIoTシステムの クラウド側担当 • ちょろっと執筆も • 「薄い本」も出しています • 最近はすっかり セキュリティ教育畑に…… • セキュリティ・キャンプ プロデューサー • SecHack365 実施協議会委員 • ProjectDIVA Arcade LV.623 NEW!
Download