본문 바로가기

전체 글

(148)
Slack으로 CICD 승인체계 구성하기 - 1. Intro 전체 구성은 위와 같이 구성하여 진행할 예정입니다. 따라서 기본적인 Jenkins Pipeline 배포과정까지는 CICD 게시글을 참고하여서 구성을 끝내주셔야합니다. 물론 사실 더 좋은 Pipeline은 Jira Confluence를 사용하여 Slack 대신 게시글을 작성하고 소스코드 리뷰 하고 이력도 완벽하게 남기면서 배포하도록 API를 연동하시는 것이 더 좋습니다. (소스코드 품질 검증 소나큐브, 화이트소스 등, 도커 스캐닝등 과정도 포함해주시면 상당히 정석적인 구조를 완성하실 수 있습니다.) 하지만 저는 돈이 없기 때문에 위와 같이 체계와 간단한 로깅을 남기도록 만들겠습니다. 이 게시글에서는 간단하게 슬랙 채널과 앱을 만들어 주도록 하겠습니다. 그 다음 알맞게 입력해주시면 채널이 생성됩니다. 이제 ..
4. ELB, CloudFront, VPC Flow Logs, CloudTrail 수집 - S3 서버의 CMD, Application Logs들에 대한 수집 외에도 ELB, CloudFront, VPC Flowlogs, CloudTrail 로그들도 모두 S3에 남긴 후 ES Service에서 중앙화 한 후 Kibana를 통해 간편하게 볼 수 있습니다. 각 서비스들에 대해서 로그를 남기는 방법을 간단하게 보도록 하겠습니다. 먼저, CloudTrail입니다. 추적생성을 통해서 각 계정의 서비스에 이벤트나, S3에서 일어나는 API콜 등에 대해서 모두 종합적으로 로그를 남기게 할 수 있습니다. 그 다음은 VPC Flow Logs입니다. 해당 VPC에서 통신되는 부분들에 대한 로그들을 수집해서 보실 수 있으나, 서비스가 크면 클수록 데이터량이 상당하여 생각보다 많은 비용을 발생시킵니다. 따라서 해당 로그활..
3. EC2 Linux Application Logs - S3 (Logstash) 가장 먼저 S3 Bucket을 만들어 주도록 하겠습니다. 이제 서버 설정을 해보겠습니다. EC2에 S3 FullAccess 정책을 붙인 롤을 할당해줍니다. (Put과 Describe에 대한 권한으로 최소화 시키셔도 됩니다.) 먼저, Java11을 설치해야 합니다. 아래 명령어를 수행해서 기본적인 업데이트를 해주겠습니다. sudo yum -y update sudo amazon-linux-extras install -y epel Amazon Linux2에서는 openjdk를 설치할 수 있는것이 아래와 같습니다. 직접 11버전을 찾아서 강제로 설치하는 방법도 있겠으나, 가장 최신버전을 그냥 설치하도록 하겠습니다. sudo yum -y install java-latest-openjdk-devel cat > ja..
AWS Lambda를 통해 현재 Security Group List를 SES 로 받아보기 앞선 EC2 List 받아보기와 구성은 완전 똑같습니다. 위의 글을 참고해주세요 람다 소스코드만 바꾸면 되는 부분이기 때문에 소스코드와 이에 대한 설명만 하도록 하겠습니다. import os import boto3 import smtplib import datetime import pandas as pd from openpyxl import load_workbook from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication from openpyxl.styles import Font, Alignment, Border, Side..
AWS Lambda를 통해 현재 EC2 List를 SES로 받아보기 회사에서 운영을 하다보면, 늘 문서충이 되어야합니다. EC2 서버에 대한 IP, 환경, 이름, Type까지는 기본적으로 항상 조사가 되어야하는 항목들입니다. 이것을 매번하는건 좋지 않을 듯 하여 만들어봤습니다. 먼저 SES SMTP 생성 및 인증을 해야합니다. 저는 버지니아리전에서 생성했습니다. Create My SMTP Credentials를 한 후 기억해주세요 이제 Email Addresses에서 자신의 이메일을 등록해줍니다. 혹은 메일을 받아야 하는 분들을 등록해 주고, 링크가 가면 인증을 해달라고 말씀해주세요. 아까 만든 Credentials를 코드에 그냥 넣어서 좋을것은 없겠죠? AWS Systems Manager 서비스에서 Parameter Store에 등록해주겠습니다. 이름에는 키 ID, 값..
AWS Lambda를 통해 EC2 백업 자동화 구성하기 이전 글과 동일한 방법으로 구성합니다. 조금 더 상세한 설명은 위의 글을 참고해주세요 Cloudwatch Event + Lambda이기 때문에 알맞은 Role과 백업을 하고자 하는 시간대로 CloudWatch Event를 구성하겠습니다. 저는 아래와 같이 구성하였습니다. 람다 소스코드는 아래와 같습니다. 이번에는 환경 태그값에 따라서 백업을 하는 형태로 구성해봤습니다. import boto3 import datetime def backup_instances(client): response = client.describe_instances() ec2_list = response['Reservations'] # 인스턴스 정보들 for ec2 in ec2_list: ec2_info = ec2['Instance..
AWS Lambda를 통해 EC2 서버 스케줄링 구성하기 AWS Lambda를 통해서 서버스케줄링을 해보도록 하겠습니다. Cloudwatch Event를 통해 Lambda를 Cron으로 수행하여서 서버를 키고 끄는 형태입니다. 먼저 Lambda가 EC2를 크고 끄는 작업을 수행해야하므로, 해당 권한을 가진 Role을 구성해주겠습니다. 정책에서 아래와 같이 만들어주겠습니다. { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "*" } ] } 그리고 Role에서 서비스를 람다로 고른 후 아래 정..
Docker Intro - Docker CLI 정리 먼저, Amazon Linux2 기반 Docker Install Script sudo amazon-linux-extras install -y epel sudo yum install -y python3 sudo python3 -m pip install --upgrade pip sudo amazon-linux-extras install -y docker sudo service docker start sudo usermod -aG docker $USER docker info - 컨테이너 포트 확인 docker inspect -f '{{.State.Pid}}’ 컨테이너 ID sudo nsenter -t 위의 값 -n netstat -ntl - File Copy sudo docker cp 컨테이너이름:경로 호스트..