본문 바로가기

현상수배범28

ELB 504 에러 해결방안 베하~ 현상수배범입니다. 이번 시간에는 ELB 504 에러 발생 시 해결방안에 대해 알아보도록 하겠습니다! 504 Gateway timeout Error 가 발생하는 원인은 주로 유휴 제한 시간 내에 요청이 완료되지 않아 로드밸런서가 연결을 닫아 발생하는 것입니다. 이에 대한 해결방안으로 주로 응답을 보내는 어플리케이션의 유휴시간이 ELB의 유휴시간보다 짧아 응답을 완료하지 못한 경우 응답받지 못한 ELB에서 발생하는 오류이기 때문에 ELB 유휴 제한시간보다 어플리케이션의 유휴시간을 더 크게 설정하면 됩니다. 이런 경우 tomcat server.xml 의 connector 설정 값을 수정해주면 되는데 예를 들어 ELB 에서 연결접속에 대해 60초간 지속(유휴제한 시간)하지만, 서비스하고 있는 어플리케이션.. 2023. 12. 15.
Python의 Generators Python의 제너레이터(generator)는 반복자(iterator)를 생성하는 간단하고 효율적인 방법입니다. 큰 데이터를 처리할 때 메모리 사용을 최적화하고 코드의 간결성을 높일 수 있습니다. 이번 글에서는 제너레이터의 기본 개념과 사용 방법, 그리고 장점에 대해 살펴보겠습니다. 제너레이터의 기본 개념 제너레이터는 이터레이터를 반환하는 함수로, yield 표현식을 사용합니다. 함수가 yield를 만나면, 현재 함수의 상태를 기억하고, 다음 호출시에 다시 그 상태부터 실행을 계속합니다. 특징 상태 유지: 제너레이터는 마지막으로 실행된 지점과 그 상태를 기억합니다. Lazy Evaluation: 제너레이터는 필요할 때까지 값이 생성되지 않습니다. 이는 메모리를 효율적으로 사용하는 데 도움이 됩니다. 코드.. 2023. 12. 7.
ElastiCache를 이용하여 톰캣 세션 클러스터링 실습 베하~~! BTC현상수배범입니다. AWS EC2에서 톰캣을 사용한다면, 세션 클러스터링이 불가능합니다. 세션 클러스터링이 불가능한 이유는 AWS 네트워크는 멀티케스트를 지원하지 않기 때문입니다. 그렇기때문에 AWS EC2에 톰캣을 사용하실때는, 별도로 세션 관리를 위한 장치를 설치 진행해야합니다. Amazon ElastiCache를 이용하여 톰캣 세션 클러스터링 실습을 진행하도록 하겠습니다. 사전 준비사항 AWS ElastiCache Redis 준비 - ElastiCache가 아니어도 상관 없으나 테스트는 ElastiCache Redis로 진행 ALB + 2대의 Tomcat 서버 준비 (정상동작 확인 후 진행) 작업 전 반드시 스냅샷 생성 (백업 용도) 참고자료 https://github.com/ran-.. 2023. 12. 1.
Python의 데코레이터 데코레이터는 Python의 가장 강력한 기능 중 하나로, 메타프로그래밍을 가능하게 합니다. 함수나 메소드의 동작을 변경하거나 확장할 수 있는 데코레이터를 통해 코드의 재사용성과 가독성을 크게 향상시킬 수 있습니다. 본 게시물에서는 Python의 데코레이터에 대한 기본적인 이해와 활용 방법을 알아보겠습니다. 데코레이터란? 데코레이터는 다른 함수를 감싸는 함수로, 감싸진 함수의 동작을 변경하거나 확장할 수 있습니다. 이를 통해 기존 함수의 코드를 수정하지 않고도 새로운 기능을 추가할 수 있습니다. Python의 데코레이터는 기본적으로 함수나 메소드를 인자로 받는 함수입니다. 이 함수는 래핑된 함수에 추가적인 기능을 부여하거나 수정하고, 이를 반환합니다. 데코레이터는 @ 기호를 사용하여 적용됩니다. 이는 해당.. 2023. 11. 24.
Python의 타입 힌트 Python의 유연성은 많은 개발자에게 사랑받는 이유 중 하나지만, 크고 복잡한 코드베이스에서는 종종 버그를 야기할 수 있습니다. 타입 힌트(Type Hinting)와 정적 타입 검사(Static Type Checking)는 이러한 문제를 해결하기 위한 강력한 도구입니다. 현대의 Python 개발 환경에서 타입 힌트는 코드의 가독성과 유지 보수성을 크게 향상시킵니다. Python은 기본적으로 동적 타입 언어지만, Python 3.5 이상부터 타입 힌트(type hint) 기능을 통해 변수, 함수의 인자, 그리고 반환 값에 대한 타입 정보를 제공할 수 있게 되었습니다. 이번 게시물에서는 Python에서 타입 힌트를 사용하는 방법과 그것이 개발 프로세스에 어떻게 도움이 되는지를 알아보도록 하겠습니다. 타입 .. 2023. 11. 10.
리눅스 서버 보안 설정 베하~ BTC 현상수배범입니다! 이번 시간에는 서버에 접속할 때 SSH를 이용하게 되는데, 이때 root 계정에 대한 무작위 패스워드 입력 등의 해킹시도가 있을 수 있습니다. 따라서 root 계정과 관련된 보안 설정 2가지를 실습해보도록 하겠습니다. [참고자료] https://docs.3rdeyesys.com/compute/ncloud_compute_server_ssh_security_setting.html 1. vi /etc/ssh/sshd_config 설정 값 변경 내용 - root 로그인 차단 - 패스워드 로그인은 차단하고 Key 파일을 이용한 로그인만 허용 - 로그인 시도 횟수 3회로 제한 2. 설정을 수정하고 파일을 저장한 후에 sshd 데몬을 재시작 - systemctl restart sshd.. 2023. 11. 8.
Python에서의 메모리 관리와 가비지 컬렉션 Python은 메모리 관리와 가비지 컬렉션에 대한 효율적인 시스템을 갖추고 있습니다. 이러한 메모리 관리 체계는 Python 프로그램의 성능과 안정성에 큰 영향을 미칩니다. 이번에는 Python의 메모리 관리 체계와 가비지 컬렉션에 대해 알아보겠습니다. Python의 메모리 할당 Python에서 객체가 생성될 때마다, 해당 객체에 대한 메모리가 동적으로 할당됩니다. Python의 내부 메모리 할당자는 이러한 객체 생성 및 삭제를 효율적으로 처리하기 위한 여러 전략을 사용합니다. 참조 카운트 Python의 주요 메모리 관리 방식 중 하나는 참조 카운팅입니다. 객체가 다른 객체에 참조될 때마다 해당 객체의 참조 카운트가 증가하고, 참조가 해제될 때마다 감소합니다. 참조 카운트가 0이 되면 해당 객체는 메모리.. 2023. 10. 27.
CloudWatch에서 EC2 Memory 지표를 볼 수 있도록 세팅 베하 BTC 현상수배범입니다~ ! 오늘은 CloudWatch에서 EC2 Memory 지표를 볼 수 있도록 세팅하는 작업을 진행 해보겠습니다. CloudWatch Agent 작업은 다음 순으로 진행됩니다. IAM Role 생성 EC2 인스턴스에 IAM Role 연결 EC2 인스턴스에 CloudWatch Agent 설치 CloudWatch Agent로 메모리 사용량 확인 IAM Role 생성 IAM에서 역할로 들어간 다음「역할 만들기」버튼을 클릭합니다. EC2를 선택하고 다음으로 넘어갑니다. 「CloudWatchAgentServerPolicy」정책을 검색해서 선택합니다. 적당히 역할 이름을 써주고「역할 만들기」버튼을 클릭해서 역할을 생성합니다. EC2 인스턴스에 IAM Role 연결 역할을 연결할 EC2 인.. 2023. 10. 13.