클라우드
-
⚙️ Amazon Chatbot으로 Slack 경보 설정클라우드 2023. 11. 2. 11:11
(이전 글) NextJS + k8s 프로덕션 환경에서 OOMKilled 현상 CloudWatch의 경보를 Slack으로 전송하는 보편적인 방법에는 두가지가 있다. 1. AWS Chatbot을 Slack과 연결해 메시지 전송 2. AWS Lambda + Webhook을 사용하여 Slack으로 메시지 전송 2번의 경우 메시지와 기타 조건에 대해 자유롭다는 장점이 있으나 세팅까지 손이 많이 가기에 모니터링만을 위한 Slack으로는 Chatbot을 채택했다. 1. AWS Chatbot과 Slack 채널 연결 1-1. Amazon SNS에서 주제를 생성한다. 1-2. AWS Chatbot Console에서 Workspace를 새로 생성하고 사용할 Slack 워크스페이스와 연결한다. 1-3. 만들어진 워크스페이스에..
-
⚙️ EKS에서 Container Insights 설정클라우드 2023. 11. 2. 11:10
(이전 글) NextJS + k8s 프로덕션 환경에서 OOMKilled 현상 1. 클러스터의 Worker Node의 IAM 계정에 CloudWatch 접근 정책 연결 1-1. EC2 > 인스턴스 > 사용할 Worker Node 상세 > 보안 탭 > IAM 역할 순서로 접근한다. 따로 Node에 권한 세팅을 해두지 않았다면 현재 상태는 다음과 같을 것이다. 1-2. 권한 추가에서 해당 권한을 IAM 역할에 추가한다. 2. 클러스터 지표 수집을 위해 CloudWatch Agent 설정 2-1. CloudWatch 네임 스페이스 생성 kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights..
-
NextJS + k8s 프로덕션 환경에서 OOMKilled 현상클라우드 2023. 10. 25. 10:18
🚫 문제발생 현재 관리 중인 서비스는 EKS를 통해 배포 중이고 NextJS를 쓰는 Front 역시 해당 클러스터에 배포되어있다. 정식 배포 이후 얼마 뒤부터 주기적으로 서버가 다운됐다가 복구된다는 CS요청을 받았다. 현재 상태를 확인한 결과 아래 사진처럼 Front 배포 Pod이 수없이 Evicted, 말 그대로 클러스터에서 추방 당했다. 해당 Pod의 로그를 보니 OOMKilled 상태였고 빠른 조치가 필요했다. 처음엔 당연히 코드 상의 실수로 Memory Leak이 발생해서 해당 문제가 생겼다고 생각했다. 그런데 확인해보니 같은 스펙의 클러스터와 같은 빌드 버전을 사용 중인 Dev, Staging에서는 해당 문제가 전혀 발생하지 않고 있었다. 트래픽에 대한 스트레스 테스트를 진행한 적이 없기에 트래..
-
AWS 활용 기초 #7. php를 활용하여 MySQL 연동클라우드/Amazon Web Service 2021. 6. 8. 22:47
1. DB 생성 create database clouddb default character set utf8; create user 'test'@'%' identified by 'cloud'; grant all privileges on clouddb.* to 'test'@'%'; flush privileges; root 계정을 활용하는 것은 보안 상의 문제가 있을 수 있으므로 새로운 계정을 만들어 권한을 위임해준다. 사용자 : test 암호 : cloud 데이터베이스 : clouddb 2. 테이블 생성 create table topic( id int not null AUTO_INCREMENt primary key, title varchar(100) null, description varchar(200) n..
-
AWS 활용 기초 #6. php 설치 및 RDS 생성클라우드/Amazon Web Service 2021. 6. 8. 02:02
1. php 설치 웹의 고전이라고 할 수 있는 php를 가상환경에 설치하고 활용하여 간단한 웹서비스를 만들어보자. sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install -y php5.6 php5.6 버전을 설치하면 php -version 다음과 같은 코드를 활용해 설치 버전을 확인할 수 있다. 정상적으로 5.6 버전의 php가 설치되었다. php의 default 화면을 Apache를 통해 보여주자. Apache index.html이 있는 폴더로 이동한다. cd /var/www/html/ 이전에 설치한 nano editor를 활용해 php 파일을 편집한다. 이 포스팅의 주 목적은 클라우드 서비스이므로 php는 간단한 ..
-
AWS 활용 기초 #5. MySQL 설치클라우드/Amazon Web Service 2021. 5. 16. 21:40
지난 포스팅에서는 AWS를 활용한 기초적인 명령어를 알아보았다. 이번 포스팅에서는 가장 상용화 되어있는 관계형 DB인 MySQL을 가상환경에 설치하려한다. sudo apt update sudo apt install mysql-server 현재 설치된 모든 프로그램의 업데이트 여부를 확인해주고 MySQL을 설치하자. 설치 후 root > etc 디렉토리로 들어가면 mysql 관련 폴더가 생성 되어있는 것을 확인할 수 있다. 설치 후 부터는 Window와 Linux에 큰 차이는 없다. cmd 창을 열어 입력해주던 명령어를 TeraTerm을 열어 sudo를 붙여 입력해주면 된다. sudo mysql -u root -p 이렇게 mysql에 root 계정으로 접속했다. show databases; root 계정을..
-
AWS 활용 기초 #4. 우분투 기본 명령어클라우드/Amazon Web Service 2021. 5. 4. 00:00
폴더와 파일 관련 명령어 디렉토리 dir1 생성 mkdir dir1 임시 파일 file1 생성 touch file1 디렉토리 dir1 제거 rmdir dir1 파일 file1을 dir1으로 이동 mv file1 dir1/ 파일 file1을 file2로 복사 cp file1 file2 파일 목록 출력 ls -l 절대경로와 상대경로 cd /home/ubuntu/dir1 # 절대경로 cd ~/dir1 # 상대경로 권한 관련 명령어 권한 상태 구조 d or - : Directory or File rwx : User의 권한 : Read 가능, Write 가능, Excute 가능 : 111(2)로 표현 -> 7 rwx : Group의 권한 : Read 가능, Write 가능, Excute 가능 : 111(2)로 표..
-
AWS 활용 기초 #3. 에뮬레이터 사용하기클라우드/Amazon Web Service 2021. 4. 20. 13:39
이번 포스팅에서는 전 포스팅에서 생성한 가상환경에 개발환경을 설치한다. 마찬가지로 TeraTerm이라는 에뮬레이터를 통해 Linux 운영체제에 원하는 환경을 구축할 수 있다. 그에 앞서 익숙하지 않은 Terminal의 형태를 조금 보기 좋게 바꿔보려한다. [설정 > 글꼴 > 글꼴]에 들어가 가장 익숙한 Consolas 12p로 세팅을 해준다. 이클립스의 Default 글꼴이자 개발자 선호도 1위 글꼴이기에 가독성이 보장된 글꼴이다. 마우스 커서가 올라가 있는 라인을 보자. ubuntu@ip-172-31-53-202:~$ ubuntu는 현재 접속된 유저명을, ip는 현재 접속 중인 ip를 ~$는 현재 위치가 Home Directory임을 의미한다. 명령어 pwd 를 입력하여 확인해주자. 가상환경을 생성하면..