현재 워드프레스 6.1.1에서 지원하는 안정적인 최신버전은 php 7.4이다.

(php 8.x 는 beta support 중이라.. 바로 쓰기는 불안하다)

 

이에 기존 php 7.2 버전을 php7.4로 업그레이드 하는 작업을 했다.

(운영체제 : CentOS 7)

 

1. 기존 PHP 삭제 

- 현재 설치된 php 리스트 확인

yum list installed | grep php

- php 삭제

yum remove php-*
위 명령어로 삭제가 안될때, 
yum remove --setopt=clean_requirements_on_remove=1 php php-common php-cli php-devel php-fpm php-gd php-json php-ldap php-mbstring php-mysqlnd php-odbc php-pdo php-imagick php-snmp php-soap php-xml php-xmlrpc php-opcache

 

2. EPEL 설치

 - EPEL(Extra Packages for Enterprise Linux) 각종 패키지의 최신 버전을 제공하는 저장소

yum install epel-release yum-utils -y

 

3. 기존 php7.2 remi 저장소 비활성화

yum-config-manager --disable remi-php72

 

4. php7.4 저장소 활성화

yum-config-manager --enable remi-php74

 

5. yum install 로 php7.4 버전 및 모듈들 설치

yum install php php-common php-cli php-devel php-fpm php-gd php-json php-ldap php-mbstring php-mysqlnd php-odbc php-pdo php-imagick php-snmp php-soap php-xml php-xmlrpc php-opcache -y

 

6. 설치된 php 버전 확인

php -v

 

7. php.ini 수정

기존 설정이 있다면, 그대로 변경해줌

 

8. 아파치 재시작

systemctl restart httpd

9. 사이트 정상 동작하는지 확인

 

참고

https://www.ezeelogin.com/kb/article/how-to-upgrade-php-to-7-4-on-centos-7-393.html

https://sailer.tistory.com/entry/Cent-OS-7-PHP-%EB%B2%84%EC%A0%84-%EC%98%AC%EB%A6%AC%EA%B8%B054-74

Docker compose(도커 컴포즈)란?

복수 개의 컨테이너를 실행시키는 도커 애플리케이션을 정의하기 위한 툴이다.

 

도커 컴포즈를 이용해, DB와 Wordpress 두개의 컨테이너를 만들어 실행해서 워드프레스를 설치해보도록 하겠다.

시작 전에 도커 컴포즈가 설치되어 있어야 한다. https://docs.docker.com/compose/install/

 

프로젝트 정의

1. 빈 프로젝트 디렉토리를 생성한다.

디렉토리 명은 편한것으로 만들면 된다. 이 디렉토리 안에 docker-compose.yml 파일을 저장할 것이다.

 

2. 방금 만든 디렉토리 안으로 이동한다.

예를 들어, my_wordpress라는 폴더를 만들었다면 아래 명령으로 해당 디렉토리 안으로 이동 가능하다 :

$ cd my_wordpress/

 

3. 아래의 내용으로 docker-compose.yml 파일을 생성한다. (워드프레스 블로그와, 볼륨 마운드를 한 별도의 MySQL 인스턴스를 생성할 수 있는 스크립트이다.)

services:
  db:
    # We use a mariadb image which supports both amd64 & arm64 architecture
    image: mariadb:10.6.4-focal
    # If you really want to use MySQL, uncomment the following line
    #image: mysql:8.0.27
    command: '--default-authentication-plugin=mysql_native_password'
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=somewordpress
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wordpress
    expose:
      - 3306
      - 33060
  wordpress:
    image: wordpress:latest
    ports:
      - 80:80
    restart: always
    environment:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wordpress
      - WORDPRESS_DB_NAME=wordpress
volumes:
  db_data:

 

프로젝트 빌드

프로젝트 디렉토리 안에서 아래 명령을 실행한다.

$ docker compose up -d

위 명령은 docker compose up 을 detached mode로 실행하고, 도커 이미지를 가져오고, 워드프레스와 데이터베이스 컨테이너를 시작한다. 

