Cloud
???
DC들을 묶어서 zone
zone들을 묶어서 Region(서울)
DC는 무슨 일이 있어도 전원이 꺼지거나 데이터가 날라가는 일이 있어서는 안된다.
그래서 DC 내부에 자가발전을 시키고 하나의 서버를 여러명의 사람들이 공유해서 사용한다.
aws 계정
- 토니한 -> 관리자계정 -> 모든 작업을 혼자서 실행
- ABC 회사가 있음 프로젝트 2개 따옴 -> 관리자 계정(PM, TA) ->
관리자는 각 개발 프로젝트 별로 개발자 계정을 만들어주고 각 개발자가 aws 내에서 사용할 수 있는 서비스에 대한 제한을 정책으로 부여한다. 이 정책들의 묶음은 Role(역활)로 지정한다.
DEV role -> 개발자1, 개발자2 -> IAM 사용자로 로그인 : 계정 ID 12자리 + 암호
- ec2
- RDS
- lambda
- S3 사용가능
AWS는 개인이와서 사용할수도 있고 사용자가 와서 관리할 수 있다. 그래서 이러한 계정이 사용할 수 있는 영역을 보고 테넌트(프로젝트)라고 부르고 이런게 많이 뭉처 있어서 멀티 테넌시라고 부름.
브랜든의 블로그 :: 테넌트(tenant), 리전(region), 가용 영역(Availability Zone) (tistory.com)
테넌트(tenant), 리전(region), 가용 영역(Availability Zone)
관련포스팅 - 2020/01/28 - [인프라/클라우드] - 클라우드 컴퓨팅과 API의 역할 2.1 클라우드 환경의 전체 그림 2.1.1 ) 테넌트 (tenant) - 사전적 의미로 세입자를 의미하며, 클라우드 서비스 이용자가
brenden.tistory.com
그래서 우리가 서버 100대(인스턴스)를 aws에 만들고
우리회사가 자체적으로 DC를 보유하고 있으며 DC내에 물리서버 100대가 있다(on premise - 온프레미스)
우리 회사에 서버 100대가 있을때 동일한 명령어를 넘겨주어야 하는 경우가 존재한다. 하지만 서버가 모두 web server 인건 아니다. 그래서 쓰는게 Ansible 이고 관리하기 위한 데이터를 가지고 있는 것이 inventory file이다.
하지만 여기에 적힌 것들이 모두 같은 존에 없을 수 있다. 그래서 이걸 또 나눈다.
inventory file
가상화 환경을 생성하는 것은 하이버파이저를 통해 가능하다. 하지만 가상 네트워크 환경과 가상머신 등을 모두 생성하고 이를 연결할 뒤, 외부에 서비스까지 한다면 오랜 시간이 걸릴 수 있다.
불편한 점 : 네트워크 환경과의 연결 --> 시간문제, 재사용 불가
극복 -> Vagrant를 이용하면 코드를 이용하여 재사용이 가능한 가상화 // 클라우드 환경을 구축할 수 있다.
```
yum -y install qemu-kvm libvirt virt-install virt-manager virt-viewer guestfish
systemctl restart libvirtd
systemctl enable libvirtd
```
- 클라우드 이미지 사용하는 방법
1) openstack cloud image 사용하는 방법
2) KVM을 이용하여 생성한 가상머신을 이미지화 하는 방법(안정적이지는 않다)
3) 퍼블릭 클라우드
- aws등에서 기본적으로 제공하는 이미지(aws ami)
- aws에서 제공하는 기본이미지로 설치한 인스턴스를 이미지화 할 수 있다.(개인용 이미지)
-> (활용1)개인용 이미지를 이용하여 다수의 인스턴스를 생성할 경우 미리 설치되어 있는 OS, App, 개발도구 등을 기존 서버와 동일하게 사용할 수 있다.
-> (활용2) Auto-Scale과 연계하여 필요할 때 이미지를 인스턴스로 생성하여 제공한다. 필요할때마다 서버를 늘리고 줄일 수 있다.
```
virt-customize -a CentOS7.qcow2 --root-password password:test123 --mkdir /root/testdir
```
가상화를 하면 virbr0이라는 것이 생긴다. 이건 가상화된 네트워크이다.
#!/bin/bash
vmname=''
vmcpu=''
vmram=''
vmcount=''
read vmname
read vmcount
read vmcpu
read vmram
echo
if [ $vmcount = 1 ]
then
cp CentOS7.qcow2 ${vmname}.qcow2
while [ $! ]
do
sleep 10
virt-install --name $vmname --vcpus $vmcpu --ram $vmram --network network:default
--disk ${vmname}.qcow2 --import --os-type linux --os-variant rhel7
--noautoconsole > /dev/null/
sleep 3
echo "설치가 완료되었습니다"
done
else
for (( i=1 ; i<=$vmcount ; i++ ))
do
cp CentOS7.qcow2 ${vmname}-${i}.qcow2
while [ $! ]
do
sleep 10
virt-install --name $vmname-${i} --vcpus $vmcpu --ram $vmram --network network:default
--disk ${vmname}-${i}.qcow2 --import --os-type linux --os-variant rhel7
--noautoconsole > /dev/null/
sleep 3
echo "설치가 완료되었습니다"
done
done
fi
echo "아래와 같이 생성되었습니다"
virsh list --all | grep $vmname
만든다음에 우리의 키를 가상화 컴퓨터에게 전달해준다음 for문으로 명령을 전달해주어서 실행시키자.
virsh domifaddr TEST-1
하면 ip가 보인다.
virsh domifaddr TEST-1 | grep -v NAME | gawk '{print $4}' | gawk -F/ '{print $1}'
하면 NAME이 붙은 라인을 없어짐
-F/는 `/`를 기준으로 데이터 구분
현재 생성된 가상머신들의 모든 IP 주소를 위의 방법을 활용하여 하나의 파일에 정의하세요
네트워크
실무에서는 가능한 port 번호를 통일해서 진행합니다.
가장 상단에는 비싸고 좋은장비를 붙이고 그 뒤에는 싼 장비들을 붙여서 동일한 포트를 설정해주고 tree구조로 만든다.
그리고 각 장비별로 IP 번호를 다르게 할당해서 제공해준다.
= 스위치 access port
switchport mode access
= 스위치 trunk port
switchport mode trunk
= trunk port 확인 -> 이 방식으로 어디 포트가 trunk되어 있는지 확인 가능해진다.
show interface trunk
VLAN 10, 20번 만들어야 하는데
int f0/1 - valn10
int range f0/23-24 -> trunc로 만들기
vlan 10
vlan 20
!
int f0/1
switchport mode access
switchport access vlan 10
!
int f0/2
switchport mode access
switchport access vlan 20
!
int range f0/23-24
switchport mode trunc
do show
VLAN 에서의 통신은 VLAN 번호가 중요하고
스위치는 MAC 주소보기전에 VLAN이 같은지를 확인해야한다.
= Dynamic Trunking Protocol(Cisco 전용 프로토콜)
Trunk port를 스위치끼리 자동으로 협상을 해서 Trunk 작동을 할지 Access 작동을 할지를 판단하고 port의 mode를 자동으로 변환시켜주는 protocol
= port mode 총 4가지
access mode
trunk mode
dynamic => auto mode, desirable mode
trunk 신호가 오면 dynamic은 trunk port로 변경을 시킴
access mode -> ethernet
trunk mode -> 802.1q
access - access
trunk - trunk
access - dynamic => 무조건 ethernet
trunk - dynamic => 무조건 trunk
'Development(Web, Server, Cloud) > 22) LINUX - Cloud' 카테고리의 다른 글
Cloud 24일차 (0) | 2022.02.07 |
---|---|
Cloud 23일차 (0) | 2022.02.03 |
Cloud 21일차 (0) | 2022.01.27 |
Cloud 20 (0) | 2022.01.26 |
Cloud19 (0) | 2022.01.25 |