lxc on cloudIaaS上にプライベート環境を作り  一部を外部に公開する           HiganWorks LLC id:sawanoboly※2012-10-25 18:00∼19:30ファーストサーバさん社内勉強会向け発表資料
概要1.グローバルIPが使えるIaaS上にUbuntuの仮想マシンを 作成する2.lxcをインストールして、内部にプライベートIPのネッ トワークを持つ3.コンテナを作成して、NAPTネットワークに接続4.内部コンテナのサービスを外部に公開する...
おことわり大体の質問は『やってみたら?』と回答されますのでご了承してください。やってみて、よく分からんといった部分は解説できるかもしれません。             3
影響元Cucumber-chefhttp://www.cucumber-chef.org/Opscode ChefのCookbooksをテストするためにChefサーバ/クライアント環境を単一のEC2インスタンス上に作成する           ...
1. グローバルIPが使えるIaaS上にUbuntuの仮想マシンを作成する         5
UbuntuでGIPなIaaSAmazon EC2RackSpaceLinodeetc.... つーか沢山あります                6
で、今回採用するのはhttp://z-cloud.jp/                     仮想マシンの作成削除が楽ちんで固定GIPだから                           7
マシン作成&12.04LTSへ       (do-release-upgrade !)       8
2. lxcをインストールして、内部にプライベートIPのネットワークを持つ           9
lxc導入Ubuntuのガイド通りhttps://help.ubuntu.com/12.04/serverguide/lxc.html                           10
aptで導入の特徴ツール完備(/usr/bin/lxc-*)、デーモン自動起動テンプレートつき(/usr/lib/lxc/templates/lxc-*)プライベートネットワークNAPT付きがスタート(lxcbr0 + iptables)app...
LXC_BRIDGEを掘り下げる ※/etc/default/lxc より USE_LXC_BRIDGE="true" LXC_BRIDGE="lxcbr0" LXC_ADDR="10.0.3.1" LXC_NETMASK="255.255.2...
bridge & iptables  ブリッジが作成され、仮想スイッチのセグメント作成  iptablesにマスカレード設定、外部到達OK!# brctl showbridge name" bridge id"   "   STP enable...
だいたいのネットワーク図     14
この環境を言い換える自宅に固定IP引いてルータつけた環境に酷似ルータから自宅サーバに静的ポートフォワード(w) とかでWEB公開しちゃったりする、あの環境その自宅サーバが仮想で増やし放題&複製し放題ですよと            15
3. コンテナを作成して、NAPTネットワークに接続      16
コンテナ作成テンプレートからコマンドひとつ。(CN=コンテナ名)            17
デフォルトでlxcbr0に参加/etc/lxc/lxc.conf よりlxc.network.type=vethlxc.network.link=lxcbr0lxc.network.flags=up 起動したコンテナはとりあえずDHCPから 1...
コンテナ内で疎通   19
4. 内部コンテナのサービスを   外部に公開する       20
要は自宅サーバ   21
iptables設定例   グローバルIPのTCP/8080をコンテナのNginx(TCP/80)   にフォワード   今回のコンテナIPは 10.0.3.172# iptables -t nat -A PREROUTING -p tcp -...
Nginx設定例                  upstream chef_server {バックエンドにChef API   }                    server 10.0.3.172:4000 fail_timeout...
まとめや補足Ubuntu12.04が作れるIaaSを選びましょうマシン作成削除が簡単なIaaSで、さらに作成削除が用意なコンテナを作っちゃあ壊しでいろんな構成を試せる何台コンテナがあっても、お値段はマシン1台の稼働分でOK終わったらDestro...
END       lxc on cloud      IaaS上にプライベート環境を作り        一部を外部に公開する                 HiganWorks LLC id:sawanoboly      ※2012-10...
Upcoming SlideShare
Loading in...5
×

Lxc on cloud

1,198

Published on

IaaSの仮想マシン内にlxcでプライベート環境を作る。

コンテナ上のサービスを外部に公開する

