일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- abex'crackme
- 네트워크
- Repository
- bastion host
- Java
- Firewall
- CISCO
- Python
- STP
- 머신러닝
- docker
- AWS
- 크롤러
- Mac
- Screening Router
- vector
- dreamhack
- Reversing
- 자바
- AI
- 라우터
- 온프레미스
- cmd
- RIP
- 암호학
- 머신러닝 프로세스
- 인공지능
- vlan
- 스위치
- 리버싱
- Today
- Total
Haekt‘s log
[Docker] AWS EC2 를 이용한 apache 웹 서버 구축 본문
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 |