기타 42

[Redmine on AWS] Bastion Host 생성

Subnet, IGW, NAT GW 등 기본적인 VPC 구성이 완료되었으므로, 이제부터는 EC2를 구성해나갈 것이다. 이번 글에서는 Public Subnet에 위치할 Bastion Host를 생성할 것이다. Bastion Host 네트워크 내외간의 게이트웨이 역할로, 네트워크 내부를 직접 접속하는 것을 방지하기 위해 네트워크 앞단에 위치하고 있다. Bastion Host는 외부 접속이 필요하므로 Public Subnet에 EC2로 생성할 것이며, 접속을 위한 Public IP 할당이 필요하다. 생성 방법 1. AWS EC2 서비스 접근 > 인스턴스 시작 버튼 클릭 2. 사용할 AMI를 선택한다. 프리 티어를 사용하고 있다면 프리 티어를 지원하는 AMI 중에 선택해야 한다. 참고로 AWS Linux 2 A..

[Redmine on AWS] NAT Gateway 생성

NAT Gateway NAT(Network Address Translation)은 패킷의 IP, Port 등을 변환하는 기술을 뜻하며, 주로 Private Network가 외부의 Public Network와 통신하기 위해 사용된다. 인스턴스의 펌웨어나 업데이트를 위한 outbound 트래픽을 허용하기 위함으로, NAT 게이트웨이는 Private Subnet에서 외부로 요청하는 아웃바운드 트래픽을 받아 인터넷 게이트웨이로 연결한다. AWS에서 NAT를 사용하는 방법에는 두 가지가 존재한다. NAT Gateway : AWS VPC 내 NAT Gateway 사용 NAT Instance : EC2 인스턴스를 NAT용으로 생성하여 사용 NAT Gateway가 NAT Instance보다 고가용성을 보장하기 때문에 ..

[Redmine on AWS] Internet GW/Routing Table 생성

이 글에서는 VPC에 존재하는 인터넷 게이트웨이를 생성하고 활성화하는 방법을 정리해둔다. Internet Gateway VPC의 인스턴스와 인터넷 간에 통신을 할 수 있게 하는 VPC 구성 요소이다. 생성 및 활성화 1. VPC 서비스 왼쪽 메뉴에서 인터넷 게이트웨이를 클릭한 후, 인터넷 게이트웨이 생성을 클릭한다. 2. 인터넷 게이트웨이를 식별할 이름을 지정한 후, 인터넷 게이트웨이 생성을 클릭한다. 3. 생성한 인터넷 게이트웨이를 활성화하기 위해서는 사용할 VPC에 연결시켜주어야 한다. 오른쪽 상단의 작업 버튼을 클릭해 VPC 연결을 클릭한다. 4. 연결할 VPC를 선택한다. Routing Table 라우팅 테이블은 Subnet에서 외부로 나가는 Outbound Traffic에 대한 경로를 설정하기 ..

[Redmine on AWS] VPC/Subnet 생성

AWS에서 서버(EC2), DB(RDS) 등을 사용하기 위해서는 네트워크 공간인 VPC가 필요하다. 미리 정해놓은 아래 구조에 맞게 서울(ap-northeast-2) 리전에 VPC와 Subnet을 생성하려고 한다. VPC 생성 1. AWS Management Console에서 VPC를 선택한 후, 서울 리전을 선택한다. 메인 화면에 VPC 마법사 시작 버튼이 있지만, 왼쪽 메뉴에서 VPC를 클릭해 들어간다. 2. VPC 생성을 클릭한다. 3. VPC 설정 네트워크 주소를 직접 지정하기 위해 IPv4 CIDR 수동 입력을 체크하고 값을 설정한다. IPv6는 사용하지 않을 것으므로 없음을 체크한다. 이름을 포함한 별도 태그가 필요하다면 추가한 뒤, VPC 생성 버튼을 클릭한다. Subnet 생성 Multi-..

[Redmine on AWS] Architecture

개요 2020년 10월 즈음에 진행한 과제를 정리해두려고 한다. 💡 주의 AWS나 리눅스, 환경 설정 등에 대해 아무것도 모르는 사람이 진행한 것이기 때문에 잘못된 정보나 불필요한 과정이 포함되어 있을 수 있다. 요구사항 과제 요구 사항은 아래와 같다. Muti-tier 구조 => Web Server, WAS, DB 간 Subnet 구분 필요 Multi AZ 또는 Read Replicas 등을 이용한 DB 분산 배치 HA (High Availability; 고가용성) => AWS ELB 및 Auto Scaling 기능 사용 필요 구조 (Architecture) 요구사항을 만족할 인프라 구조를 아래와 같이 결정했다. 글 모음 1. 2022.02.10 - [Redmine on AWS] VPC/Subnet 생..

