aws 이미지 배포

wangjh789·2022년 8월 27일
0

docker

목록 보기
20/25

aws 에서 ec2 인스턴스를 생성할 때 ssh 접속을 위한 keypair를 생성한다.

chmod 400 example-1.pem 으로 키페어에 대한 접근 권한을 확인한다.
ssh -i "example-1.pem" ec2-user@ec2-54-190-68-140.us-west-2.compute.amazonaws.com
위 명령어를 통해 ssh 통신으로 리모트 인스턴스와 연결한다.

sudo yum update -y
sudo amazon-linux-extras install docker
아마존 리눅스 인스턴스를 선택했기 때문에 도커와 같은 부가 소프트웨어를 편하게 설치할 수 있다.

sudo service docker start

이제 리모트 머신에도 도커가 설치가 되었고 다음 할 일은 리모트 머신 도커를 써서 컨테이너를 수행시키는 일이다.
1. 소스코드를 리모트 머신에 받아 리모트 머신에서 이미지를 빌드하고 컨테이너를 시작한다.
2. 로컬에서 빌드한 이미지를 리모트 머신이 받아 컨테이너를 시작한다.

1번보다 2번이 더 간단하므로 로컬에서 리모트로 도커허브를 이용해 이미지를 전달한다.
(m1맥북에서 linux/amd64 환경으로 이미지 빌드하기)
sudo docker run --rm -p 80:80 wangjh789/node-example-1

이제 리모트 환경에서 컨테이너가 수행되고 있고, 이를 테스트 하기위해 접속하는 단계가 남았다.

콘솔에 보면 퍼블릿 IPv4가 있는데 주소창에 입력해도 접속이 되지 않는다.
aws는 ec2 인스턴스는 기본적으로 www의 모든것과 연결이 끊이져 있다. 이는 보안그룹과 연결되어 있다.

보안그룹을 선택하면 ec2인스턴스를 생성할 때 같이 만들어진 보안그룹이 보여지는데 기본적으로 ec2 인스턴스에서 허용되는 트래픽을 제어한다.

아웃바운드 룰은 다른곳에 있는 인스턴스 대기열로 부터 허용되는 트래픽을 제어한다.(기본은 모든 아이피 허용, ec2 인스턴스가 도커허브와 통신할 수 있는 이유)

인바운드 룰은 어딘가에 있는 인스턴스의 대기열에 허용된 모든 트래픽이 여기에 표시된다.(기본설정은 모든 IP에 대해 22번포트만 열려있다.)
전세계의 누구나 ssh연결을 시도할 수 있기에 키파일이 있어야한다.
이제 80번 포트에 http 통신이 들어올 수 있도록 설정하면 퍼플릭 IP로 통신이 가능해진다.

profile
기록

0개의 댓글