Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ansibleで作る、AWSで「器の大きい」Omnibus-GitLab

252e6c31a6452aa80deb9ad0107975c7?s=47 attakei
April 11, 2017

 Ansibleで作る、AWSで「器の大きい」Omnibus-GitLab

HTMLスライドなので、どこかのタイミングでHTML版もちゃんと公開する予定です

- 5/14 整形して再アップロード

252e6c31a6452aa80deb9ad0107975c7?s=128

attakei

April 11, 2017
Tweet

Transcript

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

    #2
  2. ⾃⼰紹介 武居和也(タケイ カズヤ) サーバサイド主軸のエンジニア Company: 株式会社ニジボックス 開発室 アーキテクト 主に事業以外の領域を⾒ています Social:

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

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

    playbookを作りました。
  5. DEMO(途中経過)

  6. Omnibus-GitLabって? いわゆる、 All in one GitLab です。 GitLab(⼀式) PostgreSQL Redis

    nginx Mattermost をまとめてインストールしてくれます。
  7. Ansibleって? Python製の構成管理ツールです。 - hosts: db roles: - postgres - hosts:

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

  9. 作ってみた構造

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

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

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

  13. (そろそろ完了した?)

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

    5. Monitoring ⾒る 6. →→ こうなる →→
  15. EFSによって得られる恩恵

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

  17. 8390000TB!?

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

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

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

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