브라우저에서 워드프레스 접속 및 설치

이제, 워드프레스가 도커 호스트의 80 포트에서 동작한다. 브라우저로 접속해보면, 설지 시작 화면을 볼 수 있다.

도커가 로컬호스트에 설치되어 있다면, 브라우저 주소창에 http://localhost  를 입력하면 접속 가능하다.

원격 서버에 설치되어 있다면, localhost 대신 서버의 ip 주소나, 도메인명을 입력하면 된다.

종료 및 삭제

컨테이너와 기본 네트워크를 종료하지만 워드프레스 데이터베이스를 남기고 싶다면 docker compose down 명령을 입력한다.

컨테이너, 기본 네트워크, 데이터베이스까지 모두 삭제하고 싶다면 docker compose down --volumes 명령을 입력한다.

 

참고

https://docs.docker.com/samples/wordpress/

 

문제상황

EC2 서버에 접속시, 인스턴스를 시작시 생성한 key pair 이용한다.

이 때 해당 key로 ssh 접속은 잘 되는데, putty로 접속하려고 하면 'server refused our key' 라는 메시지가 뜨면서 접속이 안된다.

(기본적인 연결 설정은 모두 다 했다. PuTTYgen을 이용하여 프라이빗 키 .pem을 ppk로 변경하고 키 파일경로 설정, 올바른 username 입력 등. 방법은 다음 링크 참고 : https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/putty.html)

 

그래도 연결이 안되고, 서버쪽 로그를 살펴보면 아래와 같은 로그가 남아있다.

userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
sshd[15855]: error: Received disconnect from xxx.xxx.xxxx port 51001:14: No supported authentication methods available [preauth]

 

해결방법

ssd_config를 수정 후, sshd를 재실행 해주니 putty 접속이 된다.

 

1. /etc/ssh/sshd_config를 아래와 같이 수정해준다.

# /etc/ssh/sshd_config
PubkeyAuthentication yes # 주석을 풀어, PubKeyAuthentication을 허용해준다.
PubkeyAcceptedKeyTypes=+ssh-rsa	# 이 내용을 추가해준다.

 

2. sshd를 재실행 한다. (ubuntu 에서의 명령어)

$ sudo systemctl restart sshd

 

3. putty로 다시 접속 해본다.

문제상황

리눅스에서 docker login을 하려고 하는데, 아래와 같은 메시지가 뜨면서 로그인이 안되는 경우가 있다.

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/auth": dial unix /var/run/docker.sock: connect: permission denied

 

해결방법

/var/run/docker.sock에 접근할 권한이 없어서 그렇다. sudo 명령어 사용해서 로그인 하면, 에러 없이 잘 된다.

# sudo docker login

# Username: 아이디 입력

# Password : 비밀번호 입력

로그인 된다.

AWS EC2 서버에 설치된 도커에, MariaDB를 설치해보도록 하겠다.

 

1. DB 이미지를 받아온다 (docker pull)

docker pull [이미지명:태그]

 

아래는 최신버전의 mariadb 이미지를 받아오는 명령이다.

# sudo docker pull mariadb

특정 버전을 받고 싶다면, [:버전태그] 를 추가해준다.

사용 가능한 버전은 https://hub.docker.com/ 여기서 확인 가능하다.

# sudo docker pull mariadb:10.8

 

2. DB 이미지를 컨테이너로 실행한다. (docker run)

docker run --name [컨테이너 이름] -e [환경변수=값] -d -p [포트:포트] -v [호스트 디렉토리:컨테이터 디렉토리] [이미지명:버전태그]

 

아래는 mariadb-container라는 컨테이너 이름으로 mariadb:latest 이미지를 실행하는 예이다.

