목차
1. IaC
- IaC 정리
- SW 설치(Vagrant)
2. VirtualBox
- 설치 방법
- IP 설정(오류해결)
3. Ubuntu
- ISO파일 설치
4. 공유
- 테스트를 위한 설정
- cp 사용 공유
- 볼륨 공유
- 바인드 공유
5. 네트워크 드라이버
- bridge
- host
6. Object Storage
7. 문제풀이
Iac(Infrastructure as Code)
IaC 정리
- 수동 프로세스가 아닌 코드를 통해 인프라를 관리하고 프로비저닝하는 것
- HashiCorp가 1인자 이다
- Vargrant : 간소화된 VM 관리 서비스
- VMware, Virtual Box 등에서 수동으로 생성하던 것을 자동으로 생성이 가능하게 해줌
- Terraform : 플랫폼을 가리지 않음(배포 관리 도구)
- 배포 : (= 설치)
- Ansible : 구성 관리 도구
- RedHat에서 운영
SW 설치
- Vagrant : https://www.vagrantup.com/
Vagrant by HashiCorp
Vagrant enables users to create and configure lightweight, reproducible, and portable development environments.
www.vagrantup.com
- 해당 사이트에서 설치 진행
VirtualBox
설치 방법
- VirtualBox : https://www.virtualbox.org/wiki/Downloads
Downloads – Oracle VM VirtualBox
Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree to the terms and conditions of the respective license. If you're looking for the latest VirtualBox 6.0 packages, see Virt
www.virtualbox.org
- Windows 플랫폼이므로 Windows hosts 선택 후 설치 진행
- VirtualBox 설치 및 확장패키지도 설치하여야 한다
- VMware에서 쓰던 VMDK와는 다르게 VirtualBox에서는 VDI이다
- ctrl+alt를 사용하여 Host PC쪽으로 마우스를 내보내던 Vmware와 같은 것
- VMware Workstation에서의 설치방법과 다른 점이 없다
- VMDK로 지정하여 하드디스크 포맷만 맞춰 VMware에서 진행도 가능하다
- VMware Workstation은 큰 NAT 카드 하나에 가상머신이 붙는 구조
- 그래서 가상머신끼리도 통신이 되며 인터넷도 가능한 것
- Virtual Box의 NAT카드도 인터넷을 위한 카드지만,
- VirtualBox는 각각의 가상머신에 NAT카드가 붙어서 가상머신끼리 통신 X
- 통신 시키려면 내부네트워크 써야함
- 실제 PC와 통신하려면 호스트 전용 어댑터 사용이 필요
IP 설정
- VMware Workstation과 형식 똑같음
- Host-Only 카드는 DHCP로 받아와도 되고 수동 설정해도 상관 x
- NAT로만 네트워크 설정했을 때, IP를 받아오지 못하는 오류 해결을 위한 조치
- 변경 후, 각각의 카드이름을 확인하고 IP 세팅 진행
- 2개의 카드 모두 static으로 IP 설정하고 진행하였다
- Host-Only 카드도 외부에서 접속되므로 Xshell에서 Host-Only 카드의 IP를 부여하여 접속
Ubuntu
ISO파일 설치
https://mirror.kakao.com/ubuntu-releases/16.04/
Ubuntu 16.04.7 LTS (Xenial Xerus)
Select an image Ubuntu is distributed on two types of images described below. Desktop image The desktop image allows you to try Ubuntu without changing your computer at all, and at your option to install it permanently later. This type of image is what mos
mirror.kakao.com
- 해당 위치에서 ubuntu-16.04.7-server-amd64.iso 설치 진행
공유
- mysql의 DB 위치의 폴더를 로컬의 디렉터리랑 연결하여 DB 백업하기가 좋다
- 여러 설정파일을 공유하기도 좋음(노가다가 필요 x)
테스트를 위한 설정
- 컨테이너에서는 단 하나의 프로세서만 사용할 수 있기 때문에 오류가 나는 것을 확인
- 결국에는 pull을 통해 이미지를 당겨와 생성하는 수 밖에 없다
- 루트 디렉터리에 test.txt 생성
CP사용 공유
- 컨테이너 내부로 진입하여 확인도 가능하나 이 방법을 추천
볼륨 공유
- 컨테이너를 생성하면서 공유
- 카피는 컨테이너 실행 후 공유하는 것이므로 다른 것을 알자!
- 볼륨이 저장되는 경로는 /var/lib/docker/volumes 이다
- Docker에서는 이 방식을 추천한다
- v 옵션을 통해 생성한 볼륨으로 지정
- 컨테이너에는 디렉터리 없어도 저절로 생성이 된다
- babo라는 볼륨을 컨테이너의 babo 디렉터리에 마운트한다는 내용
- babo.txt를 cp를 통해 c3의 babo 디렉터리로 복사
- 볼륨 공유가 설정된 컨테이너 삭제 후, 볼륨 삭제가 가능하다
바인드 공유
- 볼륨 공유 사용법과 동일하나 반드시 절대경로로 지정해야 한다
- 절대경로로 설정하지 않게되면, 볼륨이 저장되는 위치에 생성이 된다
- 임의의 디렉터리를 도커 컨테이너와 공유할 수 있다
- 절대경로로 꼭 작성해줘야 한다
- 생성한 txt 파일이 컨테이너 내부에서도 생성이 된 것을 확인
네트워크 드라이버
Bridge
- c1은 기본 네트워크, c2는 test1, c3는 test2를 사용하게 설정하여 컨테이너 생성
Host
- 아이피도 없고 아무것도 안보임
- 호스트 피시 아이피와 동일 아이피 사용
- 그래서 1대밖에 못씀(여러개 사용 X)
Object Storage
- 네이버 클라우드 플랫폼 서비스
- Rest API 지원(개체별로 URL을 부여하여 사용이 가능)
- 버킷 이름 지정
문제풀이
- n1, n2, n3, n4 생성
- 처음에는 포트포워딩까지 설정해야하는 줄 알았으나 proxy가 알아서 찾아
들어가기 때문에 굳이 필요없다는 것을 알게 되었다
- 내부 웹 서버의 IP를 알려줄 이유가 없다(보안상 매우 좋지 않다)
- 프록시 주소만 까고 나머지는 비밀로!
- HaProxy를 통해 로드밸런싱이 잘 이루어지고 있는 것을 확인할 수 있다