誤字を少し修正

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,198
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
12
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "Lxc on cloud"

    1. 1. lxc on cloudIaaS上にプライベート環境を作り 一部を外部に公開する HiganWorks LLC id:sawanoboly※2012-10-25 18:00∼19:30ファーストサーバさん社内勉強会向け発表資料
    2. 2. 概要1.グローバルIPが使えるIaaS上にUbuntuの仮想マシンを 作成する2.lxcをインストールして、内部にプライベートIPのネッ トワークを持つ3.コンテナを作成して、NAPTネットワークに接続4.内部コンテナのサービスを外部に公開する 2
    3. 3. おことわり大体の質問は『やってみたら?』と回答されますのでご了承してください。やってみて、よく分からんといった部分は解説できるかもしれません。 3
    4. 4. 影響元Cucumber-chefhttp://www.cucumber-chef.org/Opscode ChefのCookbooksをテストするためにChefサーバ/クライアント環境を単一のEC2インスタンス上に作成する 4
    5. 5. 1. グローバルIPが使えるIaaS上にUbuntuの仮想マシンを作成する 5
    6. 6. UbuntuでGIPなIaaSAmazon EC2RackSpaceLinodeetc.... つーか沢山あります 6
    7. 7. で、今回採用するのはhttp://z-cloud.jp/ 仮想マシンの作成削除が楽ちんで固定GIPだから 7
    8. 8. マシン作成&12.04LTSへ (do-release-upgrade !) 8
    9. 9. 2. lxcをインストールして、内部にプライベートIPのネットワークを持つ 9
    10. 10. lxc導入Ubuntuのガイド通りhttps://help.ubuntu.com/12.04/serverguide/lxc.html 10
    11. 11. aptで導入の特徴ツール完備(/usr/bin/lxc-*)、デーモン自動起動テンプレートつき(/usr/lib/lxc/templates/lxc-*)プライベートネットワークNAPT付きがスタート(lxcbr0 + iptables)apparmorが コンテナ => 親ホストの干渉を制限(※動作が妙に遅くなったらappaomorを止めてもOK) 11
    12. 12. LXC_BRIDGEを掘り下げる ※/etc/default/lxc より USE_LXC_BRIDGE="true" LXC_BRIDGE="lxcbr0" LXC_ADDR="10.0.3.1" LXC_NETMASK="255.255.255.0" LXC_NETWORK="10.0.3.0/24" LXC_DHCP_RANGE="10.0.3.2,10.0.3.254" LXC_DHCP_MAX="253" 12
    13. 13. bridge & iptables ブリッジが作成され、仮想スイッチのセグメント作成 iptablesにマスカレード設定、外部到達OK!# brctl showbridge name" bridge id" " STP enabled" interfaceslxcbr0! ! 8000.9e5e1368c6aa!o n# ip addr show dev lxcbr03: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueuestate UP inet 10.0.3.1/24 brd 10.0.3.255 scope global lxcbr0# iptables -t nat -L POSTROUTINGChain POSTROUTING (policy ACCEPT)target prot opt source destinationMASQUERADE all -- 10.0.3.0/24 anywhere 13
    14. 14. だいたいのネットワーク図 14
    15. 15. この環境を言い換える自宅に固定IP引いてルータつけた環境に酷似ルータから自宅サーバに静的ポートフォワード(w) とかでWEB公開しちゃったりする、あの環境その自宅サーバが仮想で増やし放題&複製し放題ですよと 15
    16. 16. 3. コンテナを作成して、NAPTネットワークに接続 16
    17. 17. コンテナ作成テンプレートからコマンドひとつ。(CN=コンテナ名) 17
    18. 18. デフォルトでlxcbr0に参加/etc/lxc/lxc.conf よりlxc.network.type=vethlxc.network.link=lxcbr0lxc.network.flags=up 起動したコンテナはとりあえずDHCPから 10.0.3.0/24 内のIPを付与 lxcbr0を通してホストの”10.0.3.1”と通信可能 18
    19. 19. コンテナ内で疎通 19
    20. 20. 4. 内部コンテナのサービスを 外部に公開する 20
    21. 21. 要は自宅サーバ 21
    22. 22. iptables設定例 グローバルIPのTCP/8080をコンテナのNginx(TCP/80) にフォワード 今回のコンテナIPは 10.0.3.172# iptables -t nat -A PREROUTING -p tcp --dst 210.152.xxx.xxx --dport8080 -j DNAT --to-destination 10.0.3.172:80※自分のPCからcurl$ curl -s http://210.152.xxx.xxx:8080/ | grep title<title>Welcome to nginx!</title> 22
    23. 23. Nginx設定例 upstream chef_server {バックエンドにChef API } server 10.0.3.172:4000 fail_timeout=0; server {親ホストにaptでnginx listen 80; server_name one.chefserver.net; access_log /var/log/nginx/chef- server.access.log;名前ベースで別コンテナと error_log /var/log/nginx/chef- server.error.log warn;いう制御もOK root /usr/share/chef-server-webui/public; location @chef_server { proxy_set_header Host $http_host;SNIで名前ベースSSLもOK proxy_pass http://chef_server; } location / { try_files $uri @chef_server; } } 23
    24. 24. まとめや補足Ubuntu12.04が作れるIaaSを選びましょうマシン作成削除が簡単なIaaSで、さらに作成削除が用意なコンテナを作っちゃあ壊しでいろんな構成を試せる何台コンテナがあっても、お値段はマシン1台の稼働分でOK終わったらDestroy、500円でお腹いっぱいでかいDisk容量を生かして普通にホスティング商売してもOK(※VM1台毎に限界までリソースつかっちゃおう、コンテナ別のSSLもイケる) 24
    25. 25. END lxc on cloud IaaS上にプライベート環境を作り 一部を外部に公開する HiganWorks LLC id:sawanoboly ※2012-10-25 18:00∼19:30 ファーストサーバさん社内勉強会向け発表資料
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×