[root@localhost 0916(logged)]# wget http://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img
[root@localhost 0916(logged)]# openstack image create "CIRROS" --file cirros-0.5.1-x86_64-disk.img --disk-format qcow2 --container-format bare --public
flavor(m1.tiny 사용할 것), network(network ID) (mynet1의 id), image(CIRROS)
[root@localhost 0916(logged)]# openstack flavor list
+----+-----------+-------+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+-------+------+-----------+-------+-----------+
| 1 | m1.tiny | 512 | 1 | 0 | 1 | True |
| 2 | m1.small | 2048 | 20 | 0 | 1 | True |
| 3 | m1.medium | 4096 | 40 | 0 | 2 | True |
| 4 | m1.large | 8192 | 80 | 0 | 4 | True |
| 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True |
| 6 | m1.xsmall | 1024 | 20 | 0 | 1 | True |
+----+-----------+-------+------+-----------+-------+-----------+
[root@localhost 0916(logged)]# openstack network list
+--------------------------------------+--------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+--------+--------------------------------------+
| 59c55d07-7d4a-4541-bb95-183fa2c9c0fa | mynet2 | bda81732-6483-44ae-a70b-2694842d4a99 |
| 5d8c950e-2c55-4725-ac6b-3fc9f1103124 | extnet | b0bf766d-da90-446a-8347-20c186318bbe |
| 7076d607-5b0e-4877-bd51-4644db97a03b | mynet1 | 6de82e67-b6ca-4ebd-bdc3-a9a020214ffd |
+--------------------------------------+--------+--------------------------------------+
[root@localhost 0916(logged)]# openstack server create --flavor m1.tiny \
> --image CIRROS \
> --nic net-id=7076d607-5b0e-4877-bd51-4644db97a03b \
> --security-group permitweb \
> TESTDB
[root@localhost 0916(logged)]# openstack server list
+--------------------------------------+---------+--------+--------------------------------------+---------+-----------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+---------+--------+--------------------------------------+---------+-----------+
| a24fbd40-405a-4344-aefc-201f0562d155 | TESTDB | ACTIVE | mynet1=172.16.123.4 | CIRROS | m1.tiny |
[root@localhost 0916(logged)]# ssh -i ~/.ssh/chulsoo.pem -l centos 211.183.3.203
Last login: Fri Sep 16 00:51:59 2022 from 211.183.3.111
[centos@centos1 ~]$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet 172.16.223.204 netmask 255.255.255.0 broadcast 172.16.223.255
...
[centos@centos1 ~]$ ping 172.16.123.4 -c 3
PING 172.16.123.4 (172.16.123.4) 56(84) bytes of data.
ping 보내면 응답하지 않는다.
static route를 구성해야한다.
현재 상태는 이런 상태이다.
myrouter1은 초록색(172.16.223.0/24)를 가기 위해서는 next hop을 myrouter2(211.183.3.202)로 지정해야 한다.
myrouter2는 주황색(172.16.123.0/24)를 가기 위해서는 next hop을 myrouter1(211.183.3.207)로 지정해야 한다.
프로젝트 > 네트워크 > 라우터 > myrouter1/2 > 정적 경로 클릭 후 작성
이후 ping을 centos1/2에 들어가 ping을 다시 해보면 연결 된 것을 확인할 수 있다.
```bash
[centos@centos1 ~]$ ping 172.16.123.4 -c 3
PING 172.16.123.4 (172.16.123.4) 56(84) bytes of data.
64 bytes from 172.16.123.4: icmp_seq=1 ttl=62 time=7.14 ms
64 bytes from 172.16.123.4: icmp_seq=2 ttl=62 time=2.14 ms
64 bytes from 172.16.123.4: icmp_seq=3 ttl=62 time=2.71 ms
--- 172.16.123.4 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2008ms
rtt min/avg/max/mdev = 2.143/3.999/7.142/2.234 ms
```
```bash
[root@localhost 0916(logged)]# ssh -i ~/.ssh/chulsoo.pem -l centos 211.183.3.206
Last login: Fri Sep 16 01:50:04 2022 from 211.183.3.111
[centos@centos2 ~]$ ping 172.16.123.4 -c 3
PING 172.16.123.4 (172.16.123.4) 56(84) bytes of data.
64 bytes from 172.16.123.4: icmp_seq=1 ttl=62 time=3.06 ms
64 bytes from 172.16.123.4: icmp_seq=2 ttl=62 time=11.0 ms
64 bytes from 172.16.123.4: icmp_seq=3 ttl=62 time=1.35 ms
--- 172.16.123.4 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2007ms
rtt min/avg/max/mdev = 1.358/5.165/11.071/4.234 ms
```
Floating IP 연결 해제
프로젝트 > 네트워크 > LoadBalancers > create loadbalancer
- Backend는 .223.~와 이어져있는 상태. 여기서의 IP는 Backend쪽
앞쪽은 Floating IP로 공인IP와 지정 할 예정
- Foreground의 80번 포트에 들어오게 되면
- 부하 분산
부하 분산
1. LEAST_CONNECTIONS
- 각 서버로 접속한 사용자들의 세션을 확인하여 가장 접속이 적은 쪽으로 보냄
2. ROUND ROBIN
- 돌아가면서 한번씩 보냄
3. SOURCE IP
- 출발지의 IP를 확인한다
- 예를들어 출발지IP(1.1.1.1, 1.1.1.3, 1.1.1.8) / 서버1, 서버2가 있다고 가정했을 때 맨 마지막 비트가 1→ 0000 0001 , 3 → 0000 0011, 8 → 0000 1000 이다. 마지막 비트 1이면 서버2로, 0이면 서버1로
- 서버가 4대면 비트 두자리를 보고 확인한다. 서버1(00), 서버2(01), 서버3(10), 서버4(11)
- 단, 이 방법은 아무것도 가지 않는 서버가 생길 수 있고, 한 곳으로 몰릴 수도 있다.
주로 1,2번 방법을 많이 쓴다.
- 백엔드 선택 (CentOS1, CentOS2 선택)
weight 가중치를 주어 세션이 들어왔을 때 2:1로 하면 2개의 세션(위), 1개의 세션(아래) 이런식으로 보낼 수 있다.
- health monitor
해당 경로로 접속해서 정상 접속 되는 것을 확인하는데, GET으로 확인하고, 일정 시간 연결 안되면 죽었다고 판단
curl -X GET [http://localhost/로](http://localhost/로) 해서 열리는 거 확인한다는 것과 같음
Create Load Balancer 클릭
해당 로드밸런서에 FLoating IP를 설정한다.
- 해당 로드밸런서(FloatingIP)로 접속했을 때 Round Robin방식으로 1,2가 번갈아서 나오는 지 확인 할 수 있다.
- centos2의 index.html 파일을 삭제하고 기다린 후 1페이지만 보이는지 확인하기
```bash
[centos@centos2 ~]$ ls /var/www/html
index.html
[centos@centos2 ~]$ sudo rm -rf /var/www/html/index.html
```
- 확인하면 삭제된 centos2의 index 파일은 보이지 않고, centos1의 파일만 보이는 것을 확인할 수 있다.
- 이후 다시 centos2에 index파일을 생성하면 그 파일로 적용된다