Chrome 제로데이 취약점 CVE-2021-30551

제로데이 공격; Zero-Day Attack 소프트웨어의 취약점을 공격하는 기술적 위협 해당 취약점에 대한 패치가 나오지 않은 시점에서 이루어지는 공격 CVE; Common Vulnerabilities and Exposures 공개적으로 알려진 소프트웨어의 보안 취약점을 가리키는 고유 표기 CVE-2021-30551은 2021년 6월 10일에 갓 공개된 따끈따끈한(……) 취약점이다. 실제로 공격에 이용되는 취약점이니 반드시 크롬 브라우저를 업데이트하도록 한다. 취약점 관련 정보 CVE Code : CVE-2021-30551 내용 : 구글의 오픈소스 C++ WebAssembly이자 JavaScript 엔진인 V8에 존재하는 유형 혼동 취약점이라는 정보 외 공개된 정보가 없다. 영향받는 버전 : 91.0.4..

기타 2021.06.13

Chrome 인증서 등록

크롬 브라우저가 자체 서명한 인증서를 사용할 수 있도록 인증서 등록 방법에 대해 적어둔다. 방법 1. 크롬 설정에 접근 오른쪽 메뉴 > 설정 클릭 2. 크롬 보안 설정에 접근 개인정보 및 보안 > 보안 클릭 바로 주소창에 chrome://settings/security을 입력해도 된다. 3. 고급 > 인증서 관리 선택 4. 인증서 가져오기 선택 5. 인증서 가져오기 마법사 진행 5.1. 가져올 인증서 선택 5.2. 인증서 비밀번호 입력 추후 암호를 백업하고 싶다면 관련 옵션도 선택할 것. 5.3. 인증서 저장 위치 설정 자동으로 선택하지 않으면 인증서 설치가 진행되지는 않는 것 같다. 5.4. 인증서 가져오기 마법사 완료 6. 인증서 설치 7. 인증서 가져오기 완료

기타 2021.05.30

crontab에 스크립트 실행 등록

cron 자동으로 실행하는 스케줄 crontab 스케줄 시간과 실행 파일 경로 관리 즉, crontab은 cron 실행에 사용하는 설정이라고 생각하면 되는 듯하다. 방법 1. 서버 시간 확인 사용 중인 서버 기준 시를 확인하여 KST 기준 매주 월요일 오전 9시에 실행될 수 있도록 한다. date 2. crontab 편집 crontab -e 2. 실행된 에디터에 아래 내용 추가 UTC를 사용하는 서버인 경우 아래와 같이 설정한다. 30 23 * * 0 ~/run-send-message-slack.sh 참고) 실행 주기 설정 * * * * * COMMAND ┬ ┬ ┬ ┬ ┬ │ │ │ │ └───────── 요일 (0 - 6) (0 =일요일) │ │ │ └────────── 월 (1 - 12) │ │ └─..

Python 코드 실행 스크립트 작성

작성할 스크립트 내용 python 코드 실행 실제 코드 #!/bin/bash /usr/bin/python3 ~/send-message-slack.py 맨 첫 줄의 #!/bin/bash는 bash shell을 이용해 스크립트를 실행하겠다는 의미이다. 두 번째 줄은 사용자의 홈 디렉터리에 위치한 send-message-slack.py를 python 3으로 실행한다는 의미이다. 스크립트 실행 및 결과 # run-send-message-slack.sh 실행 권한 부여 chmod +x run-send-message-slack.sh # run-send-message-slack.sh 실행 cd ~ ./run-send-message-slack.sh

python 코드 작성

1. 코드 작성 프로세스 1. 예외 처리 구문을 이용하여 1/0 시도 2. 예외 발생 시 slack으로 메시지 전송 필요 문법 try - except문 - 문법 형식 try: ... except 발생 오류 as 오류 변수: ... Slack 메세지 전송 - 필요 라이브러리 : request - 설치 방법 # python 3 사용 시 sudo pip3 install request - 코드 import requests # 함수 def send_message_to_slack(error): url = "SLACK_WEBHOOK_URL" username = "ec2.vim-test" # text = ZeroDivisionError : division by zero text = error.__class__.__na..

1 2 3 4 5