키페어
파일이 필요하다.AMI는 Amazon Machine Image의 약자로 AWS 인스턴스를 시작하는데 필요한 소프트웨어 구성들을 포함한 템플릿입니다. 일반적으로 사용하는 우분투 OS나 딥러닝 등에 필요한 딥러닝 서버 등 용도에 맞는 다양한 AMI가 있습니다. 저의 경우 기본 우분투OS에 docker를 설치하고, 도커 허브에서 미리 올려둔 이미지를 docker run을 통해 서버를 기동할 계획 입니다.
위에서 AMI를 결정하였으면, 위의 이미지가 어떤 인스턴스, 어떤 스펙을 가진 하드웨어에서 동작할지 결정해야합니다. CPU가 몇개인지, 메모리를 얼마나 사용할것인지 등등을 살펴보고 결정해야합니다. 저의 경우 프리티어가 아닌 실제 운영을 위한 서버를 만들계획으로 t3.small
을 선택하였습니다. 프리티어가 아니라 과금이 됩니다.
기본값으로 설정하고 다음. 추후 Auto Scaling 그룹은 추가로 설정 필요
범용 ssd를 이용해서 기본 설정 그대로 볼륨을 설정합니다. 다만 기본 설정에서는 종료 시 삭제
부분에 체크 되어 인스턴스가 종료되면 저장된 스토리지도 자동으로 삭제가 되는데, 운영에서 사용할 인스턴스로 혹시 모를 종료에도 삭제 되지 않도록 체크 해제 합니다.
태그 추가 후 보안그룹 구성. 기본적으로 터미널을 통해 접속할 SSH 포트 외에도 HTTP, HTTPS, Load Balancer 등 접근하기 위한 포트를 추가하여 보안 그룹을 구성합니다.
위와 같이 구성한 인스턴스를 검토하고, 필요한 내용은 수정합니다. 수정이 완료 되면 '시작하기'를 클릭하여 ec2 인스턴스를 생섭합니다.
예전에는 윈도우에서 putty로 키페어를 이용해 연결했었던 기억이 있어서 맥북에서도 터미널로 접속 가능한지 찾아보았습니다.
하지만 현재는 직접 aws 콘솔에서 바로 터미널로 브라우저를 통해 접속 할수 있으므로 2번의 방법을 사용하는게 더 좋아보입니다.
$ ssh -i ~/Desktop/key/keyfile.pem ec2-user@[서버 아이피 또는 도메인]
도커를 윈도우나 맥에서 사용하는것과 조금 다르게 Ubuntu에서는 Docker를 설치하는 방식과 다르다고 합니다. 우분투 20.04의 경우도 문서를 살펴보니 이전 버전들과 동일하게 도커를 세팅하는것을 볼 수 있었습니다.
apt(Advanced Packaging Tool)은 우분투나 데비안 계열의 OS에서 동작하는 패키지 관리 시스템입니다. 도커를 설치하기 전에 apt 패키지 리스트
를 업데이트 합니다
$ sudo apt-get update
$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
Docker의 공식 GPG키를 등록하고, 정상적으로 동작하면 OK가 표시 됩니다.
GPG키란?
GPG 키는 리눅스 패키지 관리자가 키를 확인하여 소프트웨어의 무결성을 확인하는데 사용합니다.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
$ sudo apt update
$ apt-cache policy docker-ce
$ sudo apt install docker-ce
$ sudo systemctl status docker
Output
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-19 17:00:41 UTC; 17s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 24321 (dockerd)
Tasks: 8
Memory: 46.4M
CGroup: /system.slice/docker.service
└─24321 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock