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

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

attakei
April 11, 2017

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

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

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

attakei

April 11, 2017
Tweet

More Decks by attakei

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  5. DEMO(途中経過)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  9. 作ってみた構造

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  15. EFSによって得られる恩恵

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide