
Auto Scaling 어떠한 서비스를 만약 서버A 하나로 구동한다고 가정해 보자. 트래픽이 서버 한개로는 감당할 수 없는 양이 되는 순간 서버가 다운되서 작동이 멈출것이다. 이러한 문제를 해결하기 위한 방법은 두가지가 있다. scale-up : 덩치가 커짐 : 서버 A의 CPU,GPU성능이 증가 RAM, Storge용량 증가 scale-out : 개수가 증가 : A라는 템플릿을 기반으로 A1, A2, A3로 늘어남 아마존 클라우드에서 Auto Scaling을 하면 스케일 아웃방식을 사용하는데 이 아키텍처의 가장 큰 장점 중 하나는 확장의 유연성에 있다. 스케일 아웃 방식으로 시스템을 구축한 상황에서는 서버를 필요한 만큼만 도입해 놓고, 장기적인 용량 증가 추이를 예측할 필요 없이 그때그때 필요한 만큼 ..

로드 밸런서(Load Balancer) 서버에 가해지는 트래픽을 여러대의 서버에게 균등하게 분산시켜주는 역할을 함 로드밸런서를 이용해 여러대의 서버를 하나로 묶으면 하나의 EndPoint 네임서버로 접속할 수 있다. web이라는 이름의 퍼블릭 인스턴스를 생성 보안그룹은 다음과 같다. apt -y update && apt -y install nginx systemctl enable --now nginx echo web server 1 > index.html 서비스가 잘 되면 인스턴스 중지후 이미지화를 한다. 이름과 설명을 입력하고 생성하면 된다. 생성이 완료되면 web-1인스턴스는 pub-sub1서브넷 할당 web-2인스턴스는 pub-sub2서브넷 할당 보안정책이나 나머지는 동일 구별을 위해 web-2인스..

VPC는 기존 환경에서 계속 사용한다. 프라이빗 서브넷 인스턴스를 접근하기 위해 기존에는 퍼블릭 인스턴스에 접근 후 내부IP를 통해 SSH방식으로 접근했다. 이런 프라이빗 서브넷 인스턴스는 아웃바운드가 없기 때문에 웹에서 패키지를 설치받거나 할 때 문제가 있음. PRIVATE SUBNET에 존재하는 인스턴스의 패키지 설치를 위해 NAT gateway를 설치 NAT게이트웨이를 위해선 탄력IP(고정) 가 필요 프라이빗 라우팅 테이블에 만들었던 nat를 연결 프라이빗 서브넷에 있는 서버가 탄력적 IP가 할당된 NAT를 통한다. NAT를 퍼블릭 서브넷에 생성했기 때문에 NAT를 통하면 외부로 접속이 가능하다. 프라이빗 서브넷의 라우팅 테이블은 VPC내부였기 때문에 탄력적IP를 추가해 주어야지 NAT접근 가능. ..

[AWS] VPC를 이용한 3-Tier 아키텍쳐 구성-1 (tistory.com) [AWS] VPC를 이용한 3-Tier 아키텍쳐 구성-1 Virtual Private Cloud(VPC) VPC는 자체 데이터 센터에서 운영하는 기존 네트워크와 아주 유사한 가상 네트워크입니다. VPC를 생성한 후 서브넷을 추가할 수 있습니다. 서브넷 서브넷은 VPC의 IP 주소 범위 moonchildcloud.tistory.com 이전 글에서 외부에서 public 서브넷 인스턴스에 접속하고 그 인스턴스에서 private 서브넷 인스턴스에 접속하는과정까지 완료했다. 이번에는 RDS를 이용하여 rds인스턴스에 mariadb데이터베이스를 구성하고 퍼블릭서브넷에 있는 인스턴스에는 tomcat을 설치해 DB와의 연동을 해보겠다. ..

Virtual Private Cloud(VPC) VPC는 자체 데이터 센터에서 운영하는 기존 네트워크와 아주 유사한 가상 네트워크입니다. VPC를 생성한 후 서브넷을 추가할 수 있습니다. 서브넷 서브넷은 VPC의 IP 주소 범위입니다. 서브넷은 단일 가용 영역에 상주해야 합니다. 서브넷을 추가한 후에는 VPC에 AWS 리소스 배포할 수 있습니다. IP 주소 지정 VPC와 서브넷에 IP 주소를 IPv4와 IPv6 모두 할당할 수 있습니다. 또한 퍼블릭 IPv4 및 IPv6 GUA 주소를 AWS로 가져오고 VPC의 리소스(예: EC2 인스턴스, NAT 게이트웨이, Network Load Balancer)에 할당할 수 있습니다. 라우팅 라우팅 테이블을 사용하여 서브넷 또는 게이트웨이의 네트워크 트래픽이 전달되..

▣ 서비스(Service) : 포드를 연결하고 외부에 노출 쿠버네티스는 디플로이먼트를 생성할 때 포드를 외부로 노출 하지 않으며, 디플로이먼트의 YAML 파일에는 단지 포드의 어플리케이션이 사용할 내부 포트만 정의한다. 이 포트를 외부로 노출해 사용자들이 접근하거나, 다른 디플로이먼트의 포드들이 내부적으로 접근하려면 서비스(Service)라고 부르는 별도의 쿠버네티스 오브젝트를 생성해야 한다. 서비스의 핵심 기능 여러 개의 포드에 쉽게 접근할 수 있도록 고유한 도메인 이름을 부여한다. 여러 개의 포드에 접근할 때 요청을 분산하는 로드 밸런서 기능을 수행한다. 클라우드 플랫폼의 로드 밸런서, 클러스터 노드의 포트 등을 통해 포드를 외부로 노출한다. 서비스(Service)의 종류 컨테이너(포드)의 호스트 이..

