분류 전체보기 (176) 썸네일형 리스트형 [Shell Script] CLB 인스턴스 상태 및 등록, 해제하는 쉘 스크립트 업무 중 특정 고객사에서 CLB에 등록된 웹 서비스에서 배포 작업이 있을 때 팀 내 엔지니어가 서로 연락을 취하면서 1) CLB에 등록된 인스턴스 해제 2) A 웹 서비스 배포 및 서비스 재시작 3) CLB에 등록된 인스턴스 재등록 .. 4) B 웹 서비스 동일 작업.. 와 같은 작업을 하는 것을 보고 아래의 스크립트를 작성한 뒤 배포 개발자에게 최소한의 IAM Policy만을 부여한 IAM User로 쉘 스크립트를 돌리게 하면 어떨까 해서 작성하였다. (어려운 일은 아니지만 서로 연락하면서 시간 소비가 어느 정도 있다 보니...) 내가 주로 담당하는 업무는 아니기 때문에 개인적으로만 짜보았고 실 업무에 적용하지는 않았다. 혹여나 필요한 분이 있으시다면 필요한 부분 추가 및 수정해서 사용하면 될 것으로 .. [Javascript] 반복문 정리 반복문에는 다음의 종류가 있다. for for in for of forEach while 문 while do while Object 객체 메서드 Object.keys Object.values Object.entries Array.prototype 메서드 배열.forEach 배열.map 배열.filter // for for (let i = 0; i < 5; i++){ console.log(i * 2); } 0 2 4 6 8 // for in : 객체의 프로퍼티 키 열거 전용 // for (const key in 객체) {반복 수행 코드 ...} // 해당 객체가 상속받는 Prototype 체인 상의 모든 Property 키를 열거한다. (Enumerable이 False인 경우는 제외) const obj =.. [Ansible] 기본 개념 정리 Ansible은 Python Module 및 SSH를 사용하여 원격 호스트에 명령을 수행할 수 있도록 해주는 CM(Configuration Management) 도구이다. 별도의 Agent를 설치하지 않아도 되며 단순히 SSH 접속이 가능하면 편리하게 사용할 수 있다. (내부적으로 Python을 사용하게 되는데 대부분의 Linux에는 Python이 기본적으로 설치가 되어 있다.) 나는 Ansible을 사용하여 원격 Node에 명령어를 수행하기 전에 다음의 과정을 거친다. 1. ansible.cfg 파일 설정 및 확인 2. inventory 파일 생성 및 Group 변수, Host 변수 등 설정 3. ansible-inventory 명령어를 사용하여 정상적으로 호스트 및 그룹 등록이 완료되었는지 확인 4... [ElasticSearch] ElasticSearch 개념 알아보기 ElasticSearch는 Java 기반의 오픈소스이며 뛰어난 검색 능력과 대규모 분산 시스템을 구축 가능하며 모든 데이터를 색인하여 저장하고 검색, 집계 등 결과를 클라이언트에게 응답 또는 다른 프로그램으로 전달하여 동작할 수 있게 한다. 또한 Kibana와 연동하여 로그를 시각화할 수 있다. 용어 클러스터 : 하나 이상의 노드로 구성되며, 고가용성을 유지하기 위함. 각 노드들은 홀수개로 구성이 되어야 한다. 마스터 노드 : 인덱스의 메타 데이터, 샤드의 위치 등 클러스터의 상태 정보를 관리하는 노드 데이터 노드 : 실질적으로 데이터가 저장되는 노드 인제스트 노드 : 데이터를 변환하는 등 사전 처리 파이프라인을 실행하는 역할 도큐먼트 : 단일 데이터 단위 인덱스 : 도큐먼트들을 모아놓은 집합 (Indi.. [Lambda] AWS에서 발생하는 Event를 Slack으로 알림 받기 Account 내에서 IAM User 생성 및 삭제가 발생할 경우 관리자에게 Slack 메시지를 보내는 방법에 대해서 정리하였다. Slack Message 포매팅 및 전반적으로 수정할 부분이 많지만 처음으로 Slack과의 Message 연동을 한 과정이기 때문에 점차 개선되는 과정을 별도로 정리해볼 예정이다. AWS와 같은 Public Cloud는 모두 API CALL에 의해 동작이 수행되고 감시된다. ⇒ Security Group의 변경, 삭제, 생성은 물론 EC2, RDS, .. 모든 이벤트가 감시된다. 이런 Event가 발생하면 해당 Event 내용을 Lambda로 Trigger하고 Lambda에서 Event를 받아 내용을 Parsing 한 다음에 Slack API를 사용하여 Message를 보낼 .. [Python] sort() 함수 알아보기 sort() 함수는 Python의 내장 함수를 사용하여 정렬하는 방법이다. 사용 시 주의 사항 1. sort() 함수는 sorted() 함수와 다르게 Return Value가 존재하지 않음 2. Key 함수를 사용하면 List 내부의 Element에서 특정 조건에 따라 정렬할 수 있음 Sort 함수란? : 리스트 내부에 있는 요소들을 정렬해주는 함수 (Default : 오름차순) 사용법 sort(*, key: Optional[Callable[[_T], Any]]=..., reverse: bool=...) -> None list.sort() list.sort(reverse=True) list.sort(key = lambda x : x['age'], reverse=True) ... 예시 리스트에 sort 함.. [IAM] A 계정의 IAM 유저 리스트를 B 계정의 Lambda에서 조회하기 (Cross account - STS Assume role) 동일 계정내에서 A 리소스 → B 리소스에 접근하기 위해서는 고려할 사항이 적지만 멀티 어카운트에서는 고려해야 할 사항이 늘어나게 된다. A계정에서 B계정을 신임해야 하며, B 계정에서도 A 계정을 신임해야 한다. ⇒ STS: Assume Role에 대해 이해해야 함 A 계정 : 1111111111 B 계정 : 2222222222 이라고 가정하겠음 A 계정 Role 1. A 계정의 IAM User, 각각 IAM User들의 Access Key를 확인하도록 허용해주는 Policy 추가 { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListIAMUserandListAccessKeys", "Action": [ "iam:ListUsers", "iam:Lis.. [CICD / ECS] CodePipeline으로 ECS Fargate 배포 자동화 #6 - CodePipeline 설정 및 Blue/Green 배포 자동화 1. CodeDeploy에서 Target Group 및 기타 수정 아래의 편집 클릭 대상 그룹을 tg-B로 변경 코드 디플로이가 수행되고 Green 타겟 그룹에서 정상 트래픽 헬스 체크를 감지할 경우 Blue에서 Green으로 즉시 트래픽을 라우팅하며, Blue는 5분 동안 컨테이너를 남겨놓는다. 배포에 실패하는 경우 롤백하도록 롤백 설정 2. CodePipeline 생성 파이프라인 이름 설정 서비스 역할의 경우 기존에 생성해둔게 있으면 기존 서비스 역할 사용해도 무방하며, 없을 경우 새 서비스 역할을 생성해준다. 아티팩트를 저장할 위치를 지정해도 되고 기본 위치로 설정해도 된다. 소스 스테이지 추가 CodePipeline을 통해 소스 변경을 감지한다. 빌드 스테이지 추가 기 생성해준 CodeBuild로.. 이전 1 ··· 11 12 13 14 15 16 17 ··· 22 다음