# sudo docker run --name mariadb-container -e MYSQL_ROOT_PASSWORD=wordpress -d -p 3306:3306 -v /home/username/volume/mysql:/var/lib/mysql mariadb:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
※ 옵션 설명
--name
: 생성할 컨테이너 이름
-e : 환경변수 (password) 설정
-d : Dispatch mode (백그라운드에서 실행)
-p : 포트 연결 (외부포트: Docker 내부포트)
mariadb:latest : 컨테이너로 실행할 이미지 이름 
-v : 디렉토리 마운트. 호스트 디렉토리를 컨테이너의 디렉토리로 마운트
▶ docker에 DB를 설치하는 경우, 컨테이너를 삭제하면 데이터도 함께 날아가므로, 저장소는 꼭 외부 저장소(호스트 디렉토리)를 마운트하여 사용해야 한다
▶ 호스트 디렉토리는 EC2 서버에 존재하는 디렉토리이다. (원하는 경로를 마운트 해주면 된다.)
▶컨테이너 디렉토리 경로로 지정한 /var/lib/mysql 는 일반적으로 mysql 데이터파일이 저장되는 경로이다.
▶즉, 도커에 설치된 DB는 /var/lib/mysql 폴더에 데이터를 저장하는데, 이 폴더가 호스트 디렉토리에 마운트 되어 있으므로 실제 데이터가 호스트 디렉토리에 저장이 되게 됨. 따라서 컨테이너를 삭제 해도 호스트 디렉토리에 DB 데이터가 남아있을 수 있게 된다.
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci : 한글이 깨지지 않도록 설정하기 위한 인자값

 

3. 컨테이너에 접속하기 (docker exec)

docker exec -it [컨테이너명] bash

 

실행중인 mariadb-container에 접속하여, bash shell에서 커맨드를 실행할 수 있다.

#sudo docker exec -it mariadb-container bash
※ 옵션 설명
-it : -i interactive 옵션과 -t Pseudo-tty 옵션을 함께 준 것으로, bash shell에서 입/출력을 가능하게 해주는 옵션이다.

 

4. MysqlWorkbench로 DB 접속해보기

- hostname엔 도커가 실행되는 서버의 IP를 입력한다. (workbench와 같은 컴퓨터에서 실행되면 127.0.0.1로 그냥 두고, 다른 서버에서 실행중이라면 다른 서버의 공인 IP를 입력)

- Store in Vault ... 를 클릭해서 비밀번호 넣어주고

- Test Connection 해보면 정상 연결이 된다. [OK] 누르면 접속 됨

 

 

참고

http://jmlim.github.io/docker/2019/07/30/docker-mysql-setup/

문제상황

웹브라우저에서 AWS 관리 콘솔로 EC2에 연결하려고 할 때, 아래와 같은 메시지가 뜨며 연결이 안되는 경우가 있다.

원인

브라우저 기반 SSH 연결은 EC2 Instance Connect 서비스를 통해 사용자의 인스턴스를 리다이렉션하여 접속하게 된다고 한다.

따라서 내 PC의 IP 주소가 아닌, EC2 인스턴스가 위치하는 리전의 AWS IP 주소를 해당 EC2 인스턴스의 Security Group에 할당해 주어야 한다.

  • 한국 리전에서 사용하는 AWS IP : 13.209.1.56/29

해결방법

1. EC2 서비스 클릭 > 좌측 [네트워크 및 보안] 메뉴 하위의 [보안 그룹] 클릭 하여 보안그룹 메뉴로 이동

 

2. 접속하려는 EC2 인스턴스에 적용되는 보안그룹에 체크 > [인바운드 규칙] 클릭 > [인바운드 규칙 편집] 클릭

 

3. [규칙 추가] 클릭

4. 아래와 같이 인바운드 규칙 추가 후 [규칙 저장] 클릭

5. 다시 [연결] 클릭해서, 인스턴스에 연결해봄

6. 아래와 같이 연결됨

참고

https://support.skdt.co.kr/ko/support/solutions/articles/42000093546--ec2-aws-%EA%B4%80%EB%A6%AC-%EC%BD%98%EC%86%94-%EC%9B%B9%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80-%EC%97%90%EC%84%9C-ec2%EC%97%90-%EC%97%B0%EA%B2%B0%ED%95%A0-%EC%88%98-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4-

