필요한 만큼, 인터넷만 있으면 사용 가능하고, 사용한만큼 지불하는 대용량 서비스를 말한다.
클라우드 스토리지 : 우리가 익숙한 네이버 마이박스, 구글 들아비 등
퍼블릭 : 공유 - 서비스하는 입장
프라이빗 : 우리만 사용 - 오픈셋같은 클라우드 플랫폼 소프트웨어도 필요
온프레미스 : 모든 장비도 갖고 있는 예전 유형
하이브리드 : 프라이빗 + 퍼블릭 다 접목해서 사용할 수 있는 유형
-> 목적에 따라 유형을 선택해서 사용
Saas : 소프트웨어 또는 애플리케이션의 기능만 제공 -> 모든 것을 제공받는 것
PaaS : 주로 개발 환경과 관련한 서비스를 제공한다.(OS, DB, WAS, JDK)-> 공통은 빌려오고, 그 외만 설계
IaaS : 리소스를 서비스 형태로 제공/인프라, 라우터 구축 -> 재료만 이용하는 것
클라우드 컴퓨팅?
하나의 컴퓨터에 가상머신을 쌓아 OS 별 앱을 실행했지만 OS까지 올려지며 과부하되는 한계!
따라서 컨테이너 어떤 요소가 제공되는지 따라 서비스 방식 달라짐 에 따른 가상의 컴퓨팅화를 통해 더 큰 서비스를 더 적은 인력, 자원으로 이용할 수 있음.
아마존 닷컴에서 개발한 클라우드 컴퓨팅 플랫폼
네트워킹 기반 가상 컴퓨터, 스토리지, 네트워크 인프라 등 다ㅑㅇ한 서비슬르 제공하고 있어 필요한 서비스로 조합하여 사용 가능하다.
장점 ? 저렴한 비용, 속도 및 민첩성, 데이터센터 운영 및 유지 비용 감소
컴퓨팅의 핵심 EC2(Amazon Elastic Compute Cloud), 새로운 서버 인스턴스 확보, 신속한 컴퓨팅 설정
-> 독립된 컴퓨터를 임대해주는 AWS의 대표 서비스
설치과정
-> AWS 로그인 -> 리전 선택 -> EC2 선택 -> OS선택 -> AMI 선택(우선 ubuntu 20.04) -> 인스턴스유형 : t2.micro->키페어 생성(RSA, .pem) -> 보안그룹 생성
chmod 400 키페어이름.확장자
ssh -i 키페어이름.확장자 유저명@퍼블릭ip주소
scp -i 키페어명 파일명.확장자 유저명@EC2퍼블릭주소:/home/ubuntu(생성위치)
- ubuntu에 docker 설치
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker ubuntu
sudo curl [https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker](https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker) -o /etc/bash_completion.d/docker.sh
컨테이너 조회
EC2 접속 후 docker container ls
순서 : 연결 추가 -> EC2 설정에 따른 DB 선택->server host(EC2 퍼블릭 주소), Port(EC2 포트 확인, 3306 기본포트), name 및 pw 입력
chmod : 접근 권한 변경
u+x : 소유자에게 실행권한 추가
mvnw : 메이븐 배포시 설정
//키페어 있는 곳에서 EC2 연결
ssh -i 키페어이름.확장자 유저명@퍼블릭ip주소
//경로 이동 home/ubuntu/guestbook/src/main/resources
//ls를 통해 nano application.properties 파일 확인 및 환경설정 변경
vi application.properties
//배포하고자 하는 파일로 이동
cd guestbook
//메이븐 배포 환경설정
chmod u+x mvnw mvnw.cmd
//Maven/target Clean 및 build
./mvnw clean package
VPC안에 내가 사용하려는 서브넷을 만든다(단, 서로 겹치면 안 된다.)
서브넷은 무조건 VPC 안에 있어야 함.
서브넷이 생성되어야 있어야 Ec2와 같은 것도 생성 가능
ip는 시스템의 주소라면, 그 구분을 위한 주소임.
프라이빗 서브넷 연결하는 인스턴스 생성
두 개가 무엇이 다른가???
두번째 private으로 만든 것은 아래와 같이 인스턴스 연결을 클릭하면 연결할 수 없다고 뜸
보안규칙에 해당 ip로 접속하는 것은 허가하도록 설정을 넣어줘야 함.
그리고 키를 퍼블릭에 복사해서 넣어주기(접속할 수 있도록) -> 퍼블릭을 통해서 프라이빗에 접근하기(그림 참고)
//키가 있는 곳에서 커맨더 실행 -> 퍼블릭에 복사해서 넣어주기
scp -i 키페어명 키페어명 유저명@svr1퍼블릭주소:/home/ubuntu
//EC2 접속한 뒤 ubuntu 들어가서 복사된 키를 이용하여 Private 인스턴스로 접근
ssh -i 키페어이름.확장자 유저명@퍼블릭ip주소
chmod 400 키페어이름
//프라이빗 EC2접근
ssh -i 키페어명 ec2-user@svr2프라이빗주소