Slide 1

Slide 1 text

Ansibleで作る、AWSで「器の⼤き い」Omnibus-GitLab Kazuya Takei 2017/04/11 LT in GitLab Meetup Tokyo #2

Slide 2

Slide 2 text

⾃⼰紹介 武居和也(タケイ カズヤ) サーバサイド主軸のエンジニア Company: 株式会社ニジボックス 開発室 アーキテクト 主に事業以外の領域を⾒ています Social: @attakei Python系のコード書いていることが多いです

Slide 3

Slide 3 text

ニジボックスのGitLab 主に⾮業務領域や検証⽤コードの置き場として社内にひっそり提供 ○○勉強会 社内開発合宿 部活動 少し前はソースをCloneしてました インフラ移管のついでに、Omnibus-GitLab形式に移⾏ ※以降は、この環境構築時の知⾒をもとに、  ほぼ個⼈時間を使ってリファクタリングしてみたあとの話です。

Slide 4

Slide 4 text

今回話すこと 1. AWS上に 2. CloudFormationを使って 3. 「器の⼤きい」Omnibus-GitLabを構築する 4. Ansible の playbookを作りました。

Slide 5

Slide 5 text

DEMO(途中経過)

Slide 6

Slide 6 text

Omnibus-GitLabって? いわゆる、 All in one GitLab です。 GitLab(⼀式) PostgreSQL Redis nginx Mattermost をまとめてインストールしてくれます。

Slide 7

Slide 7 text

Ansibleって? Python製の構成管理ツールです。 - hosts: db roles: - postgres - hosts: web roles: - nginx (主役の⼀⼈だけど、今回は割愛)

Slide 8

Slide 8 text

「器が⼤きい」とは Omnibus-GitLabのファイルを置く領域に、Elastic File System(EFS)を使います。 https://aws.amazon.com/jp/efs/ AWSが提供するスケーラブルなファイルストレージ 容量をオンデマンドで使えるNFS的なもの 要するに リポジトリの利⽤枠が(実質)制限なしになります 今回は、この⼀点だけでEFSを選択しました

Slide 9

Slide 9 text

作ってみた構造

Slide 10

Slide 10 text

中⾝ https://gitlab.com/attakei/ansible-omnibus-gitlab-playbook ここに置いてます。(少し前に、publicにしました) 必要なもの AnsibleがインストールされているPC botoも必要 EFSを使えるAWSアカウント(IAMユーザ)

Slide 11

Slide 11 text

Ansibleでやっていること(1) CloudFormation経由でAWSのリソースをまとめて作成

Slide 12

Slide 12 text

Ansibleでやっていること(2) 作成されたEC2インスタンスに、EFSをマウントさせてGitLabをインストール

Slide 13

Slide 13 text

(そろそろ完了した?)

Slide 14

Slide 14 text

EFSによって得られる恩恵 1. GitLabアクセスする 2. rootパスワードを変更する 3. ログインする 4. Admin Area⾏く 5. Monitoring ⾒る 6. →→ こうなる →→

Slide 15

Slide 15 text

EFSによって得られる恩恵

Slide 16

Slide 16 text

8390000TB!? 8390 PB 8.4 EB ぐぐってみたら Androidのリポジトリをクローンすると40GB弱あるらしいです。 フルに使うと、$3,000,0000,000 = 330,0億/⽉?

Slide 17

Slide 17 text

8390000TB!?

Slide 18

Slide 18 text

運⽤上の話 サーバ監視する際に、ディスク使⽤量を気にする必要性はなくなりました ただし、EBSのボリューム拡⼤がもうアタッチしたままできます

Slide 19

Slide 19 text

FAQ的な CloudFormationで全部やらないの? Ansibleが好きなんです GitLab Pagesは? ELBを導⼊していないので、⾮対応です タイミング的に最初の構築時にはGitLab-CEにPagesがまだなかった

Slide 20

Slide 20 text

まとめ Omnibus-GitLabすごい Ansible楽ちん EFSやばい

Slide 21

Slide 21 text

ご清聴ありがとうございました