CloudWatch를 이용한 AWS EC2 모니터링
1. AWS 인스턴스 접속
2. 하단에 그림과 같은 모니터링이 활성화 되어있습니다.알람을 추가해보겠습니다.
3. 경보생성 클릭
4. 본인은 프리티어이기 때문에 과금이 되지 않기 위한 알람을 설정하겠습니다.
A. 대상과 이메일 수신자,수행할 작업,조건을 설정하고 경보생성 버튼을 눌러줍니다.
B. 이렇듯 손쉽게 아마존에서 제공하는 CloudWatch를 이용하여 모니터링 할수 있습니다.
Docker를 이용하여 Jenkins 구성하기.
목적 : 하나의 OS내에서 서로 다른 Jenkins를 설치하여 분리하기 위함.
1. 기존 OS자체에서 설치되어 있는 Jenkins 삭제.
A. Yum remove -y Jenkins
2. Docker 설치
A. sudo yum install -y yum-utils device-mapper-persistent-data lvm2
B. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
C. sudo yum -y install docker-ce docker-ce-cli containerd.io
D. sudo systemctl start docker
E. sudo systemctl enable docker
F. 설치확인
i. docker version 명령어를 실행하여 버전 확인
3. Jenkins 관리자 설정
A. sudo groupadd --system Jenkins
B. sudo useradd -s /sbin/nologin --system -g jenkins Jenkins
C. sudo usermod -aG docker Jenkins
D. 테스트
i. id Jenkins 명령어를 실행하여 Docker group에 포함되었는지 확인
4. Docker 이미지 Pull하기
A. sudo docker pull jenkins/jenkins:lts
B. 이미지 정상 다운로드 확인
5. 컨테이너가 비정상종료되거나 충돌하는경우 재사용할수 있도록 영구 디렉토리를 만들어 줘야 합니다
A. Jenkins를 몇개 운용할거냐에 따라서 Directory를 생성해준다
B. sudo mkdir /var/Jenkins
C. sudo chown -R 1000:1000 /var/Jenkins
6. Jenkins 컨테이너에 systemd서비스 유닛 파일을 새로만듭니다.
A. sudo vi /etc/systemd/system/jenkins-docker.service
B. Vi 가 열리면 아래 내용을 추가해 줍니다
[Unit]
Description=Jenkins Server
Documentation=https://jenkins.io/doc/
After=docker.service
Requires=docker.service
[Service]
Type=simple
User=jenkins
Group=jenkins
TimeoutStartSec=0
Restart=on-failure
RestartSec=30s
ExecStartPre=-/usr/bin/docker kill jenkins-server
ExecStartPre=-/usr/bin/docker rm jenkins-server
ExecStartPre=/usr/bin/docker pull jenkins/jenkins:lts
ExecStart=/usr/bin/docker run \
--name jenkins-server \
--publish 10000:8080 \
--volume /var/jenkins:/var/jenkins_home \
jenkins/jenkins:lts
SyslogIdentifier=jenkins
ExecStop=/usr/bin/docker stop jenkins-server
[Install]
WantedBy=multi-user.target
7. Systemd를 다시 로드하고 6번에서 만든 service를 실행시켜줍니다..
A. sudo systemctl daemon-reload
B. sudo systemctl start jenkins-docker
8. Test
A. sudo systemctl status jenkins-docker 명령어로 서비스 상태를 확인해줍니다.오류가 생길수 있으니 꼭 확인하시길 바랍니다.
B. 위에 jenkins-docker.service에 execStart 명령어에 보면 –publish 9090:8080이라고 적혀있습니다.의미는 간단히 설명하면 9090포트를 웹브라우저로 열게되면 컨테이너 내부 8080포트로 변경되어 실행됩니다. 따라서 저는 9090포트로 접속하겠습니다.
i. 성공적으로 접속이 되었습니다.
C. Jenkins 두개 생성하여 테스트.
i. 9090포트는 첫번쨰 Jenkins이니 9091포트를 Jenkins 포트로 설정하여 새로운 Jenkins를 생성하겠습니다.
ii. 본문 5번부터 이름과 폴더를 달리하여 다음과 같이 생성해줍니다. jenkins-docker2.service 파일을 생성합니다.
iii. sudo systemctl daemon-reload
iv. sudo systemctl start jenkins-docker2
v. docker ps명령어로 실행되는 컨테이너를 확인합니다
vi. 그럼 포트번호 9090,9091 두개의 jenkins에 접속하겠습니다.
vii. 그림처럼 두개가 다른 상태로 시작하고 따로 동작한다는 것을 알수 있습니다