Haekt‘s log

[Docker] AWS EC2 를 이용한 apache 웹 서버 구축 본문

Docker

[Docker] AWS EC2 를 이용한 apache 웹 서버 구축

Haekt 2022. 9. 20. 14:00

AWS EC2에 컨테이너를 올려 apache 웹 서버를 구축해 볼 것이다.

 

먼저 컨테이너를 올릴 EC2 서버를 만들어보자 .

 

 

AWS EC2 인스턴스 생성 


- EC2 운영체제 : Amazon Linux 2 Kernel 5.10 AMI 2.0.20220606.1 x86_64 HVM gp2 64비트 사용

- EC2 서버 유형 : t2.micro 사용 

- EC2 보안그룹 : SSH 접속을 위해 SSH 트래픽(22 port) 허용 & 웹 서비스를 위해 HTTP 트래픽(80 port) 허용

- 키 페어 생성 : 새 키 페어 .pem 를 생성

- 생성된 인스턴스 선택, 상단 연결 탭을 눌러 SSH 연결 명령어를 복사 후 .pem 파일 위치에서 실행

 

 

1. 인스턴스 시작을 눌러 인스턴스를 생성.

2. 인스턴스 이름 설정 후 인스턴스 유형과 네트워크 설정은 원하는 값으로 설정.

3. SSH 접속을 위한 .pem 확장자의 새 키 페어를 생성.

4. 네트워크 설정에서 HTTP 트래픽 설정을 허용한 후 인스턴스 시작.

5. 인스턴스 선택 후, 연결을 클릭 

6. 적혀있는 SSH 접속 방법을 이용하여 접속.

MAC 의 경우, 터미널에서 다운로드 받은 .pem 파일의 위치에서 바로 붙여넣기 하여 접속이 가능하다.

 

 

그 전에, 다운로드 받은 키 페어의 위치로 이동 후 키페어를 사용할 수 있도록 권한을 설정해 준다.

 chmod 400 lastone.pem

그 후 AWS 사이트에서 복사한 명령어를 붙여넣기하여 접속이 가능하다.

 

 

# 키 페어는 접속하기 위해 꼭 필요한 것으로, 관리를 잘 해야한다!


 

 

AWS EC2 DOCKER 설치  


 

이제 docker 를 설치할 차례이다. 

아래의 명령어를 따라 쳐 준다. 

 

$ sudo yum update -y
# yum 업데이트

$ sudo yum install docker -y
# docker 설치 

$ sudo service docker start
# docker 서비스 실행

$ sudo usermod -a -G docker ec2-user 
# docker 명령어 사용시 sudo 생략 가능하게 권한을 주는 명령어
# ec2-user append Group docker

 

위 명령어를 실행하면 docker 설치는 끝났다. 

이미지 생성을 위한 Dockerfile 을 작성해 준다. 

 

$ cd ~ 

$ vim Dockerfile

 

 

# Dockerfile 코드

	FROM ubuntu:18.04 
	#ubunutu 18.04를 사용
 
	MAINTAINER haekt <haekt1140@gmail.com> 
	# Dockerfile 작성자 & email

	RUN apt-get update
	RUN apt-get install -y apache2
	# image가 올라갔을 때 수행되는 명령어들

	EXPOSE 80 
	# apache가 80포트를 사용하기 때문에 expose로 80포트 접근을 허용해 준다.

	CMD ["apachectl", "-D", "FOREGROUND"]
    
	# apachectl을 foreground(deamon)상태로 돌아가게 한다.

 


 

- docker image 빌드

 

Dockerfile이 있는 위치에서 이미지를 빌드해 준다.

 

$ docker build -t apache-image .

# -t : 이름을 설정하는 옵션이다. 뒤에는 이미지이름이 오게 됨

 

! 만약  /var/run/docker.sock Permission denied  오류가 뜨게 된다면 

docker.sock 파일 접근 권한이 없기 때문이다. chmod 로 권한을 준다.

sudo chmod 666 /var/run/docker.sock

 

 

빌드가 성공적인지, 이미지를 확인해본다. 

 

$ docker images

 

 

- apache 웹 서버 페이지 생성

 

웹 서버 접속시 보이는 http 페이지를 만든다.

$ mkdir http
$ cd http
$ vim index.html

 

# index.html 

docker server!

 

- docker 컨테이너 실행

 

앞서 만든 이미지로 컨테이너를 실행한다. 

 

$ docker run --name apache-server -d -p 80:80 -v ~/html/:/var/www/html apache-image

 

--name : 컨테이너 이름을 설정하는 옵션. 

-d : 백그라운드로 실행하는 옵션

-p : 포트를 설정하는 옵션. 호스트의 80포트를 컨테이너의 80 포트와 연결

-v : 동기화 옵션으로, 컨테이너가 올려진 호스트의 디렉토리와 컨테이너의 디렉토리를 연동시킬 수 있다. 

 


- 실행결과 

 

인스턴스의 Public DNS 주소를 복사한 후, 80 포트로 접속한다. 

 

'Docker' 카테고리의 다른 글

[Docker] Docker hub에 Image Push 하기  (0) 2022.09.20
[Docker] docker Repository 생성 방법  (0) 2022.09.20
Comments