전체 글

김정태의 개발일기
· AWS
오늘은 Github Actions를 이용하여 Github Repository에 새로운 코드가 push 되었을 때 ECS 서비스에 코드를 반영하는 워크플로를 만들어봅시다. 1. AWS 리소스 준비 Fargate를 사용하는 ECS Service와 ALB를 같이 준비합니다. Go 애플리케이션은 /v1/color에 접속하면 Red, Green, Yellow를 랜덤으로 반환하게 합니다. Docker Image를 생성하기 위해 Dockerfile을 작성합니다. 이미지를 가볍게 하기 위해 Multi Stage Build를 사용합니다. 빌드 후 실행파일을 Alpine으로 보내 애플리케이션을 실행합니다. FROM public.ecr.aws/docker/library/golang:alpine AS builder WORKD..
· AWS
GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼입니다. GitHub Actions는 DevOps 이상의 기능을 제공하며 저장소에서 다른 이벤트가 발생할 때 워크플로를 실행할 수 있게 해 줍니다. GitHub는 워크플로를 실행하기 위한 Linux, Windows 및 macOS 가상 머신을 제공하며, 자체 데이터 센터 또는 클라우드 인프라에서 자체 호스팅 실행기를 호스팅 할 수도 있습니다. 오늘은 Github Actions와 CodeDeploy를 이용하여 Github Repository에 새로운 코드가 push 되었을 때 EC2 서버에 코드를 반영하는 워크플로를 만들어봅시다. 1. AWS 리소스 준비 Amazon Linux를 사용하는 EC2 Instance..
· AWS
EC2 인스턴스가 SSH Brute-force 공격을 받을 때 관리자들은 빠르게 대처해야 합니다. 오늘은 SSH 활동 로그를 CloudWatch Logs에 기록한 뒤, CloudWatch Alarm으로 공격을 감지하여 SNS로 이메일에 알리는 서비스를 구축해 봅시다. 1. 인스턴스 준비 Amazon Linux AMI를 사용하며 SSH 액세스가 가능한 EC2 인스턴스를 생성합니다. EC2 인스턴스가 CloudWatch에 접근할 수 있도록 IAM Role 하나를 생성합니다. CloudWatchAgentServerPolicy를 가져야 합니다. IAM Role을 EC2 Instance와 연결합니다. Amazon Linux 2023은 SSH 활동 로그를 생성하는 Rsyslog가 없기 때문에 설치해줘야 합니다. A..
· Algorithm
오늘은 DP 문제 중 2xn 타일링 2편 문제를 풀어봅시다. 11727 결과 : 맞았습니다!! 풀이 시간 : 1시간 미만 성공 풀이 과정 2xn 타일링 1편 문제와 마찬가지로 패드를 이용하여 2x4 크기의 직사각형까지 그려서 규칙을 알아내고자 했습니다. 찾은 규칙은 다음과 같습니다. 전 단계의 직사각형에 추가로 2x1 직사각형을 그립니다. 두 단계 이전의 직사각형에 추가로 직사각형을 그립니다. 1x2 직사각형 2개 2x2 직사각형 1개 따라서 a[n] = a[n-1] + a[n-2] * 2입니다. 코드 비교 나의 코드 (PyPy3) n = int(input()) memory = [0, 1, 3] for i in range(3, n+1): memory.append(memory[i-2] * 2 + memor..
· Algorithm
오늘은 DP 문제 중 2xn 타일링 1편 문제를 풀어봅시다. 11726 문제 : https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 결과 : 맞았습니다!! 풀이 시간 : 1시간 미만 성공 풀이 과정 패드를 이용하여 2x4 크기의 직사각형까지 그려서 규칙을 알아내고자 했습니다. 전 단계의 직사각형에 추가로 2x1 직사각형을 그리고, 두 단계 이전의 직사각형에 추가로 1x2 직사각형 2개를 그리면 되는 규칙이 나오게 되었습니다. 따라서 a[n] = a[n-2] + a[n-..
· Algorithm
오늘은 DP 문제 중 하나인 백준 1463번 문제를 풀어봅시다. 1463 문제 : https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 결과 : 맞았습니다!! 풀이 시간 : 1시간 미만 성공 코드 비교 나의 코드 (PyPy3) import sys from collections import deque input = sys.stdin.readline n = int(input()) memory = {} queue = deque([(n, 0)]) while queue: now, score = queue.popleft() if now in memory and memory[..
· AWS
Amazon ECR은 어디서나 애플리케이션 이미지 및 아티팩트를 안정적으로 배포할 수 있도록 뛰어난 성능 호스팅을 제공하는 완전관리형 컨테이너 레지스트리입니다. ECR은 EKS, ECS 등 컨테이너 서비스에 사용됩니다. 오늘은 ECR Repository를 생성하고, Golang Gin 이미지를 push합시다. 1. 준비 ECR > Repositories에서 Create repository를 누릅니다. Visibility settings에서 Private을 선택하고, Repository의 이름을 지정합니다. 나머지 설정은 놔두고, Create repository를 눌러 Repository를 생성합니다. AmazonEC2ContainerRegistryPowerUser Policy를 가진 IAM Role을 생..
· AWS
Amazon Managed Service for Apache Flink를 사용하면 스트림 처리 애플리케이션을 쉽게 구축하고 Apache Flink를 통해 스트리밍 데이터를 실시간으로 분석할 수 있습니다. 그 중 Studio notebooks를 사용하면 Apache Zeppelin 기반 노트북을 통해 스트리밍 데이터를 인터랙티브하게 분석할 수 있습니다. Apache Zeppelin은 데이터 시각화, 데이터를 파일로 내보내기, 더 쉬운 분석을 위해 출력 형식 제어 등의 기능을 포함한 분석 도구를 제공하기도 합니다. 오늘은 Studio notebooks를 사용하여 Kinesis Data Stream으로 들어오는 데이터를 분석해봅시다. 1. 준비 스트리밍 데이터를 수집할 Kinesis Data Stream을 생..
KimJeongTae
개발정태