쿠버네티스 여러대의 도커 호스트를 하나의 클러스터로 만들어주는 점은 도커 스웜과 같지만, 세부적인 기능을 더 제공하고 있다. 쿠버네티스의 장점 서버 지원 클러스터링, 마이크로서비스 구조의 컨테이너 배포, 서비스 장애 복구 등 컨테 이너 기반의 서비스 운영에 필요한 대부분의 오케스트레이션 기능을 폭넓게 지원한다. 구글, 레드햇을 비롯한 많은 오픈소스 진영에서 쿠버네티스의 소스코드에 기여하고 있기 때문에 성능과 안정성 면에서 신뢰를 받고 있다. 실습환경은 다음과 같이 구성했다. centOS7 / k8s-master / NAT / 192.168.0.100 centOS7 / k8s-worker1 / NAT / 192.168.0.101 centOS7 / k8s-worker2 / NAT / 192.168.0.102..

맵을 먼저 만들어야 한다. [default] en conf t no ip domain lookup logg sy exec-timeout 0 exit [asa] show firewall conf t firewall transparent ->2계층 no firewall transparent ->3계층 sh int ip b (sh ip int b 아님) int g0/0 no sh nameif Inside desc ##Inside_Network ip add 200.1.1.254 255.255.255.0 security-level 100 ->기본셋팅이긴 함 exit int g0/1 no sh nameif Outside desc ##Outside_Network ip add 1.1.100.1 255.255.255.2..

●도커 스웜(swarm mode) 도커 스웜은 하나의 호스트 머신에서 도커 엔진을 구동하다가 여러대의 다른 서버를 클러스터로 만들어 자원을 병렬적으로 확장해 하나의 호스트로다른 서버에 있는 도커 컨테이너들을 제어할 수 있는 오픈소스 솔루션이다. 스웜 클래식은 여러 대의 도커 서버를 하나의 지점에서 사용하도록 단일 접근점을 제공한다면 스웜 모드는 클러스터링 기능에 초점을 맞추고 있다. 여러 개의 도커 서버를 하나의 클러스터로 구성하려면 각종 정보를 저장하고 동기화하는 분산 코디넹터, 클러스터 내의 서버를 관리하고 제어하는 매니저, 각 서버를 제어하는 에이전트를 별도로 실행해야 하지만 스웜 모드는 클러스터링을 위한 모든 도구가 도커 엔진 자체에 내장되어 있다. ●도커 스웜(swarm mode) 스웜 모드는 ..

이번에는 도커파일을 작성하고 이를 가지고 이미지를 빌드하고 컨테이너를 실행시키는 것을 해보겠다. ■ Dockerfile 작성 디렉토리를 생성하고, 그 안에 HTML 파일을 미리 만들어 둔다. cd / mkdir dockerfile && cd dockerfile echo test >> test.html 아파치 웹 서버가 설치된 이미지를 빌드하는 Dockerfile vi Dockerfile @@ FROM ubuntu:14.04 MAINTAINER moon682 LABEL "purpose"="practice" RUN apt-get update RUN apt-get install apache2 -y ADD test.html /var/www/html RUN ["/bin/bash", "-c", "echo hello..

docker run 은 Image 로 Container 를 생성하는 명령어이다. docker run -i (interactive) 컨테이너의 표준 입력(stdin)을 활성화. (주로 -it 함께 사용) -t (tty) tty(가상 터미널)을 할당. 리눅스에 키보드를 통해 표준 입력(stdin)을 전달할 수 있게한다. (주로 -it 함께 사용) --name 컨테이너 이름을 지정. -d (detach) 컨테이너를 백그라운드로 실행. -p (publish) 호스트와 컨테이너의 포트를 연결 (포트포워딩). -p : ex) -p 80:8888 - 호스트에 8888로 접속하면, 컨테이너 내부의 80포트로 자동 접속. -v (volume) 호스트와 컨테이너의 디렉토리 연결(마운트) -v : ex) -v /Users:..

Docker의 기본 단위가 Container(컨테이너)였다면 AWS의 기본 단위는 Instance(인스턴스)이다. Elastic IP(탄력적 IP)가 인스턴스에 연결되어있는 상태이다. @@54.180.216.150@@ gabia에서 @@moonchildthemaximum.store@@ 이란 도메인네임을 구매했다. (500원에) route53에서 이 이름으로 된 dns서버를 만들고 그리고 동그라미친 값을 gabia에 네임서버 1,2,3,4차에 차례대로 입력함. SecureCRT에 퍼블릭IP로 텔넷접속을 해준다. Step. 1 : yum update sudo su yum update amazon-linux-extras install php7.4 -y Step. 2 : php install yum instal..

# yum install -y yum-utils // yum-config-manager (yum 설정 정보와 저장소 관리자 설치) # yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # yum install -y docker-ce // Community Edition (무료) # systemctl start docker 아래의 명령어는 현재 사용 가능한 최신 버전의 도커 엔진을 설치한다. # wget get.docker.com // wget (web get) : 웹 상의 파일을 다운로드 받을 때 사용하는 명령어로 # docker info // 도커의 정상동작 확인 # docker pull centos..