도커란?

컨테이너 기반의 오픈소스 가상화 플랫폼이다. 어플리케이션을 인프라스트럭처와 분리하여 신속하게 개발, 배포, 운영할 수 있게 해준다.  Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있다. Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있다.

 

가상화란, 물리적 자원인 하드웨어를 효율적으로 활용하기 위해서 하드웨어 공간 위에 가상의 머신을 만드는 기술이고

컨테이너란, 컨테이너가 실행되고 있는 호스트 os의 기능을 그대로 사용하면서 프로세스를 격리해 독립된 환경을 만드는 기술이다.

 

도커를 사용하는 이유

  • 개발 과정에서 다른 라이브러리와 충돌하는 것을 방지하기 위해 격리된 환경이 필요할 때(컨테이너 별로 상이한 설정이 가능, 서로 간섭 안받음)
  • 개발 환경과 운영 환경의 동일성이 보장됨(실행환경의 비일관성 문제가 해결됨)
  • 완성된 서비스를 배포할 때, 또는 배포 중인 서비스를 받아서 실행해 볼 때 용이함(이미지만 가져다 컨테이너에 올리면 됨)
  • 운영중인 서버를 다른 서버로 옮겨야 할 때(서버 스펙이 달라져도 동일한 실행을 보장)
  • 다수의 서버를 운영해야 할 때 (클라우드 서버를 이용하거나, 로드 분산을 위해 동일한 서비스를 여러 서버에 배포해야 하는 등의 경우, 다수 서버를 각각 설정할 필요 없으므로 배포 및 관리가 쉬워짐)

 

도커 아키텍처

도커는 클라이언트-서버 아키텍처를 사용한다. 도커 데몬은 컨테이너를 빌드, 실행, 배포하는 역할을 담당하고, 도커 클라이언트는 이러한 도커 데몬과 REST API로 통신한다. 도커 클라이언트와 데몬은 한 컴퓨터 내에서 실행될 수도 있고, 별개의 컴퓨터에서 실행될 수도 있다.

도커 데몬 (The Docker daemon)

도커 데몬은, 도커 API 요청을 받아 도커 객체(이미지, 컨테이너, 네트워크 볼륨 등)을 관리하는 역할을 한다.

 

도커 클라이언트 (The Docker client)

도커 클라이언트는, 사용자가 도커와 상호작용 하는 주요 수단이다. 사용자가 docker run 같은 명령어를 사용하면, 도커 클라이언트가 해당 명령을 데몬에 보내고, 데몬이 명령을 수행한다. 도커 클라이언트는 하나 이상의 데몬과 통신할 수 있다.

 

도커 데스크탑 (Docker Desktop)

도커 데스크탑은 컨테이너화된 애플리케이션과 마이크로서비스를 구축하고 공유할 수 있는 Mac, Windows 또는 Linux 환경을 위한 설치하기 쉬운 애플리케이션이다. 도커 데스크탑에는 도커 데몬(dockerd), 도커 클라이언트(docker), Docker Compose, Docker Content Trust, Kubernetes 및 Credential Helper가 포함된다.

 

도커 레지스트리 (Docker registries)

도커 레지스트리는 도커 이미지를 저장한다. 도커 허브(Docker Hub)는 공개된 레지스트리(저장소)로, 누구나 이용 가능하다.  도커는 기본적으로 도커 허브에서 이미지를 찾도록 설정되어 있으나, 자신만의 비공개 레지스트리를 운영하는 것도 가능하다.

 

도커 객체

Docker를 사용하면 이미지, 컨테이너, 네트워크, 볼륨, 플러그인 및 기타 개체를 만들고 사용하게 된다. 이러한 개체 중 일부에 대한 간략한 개요를 살펴보면 다음과 같다.

 

이미지

