新人でも出来たRancher + AWS体験

弊社で開催されたRancherもくもく会に参加してきました。
RancherとかAWSとかよくわからない~~クソ~~新人でも、ちょー簡単にいんたーねっつに公開できたのでびっくりです。

※最初に書いておきますが、セキュリティとか全然わからずうおーってやってるので、できたーって思ったらEC2のインスタンスぶっ壊してください。
多分大丈夫だと思いますけど責任とれないです…。

# できたこと
* ブラウザでアクセスできるサービスがぽちぽちするだけで複数つくれた  
（このままじゃ実用はできないけど）

# 事前準備
* Githubのアカウント取得（認証に必要）
* AWSのアカウント取得
* AWSのEC2FullAccess権限を持ったIAMユーザーを作成してアクセスキーとシークレットキーをゲットしておく

# ていうかそもそもRancherって
[Rancher JP](http://www.rancher.jp/about/)によると
> Rancher とは米国 Rancher Labs 社が主体として開発しているオープンソースのコンテナ管理プラットフォームです。
商用環境を想定し複数ホストから構成されるクラスタの管理、稼働するコンテナのライフサイクル管理、 様々なアプリケーションのテンプレート管理といった機能を有しています。
また、既存のコンテナオーケストレーションツールである Docker Swarm, Kubernetes, Mesos などをサポートしており Rancher を利用することでコンテナサービスにおけるインフラストラクチャ〜アプリケーションといった 幅広いスタックを容易に管理することが可能になります。

よくわからない単語しかない。
適当にまとめるとこんな感じっぽい。
・ RancherはコンテナをWebUIから作成、削除、起動、停止とか管理できる
・ クラウド上にRancher環境を楽ちんに構築できる

あと、docker単体だと
・CUIなので面倒
・ネットワークの接続とかつくるのも大変
・権限管理とかめんどい
ってなんか色々面倒らしいけど、その辺よしなにやってくれるし、GUIでつかえるし、ロードバランサーとかビルトインされてて強いらしい。
そもそもdockerがわから(ry

# 流れ
1. try.rancher.comにアクセスする
2. ホストを追加する
3. カタログからスタックを追加する
4. ブラウザからアクセス

## try.rancher.comにアクセスする
https://try.rancher.com
本来であれば、どこかのLinuxにRancherをインストールしてホストとならないといけないところを、ここがRancherホストの代わりをやってくれるらしい。
そして日本語が選べる！

<img width="1436" alt="スクリーンショット 2017-02-01 22.46.54.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/96ed178f-a309-d0ac-c323-e5672fa19c7c.png">


てきとうにGithubで認証すると次の画面へ。

## ホストを追加する
<img width="1440" alt="スクリーンショット 2017-02-01 22.49.19.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/0b5e66fa-8d3a-81af-4269-9e09c14139ec.png">
ホストを追加しろという警告に従ってホストを追加する。

<img width="1440" alt="スクリーンショット 2017-02-01 23.04.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/d34e4d6e-84c1-2370-2515-4357e5fda36b.png">
今回はEC2を選択。

リージョンはとりあえずap-northeast-1で、用意しておいたアクセスキーと秘密キーを入力して次へ。
間違ってもAWSのrootのアクセスキーとか渡さないでください…。
IAMでちゃんと権限を制限したユーザーのアクセスキーを渡しましょう。

<img width="1440" alt="スクリーンショット 2017-02-01 23.10.20.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/7f26d5e4-e664-3f12-cafa-c63fa26b0f37.png">
（VPC/サブネットを見せていいのかすらわからない初心者）
VPC/サブネットは適当に上の方えらんでーって言ってたので適当に上の方を選ぶ。
ここ変えるとどうなるんですかね…。

<img width="1440" alt="スクリーンショット 2017-02-01 23.17.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/8a891b30-9098-55e2-0dbe-08d2d4fd0d12.png">
セキュリティグループはそのまま。
ちなみに公開されるポートは
> From the rancher server to TCP port 22 (SSH to install and configure Docker)
If you are using the IPsec networking driver, from and to all other hosts on UDP ports 500 and 4500
If you are using the VXLAN networking driver, from and to all other hosts on UDP ports 4789

<img width="1440" alt="スクリーンショット 2017-02-01 23.22.42.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/5c4848cf-eac2-76c4-eb16-7189c463fd49.png">
名前は適当にrancher-hostにでもしとく。
数もてきとうに2つくらい作っちゃう。（EC2インスタンスの数です）
ほかはデフォルトで。
AWSの無料枠に気をつけて…気をつけて…。（この設定だと大丈夫）

そして作成！！！！

<img width="1440" alt="スクリーンショット 2017-02-01 23.25.25.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/ca424217-2149-9a8c-16f6-ded9b274eec9.png">

<img width="1440" alt="スクリーンショット 2017-02-01 23.32.18.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/05e08331-45b7-9338-5d26-a64466fc80ca.png">
無事に生まれました。

## カタログからスタックを追加
<img width="1440" alt="スクリーンショット 2017-02-01 23.35.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/5220357d-8b82-3cc1-3cf3-1fba245cd2c3.png">
いっぱいあるけど、弊社がアレしてるowncloudをとりあえずいれてみる。

<img width="1440" alt="スクリーンショット 2017-02-01 23.37.49.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/f686c809-d042-3a7d-2b99-e23d03a4a3fb.png">
ありました。詳細を見るをクリック。

<img width="1440" alt="スクリーンショット 2017-02-01 23.39.32.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/6e176e73-1bff-b263-7ca7-44069d4ec8d5.png">
デフォルトでそのまま作成してみる。

<img width="1440" alt="スクリーンショット 2017-02-01 23.42.31.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/cb8a2757-18bb-329d-1862-17c886d83b9a.png">
調子にのってwordpressも入れちゃう。
ポートはかぶらないよう適当にかえる。

<img width="1440" alt="スクリーンショット 2017-02-01 23.56.19.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/37665915-b1f7-c618-2f7e-e5f6aa33b372.png">
無事追加できました。
別にホストが1つでもいい感じにコンテナ乗っけてくれます。

でも、このままではつながらないです。

### セキュリティグループの編集
AWSのセキュリティグループrancher-machineを編集して、ポートを開けます。

<img width="1101" alt="スクリーンショット 2017-02-02 19.58.30.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/57899776-0ab1-5e32-75b4-9b24f8790343.png">

先程追加したowncloud(80)とwordpress(8888)を追加。
マイIPにしとけばとりあえずいいかな…。

## ブラウザからアクセス
<img width="1438" alt="スクリーンショット 2017-02-02 20.00.53.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/67e277ba-bb7b-c46b-8674-73ef9d4e075f.png">
ここのホストIPとポートでアクセス。

<img width="1440" alt="スクリーンショット 2017-02-02 20.01.24.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/d13c7e6b-4988-8128-df1c-7242783ab596.png">
動いてる！すごい！

<img width="1432" alt="スクリーンショット 2017-02-02 20.11.20.png" src="https://qiita-image-store.s3.amazonaws.com/0/120491/8b9663c6-477a-d228-f92d-ce5cf602317b.png">

wordpressも行けました。

# 感想
こんなにかんたんにできるなんて、すごい時代ですね…。
でも、このままじゃ使えないですよね…。

# 疑問
・例えばこのままowncloudにデータを突っ込むとどこに保存されるのか？S3のバケット？？どこで見れるの…。
・保存するとして何GBまでいけるの？どこで変えられるの…。
・セキュリティとか大丈夫なの？デフォルトのセキュリティグループrancher-machineでも特に問題ない…？
すごいけど実際使うってなったとき、どういう設定にすればいいのかイマイチよくわかんないなーって感じです。