Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
WordPress を Trellis で管理した話
Yusuke Matsuura
December 16, 2017
Technology
0
530
WordPress を Trellis で管理した話
九州インフラ交流勉強会(Kixs) Vol.006
Yusuke Matsuura
December 16, 2017
Tweet
Share
More Decks by Yusuke Matsuura
See All by Yusuke Matsuura
SRE 本 輪読会 #1
matsuzj
0
760
サーバ構成管理について
matsuzj
0
100
MySQL 5.1 から Aurora への移行
matsuzj
0
84
Other Decks in Technology
See All in Technology
AWS CLI でやってみる ~ AWS Hands-on for Beginners ECS ハンズオン ~
kentosuzuki
1
520
ECS Fargate+Mackerelにおける監視費用を削減するまでの話
nulabinc
PRO
1
490
Simplify Cloud Native Security with Trivy
knqyf263
0
720
Azure DevOps Online Vol.6 - 業務で必要なCIをみんなで考えよう
kkamegawa
0
280
Oblivious Online Monitoring for Safety LTL Specification via Fully Homomorphic Encryption
anqou
0
260
Amazon Comprehendで始める感情分析
46ta
0
200
合同IT企業説明会から学ぶエンジニア向けの広報戦略
nagutabby
1
250
サイバー攻撃を想定したクラウドネイティブセキュリティガイドラインとCNAPP及びSecurity Observabilityの未来
syoshie
1
1.4k
ReverseETLでユーザーに価値を届ける基盤を実現した話
hakky
0
350
Dangerous attack paths: Modern Development Environment Security - Devices and CI/CD pipelines
rung
PRO
0
150
開発環境のセキュリティおよびCI/CDパイプラインのセキュア化
rung
PRO
12
4.9k
DeFiChain Tech Talk - DFI Uniswap Staking, DeFi Options & DeFi Meta Chain
uzyn
0
120
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
396
62k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
351
21k
How to Ace a Technical Interview
jacobian
267
21k
Making the Leap to Tech Lead
cromwellryan
113
7.4k
Optimizing for Happiness
mojombo
364
64k
The Illustrated Children's Guide to Kubernetes
chrisshort
18
40k
No one is an island. Learnings from fostering a developers community.
thoeni
9
1.3k
For a Future-Friendly Web
brad_frost
166
7.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
119
28k
Docker and Python
trallard
27
1.6k
Designing with Data
zakiwarfel
91
4k
Clear Off the Table
cherdarchuk
79
290k
Transcript
WordPress を Trellis で管理した話 Yusuke Matsuura ‒ Nulab Inc. Dec
16, 2017 14:00 ∼ 17:30 九州インフラ交流勉強会(Kixs) Vol.006
自己紹介 ‒ Yusuke Matsuura @matsuzj ‒ Nulab Inc. ‒ Site
Reliability Engineer @Backlog ‒ 趣味は登山・キャンプ ‒ Job ‒ Web サービスの開発/運用を始めて11年ぐらい経ちます ‒ アプリケーションエンジニアからインフラ方面へ ‒ 現在は運用・改善・トラブルシュート等 ‒ Team ‒ 2015年7月から Nulab のインフラ担当としてジョイン ‒ 2016年9月から SRE チームを2名になる ‒ 2017年8月から SREメンバーが追加されて3名体制へ
話すること ‒ Trellis 導入の経緯 ‒ Trellis ついて ‒ Web サイトのインフラ構成など
Trellis 導入の経緯 日本向けのドメイン backlog.jp と 海外向けの backlogtool.com を backlog.com へ統合するプロジェクトが動いています。
Webサイトも backlog.com へ統合することになったの で、コンテンツ管理、インフラ管理を楽になるよう検討 することになりました
None
None
Trellisって何? WordPress をよしなに構成管理してくれるツール Modern LEMP stack ‒ Linux ( Ubuntu
) ‒ Nginx ‒ MySQL ( MariaDB ) ‒ PHP
具体的には何を使っているか ‒ Nginx ‒ MariaDB (MySQL drop‒in replacement) ‒ PHP
7.1 (+ extensions) ‒ Composer ‒ WP‒CLI ‒ sSMTP ‒ Memcached ‒ Fail2ban ‒ ferm (firewall) ‒ Mailhog
ディレクトリ構成は? ̀̀̀shell current/ # Root directory (You can change this
directory name) ├── trellis/ # For Ansible │ ├── nginx‒includes # Include nginx conf https://roots.io/trellis/docs/nginx‒includes/ │ └── templates # Define User template, Require trellis/group̲vars/all/main.yml └── site/ # Directory for website (Bedrock‒based) └── web/ ├── app/ # WordPress content directory (themes, plugins, etc.) └── wp/ # WordPress core (don't touch!) ̀̀̀
開発 ‒ 開発は vagrant up を実行してローカルで動作確認で きます ‒ Ansible の
group̲vars には development, staging, production が定義されている ansible‒playbook server.yml ‒e env=staging ‒u ubuntu ‒ デプロイも簡単です ./bin/deploy.sh staging backlog.com
PHP の extensions 拡張したいんだけど? できます! trellis/group̲vars/all/main.yml に以下を追加するだけ php̲extensions̲custom: php7.1‒yaml: "{{
apt̲package̲state }}"
Nginxで他のサーバにプロキシしたいんだけど? できます! 以下に配置するだけで location の追加ができる trellis/nginx‒includes/domain/*.conf.j2
RDS 使いたいんだけど? できます! trellis/group̲vars/production/wordpress̲sites.yml wordpress̲sites: backlog.com: env: db̲host: rds.us‒east‒1.rds.amazonaws.com
SES 使いたいんだけど? できます! trellis/group̲vars/all/mail.yml # Documentation: https://roots.io/trellis/docs/mail/ mail̲smtp̲server: email‒smtp.us‒east‒1.amazonaws.com:465 mail̲admin:
admin@backlog.com mail̲hostname: localhost mail̲user: mail̲user mail̲password: "{{ vault̲mail̲password }}" # Disable STARTSSL for Amazon SES ssmtp̲start̲tls: 'No'
ALB 使いたいんだけどヘルスチェックどうすんの? できます! trellis/group̲vars/all/main.yml に以下を追加する https://github.com/roots/trellis/issues/786 nginx̲sites̲confs: ‒ src: no‒default.conf.j2
enabled: false ‒ src: "{{ playbook̲dir }}/templates/default‒elb‒health‒check.conf.site.j2"
所感 ‒ サーバ管理が Ansible なのはいい ‒ 細かい設定・拡張もできる ‒ デプロイもすごく楽
Backlog 歴史的経緯 ‒ 10年の歴史で作られたコンテンツがいっぱいある ‒ すべてWordPress で管理されているわけでなくStatic なファイルがある
Backlog のコンテンツは?
インフラ構成 useast1 public private Target Group backlogcomwebsite Target Group backlogcomwebsitestaging
https://backlog.com/ backlogwebsiteblog backlogwebsite Target Group backlogcomwebsiteworld Target Group backlogcomwebsitedl backlogwebsiteworld