이미지는 읽기 전용 템플릿으로, 도커 컨테이너를 생성하는 명령어들이 포함되어 있다. 주로 이미지는, 다른 이미지를 기반으로 생성해서 약간의 커스터마이징을 하게 된다. 예를 들어, 사용자는 ubuntu 이미지를 기반으로 이미지를 빌드하여 아파치 웹 서버나 다른 어플리케이션을 설치 및 설정 할 수 있다.

 

이미지는 직접 생성하거나, 공개된 레지스트리에 등록된 이미지를 가져다 사용할 수도 있다. 자신만의 이미지를 생성하려면, 이미지 생성하는 명령과 스텝을 기술한 Dockerfile을 작성하고 실행하면 된다. Dockerfile의 각 명령은 이미지 안의 하나의 레이어를 생성한다. Dockerfile을 변경하고 이미지를 다시 빌드하면, 변경된 레이어만 다시 빌드된다. 이점이 이미지를 가볍고, 작고, 빠르게 만들 수 있는 기술이다.

 

컨테이너

컨테이너는 이미지의 실행 가능한 인스턴스이다. 사용자는 Docker API나 CLI를 이용해 컨테이너를 생성, 시작, 중지, 이동, 삭제할 수 있다. 컨테이너를 하나 이상의 네트워크에 연결하거나, 스토리지를 연결하거나, 현재 상태를 기반으로 새 이미지를 생성할 수도 있다.

 

기본적으로 컨테이너는 다른 컨테이너 및 해당 호스트 시스템과 비교적 잘 격리되어 있다. 컨테이너의 네트워크, 스토리지 또는 기타 기본 하위 시스템이 다른 컨테이너나 호스트 시스템과 얼마나 격리되었는지 제어할 수 있다.

컨테이너는 이미지 + 환경설정 옵션(컨테이너를 만들거나 시작할때 설정 옵션 추가 가능)으로 정의된다. 컨테이너가 제거되면 영구 저장소에 저장되지 않은 상태 변경 사항은 사라진다.

 

 

참고

https://docs.docker.com/get-started/overview/

https://en.wikipedia.org/wiki/Docker_(software) 

https://velog.io/@markany/%EB%8F%84%EC%BB%A4%EC%97%90-%EB%8C%80%ED%95%9C-%EC%96%B4%EB%96%A4-%EA%B2%83-1.-%EB%8F%84%EC%BB%A4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

데브옵스에서 사용되는 툴들 모음 & 간략한 요약

Jira (지라)

Atlassian 사에서 개발한 이슈 추적 제품이며 버그 추적, 이슈 추적, 프로젝트 관리 기능을 제공하는 소프트웨어이다.

https://en.wikipedia.org/wiki/Jira_(software) 

Git (깃)

분산형 버전 관리 시스템(Version Control System)이다. 소스코드를 효과적으로 관리할 수 있게 해주는 무료, 공개 소프트웨어이다.

https://git-scm.com/book/ko/v2

GitHub (깃허브)

깃허브(Github)는 분산 버전 관리 툴인 깃(Git)를 사용하는 프로젝트를 지원하는 웹호스팅 서비스이다

https://ko.wikipedia.org/wiki/%EA%B9%83%ED%97%88%EB%B8%8C

Docker (도커)

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있다. Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있다.

https://aws.amazon.com/ko/docker/

https://en.wikipedia.org/wiki/Docker_(software) 

https://khj93.tistory.com/entry/Docker-Docker-%EA%B0%9C%EB%85%90https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

Ansible (앤서블)

앤서블이란, IaC(Infrastructure as a Code)를 가능하게 해주는 소프트웨어 툴의 집합이다. 소프트웨어 프로비저닝, 설정 관리, 배포 기능을 포함하는 파이썬 기반의 오픈소스이다. Ansible의 주요 목적은 IT 장비 관리를 자동화하는 것이다.

https://en.wikipedia.org/wiki/Ansible_(software)

Chef (셰프)

