본문 바로가기
  • 👩🏻‍💻 🌮 💬

분류 전체보기151

[AWS] SNS Topics에 등록한 Pending confirmation 상태의 Subscription 삭제 개요Amazon SNS에서 Topic을 생성하고 Subscriptions에 email을 create하는 과정에서 오타가 발생하여 잘못된 email을 등록해버렸다.이미 Request confirmation이 된 상태인데, 잘못된 email이니 인증이 진행되지 않아서 Pending confirmation 라는 status 로 잔류하고 있다. Pending confirmation 인 상태가 있으니까 해당 Topic을 사용하는 Alarm에도 warning 이 표시된다. 진행1. AWS에서 바로 삭제 시도 삭제하고 싶은 email을 선택해도 Edit, Delete 버튼이 비활성화되어서 삭제를 진행할 수 없다.  2. python 스크립트로 접근하여 삭제 시도 직접 접근을 시도해서 삭제 시도import boto3#.. 2024. 8. 7.
[AWS] EC2 Instance에 Alarms 추가하기 [EC2 Instance] file descriptor leak issue개요Docker로 Airflow를 띄운 ec2 instance가 한,두달에 한번씩 ssh 접근이 불가능한 상태가 반복되었다.AWS ec2 instance 상태는 running 상태인데 airflow가 내려가있고 ssh 접근이 안되는 것이 서버가 무겁게 돌bonory.tistory.com 이런 일이 있었다갑자기 cpu가 죽어버리는 일 !!! 그래서 cpu 가 또 갑자기 죽어버리면 Alarm 받으려고 한다. CloudWatch 에서 Alarms 에 접근한다. 거기서 이제 Create alarm를 클릭하고 어떤 ec2 instance를, 어떠한 기준으로 alarm을 받을 것인지 설정하면 된다.나는 이렇게 되는 경우를 설정해줄 것 인데 ... 2024. 8. 6.
[EC2 Instance] file descriptor leak issue 개요Docker로 Airflow를 띄운 ec2 instance가 한,두달에 한번씩 ssh 접근이 불가능한 상태가 반복되었다.AWS ec2 instance 상태는 running 상태인데 airflow가 내려가있고 ssh 접근이 안되는 것이 서버가 무겁게 돌아가고 있어서, cpu 문제이거나 memory 문제라고 판단하여서주기적으로 memory 사용량도 log로 기록하고, ec2 instance monitoring으로 CPU 사용률을 확인해도 뚜렷한 원인을 찾지 못했다. 확인 airflow가 내려간 시점의 log를 하나하나 찾아보니[ERR] Connection could not be made due to the following error: (pymysql.err.OperationalError) (2003,.. 2024. 8. 6.
[Airflow] local에서 간단하게 시작하기 개요airflow 관련해서 간단하게 테스트하기 위해서 로컬해서 실행하는 방법을 정리하려한다진행Step 1. 가상 환경필수 사항은 아니지만 pip 버전으로 크게 골치 아프고 싶지 않기에 무조건적으로 set up 해준다# Create a virtual environmentpython3 -m venv airflow-venv# Activate the virtual environmentsource airflow-venv/bin/activate Step 2. Apache Airflow 설치pip을 이용해서 설치해준다.AIRFLOW_VERSION=2.5.1PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"CONSTRAINT_URL=".. 2024. 7. 30.
[LeetCode] Algorithms | 21. Merge Two Sorted Lists | Python Problems 항상 Linked List만 나오면 많이 헷갈려서 연습장에 하나하나 그려보고 적어본다.잘 쓰지 않아서 익숙하지 않아서겠지 이렇게나마 계속 접하면 익숙해지겠지 암튼 해야하는 일은 list를 merge하고 순서대로 정렬해야한다.그냥 python 함수로 extend 하고 sort 때려버리고 싶지만 그래도 한번 차근차근 해보자 1. 우선 빈 list1가 빈 list이면, list2로 return 해주고, 그 반대로 list2가 빈 list이면 list1으로 return 해주기2. while 문을 통해서 빈 list일 때까지 반복해주기3. ListNode의 val를 가지고와서 크기 비교해주기   3-1. list1의 val이 더 크다면, 비어있는 ListNode에 list1을 담아주고 list1의.. 2024. 7. 24.
[LeetCode] Algorithms | 20. Valid Parentheses | Python Problems 문제를 읽고, 그냥 순서 상관없이 s안에 짝 맞는 괄호만 있으면 되는 줄 알았다.그래서 짠 코드는 아래와 같다.진짜 단지 짝만 맞으면 되기에, 같은 괄호 짝수 개인지 확인하고 returnwrong 이라고 한다.보니까, 같은 괄호끼리는 붙어있어야하나보다. 만약 s = '( [ { } ] )' 일 경우에는 여는 괄호 순서  ( → [ → {  와 닫는 괄호  } → ] → ) 순서는 반대이다.이런 경우에 여는 괄호 순서로 stack에 쌓아주고, 뒤에 쌓인 순서대로 가지고 와서 닫는 괄호 확인하는 걸로 해야겠다.그럼 LIFO 가 되는거고, list에서 뒤에 요소부터 가지고 와서 지워주는 pop 을 사용해야겠다(remove는 앞 요소를 가지고 오고 지워준다.) 그래서 작성한 스크립트는 아래와 같.. 2024. 7. 23.
[SSH] 접속 오류 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 개요ssh 접속 시도시 아래와 같은 에러 메세지가 출력되었다.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed.. 2024. 7. 22.
[LeetCode] Algorithms | 14. Longest Common Prefix | Python Problems 제일 긴 common prefix를 찾는 문제이다.이걸 하나하나 어떻게 검사해야하나 고민이 되었다.우선 제일 짧은 단어를 기준을 잡고 시작해야겠다고 생각했다. 처음엔 shortest_word = min(strs, len) 으로 하나 지정을 한 상태로 시작했는데,음 그냥 정렬로 첫번째 박아놓고 하면 좀 더 수월하겠다 생각했다strs.sort(key = lambda x : len(x))for i in range(len(strs[0])): for j in range(1, len(strs)): if strs[0][i] != strs[j][i]: return strs[0][:i]return strs[0] 제일 짧은 단어 str[0] 을 기준을 잡고, 그 다음 .. 2024. 7. 12.
[LeetCode] Algorithms | 13. Roman to Integer | Python Problems Thinking위에서 정의한 Symbol, Value를 Dict로 선언해주고 mapping 시켜주면 되는 간단한 문제다.신경써야할 부분은이렇게 2개의 문자가 만났을 때 숫자가 바뀐다는 점하나하나 분기처리해서 할까 생각했는데오히려 더 복잡하고 시간도 많이 소요될 것이라 판단 mapping 되어야하는 dict을 선언해준다mapping = { 'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000, 'IV':4, 'IX':9, 'XL':40, 'XC':90, 'CD':400, 'CM':900 } input되는 Roman을 하나씩 쪼개주고 순서대로 Interger로 바꿔주는데,그 바로 옆에 있는 Roman과 함께 확인하도록 해준다.n.. 2024. 7. 12.