Ruby와 Erlang으로 작성된 구성관리 도구이다. 회사의 서버의 구성 및 유지보수 작업을 간소화하며, 인터냅, 아마존 EC2, 구글 클라우드 플랫폼, 오픈스택, 소프트레이어, 마이크로소프트 애저, 랙스페이스와 같은 클라우드 기반 플랫폼들과 통합하여 자동으로 새로운 머신을 프로비저닝하고 구성할 수 있다.

https://ko.wikipedia.org/wiki/%EC%85%B0%ED%94%84_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)

https://en.wikipedia.org/wiki/Progress_Chef

Puppet (퍼펫)

ruby로 만들어진 시스템 관리 자동화 툴이다. 주로 설정, 관리, 배포, orchestrate와 같은 일을 하기 위해 사용된다. 다수의 서버플랫폼을 코딩을 통해 관리하는 Infrastructure as a code 서비스를 제공하는 구성 관리 도구 (configuration management tool)이다. 

https://en.wikipedia.org/wiki/Puppet_(software) 

https://barram.tistory.com/m/23

Gradle (그래들)

Groovy를 이용한 빌드 자동화 시스템이다.  컴파일, 패키징, 테스팅, 디플로이, 퍼블리싱 과정을 관리한다. Ant Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구이다.  안드로이드 스튜디오의 공식 빌드 도구이기도 하다.

https://en.wikipedia.org/wiki/Gradle

https://github.com/gradle/gradle

https://madplay.github.io/post/what-is-gradle

https://kotlinworld.com/311

Maven (메이븐)

자바 프로젝트를 겨냥한 빌드 자동화 툴이다. Apache Ant의 대안으로 만들어졌다. 프로젝트 객체모델(Project Object Model: POM) 이라는 개념을 바탕으로  프로젝트의 의존성관리, 라이브러리관리, 프로젝트 라이프사이클 관리 기능등을 제공하는 프로젝트 관리도구이다. 

https://en.wikipedia.org/wiki/Apache_Maven

https://cheershennah.tistory.com/151

Jenkins (젠킨스)

오픈 소스 자동화 서버이다. 소프트웨어 배포와 관련된 작업들(빌드, 테스트, 배포)를 자동화하여 지속적 통합(Continuous Integration, CI)과 지속적 배포(Continuous Delivery, CD)를 도와준다. 소스 버전 관리 툴과 연동하여 코드 변경을 감지하고, 자동화 테스트를 포함한 빌드를 수행하여 소프트웨어 품질을 향상시킬 수 있다.

https://en.wikipedia.org/wiki/Jenkins_(software) 

https://narup.tistory.com/179

https://www.itworld.co.kr/news/107527

Kubernetes (쿠버네티스)

쿠버네티스란 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈 소스 시스템이다. (컨테이너 오케스트레이션 소프트웨어)

https://en.wikipedia.org/wiki/Kubernetes

https://tech.ktcloud.com/67

OpenShift (오픈시프트)

컨테이너 기반 소프트웨어의 디플로이 및 관리를 위한 레드햇의 컴퓨터 소프트웨어 제품이다. 구체적으로 말해, 가속화된 애플리케이션 개발을 위해 도커 컨테이너와 데브옵스 도구를 사용하는 쿠버네티스의 지원 배포판이라 할 수 있다. (컨테이너 오케스트레이션 소프트웨어)

https://en.wikipedia.org/wiki/OpenShift

https://ko.wikipedia.org/wiki/%EC%98%A4%ED%94%88%EC%8B%9C%ED%94%84%ED%8A%B8

https://www.redhat.com/ko/topics/containers/red-hat-openshift-kubernetes

OpenStack (오픈스택)

풀링된 가상 리소스를 사용하여 프라이빗  퍼블릭 클라우드를 구축하고 관리하는 오픈소스 플랫폼이다. Infrastructure-as-a-service(IaaS) 형태로 제공된다.

https://en.wikipedia.org/wiki/OpenStack

https://www.redhat.com/ko/openstack-35971

 

'개발 > 방법론,디자인패턴' 카테고리의 다른 글

[DevOps] 데브옵스란?  (0) 2022.08.23

+ Recent posts