[AWS] Site-to-Site VPN 구성하기 aws workshop studio의 [PRD] 2024 ConntectX for Partners - Hybrid Network using AWS VPN의 lab을 정리한 내용이다. 시나리오는 다음과 같다. AnyCompany는 현재 서울에 본사(headquater, HQ)를 두고있으며 On-prem IDC 또한 서울에 위치하여 사용하고 있습니다. 1) 클라우드 워크로드의 도입으로 인하여 AWS로의 마이그레이션이 이루어지고 있지만 여전히 IDC의 몇몇 데이터 및 워크로드가 필요합니다. 2) 또한, 브라질 상파울루 오피스와의 안정적인 네트워크 연결이 필요하나, 물리적으로 매우 먼 거리와 현지 공인망의 불안정성으로 인하여 네트워크 상황이 불안정합니다. 3) ..
[AWS] Site-to-site VPN AWS Site-to-site VPN을 이용하면 on premise의 데이터 센터 혹은 지점과 AWS 클라우드 리소스 사이에서 안전한 네트워크 연결을 생성할 수 있다. AWS S2S VPN은 2개의 터널을 사용하여 고가용성을 지원하고, IPsec 및 TLS 터널과의 안전한 프라이빗 세션을 설정할 수 있다. Site-to-Site VPN 구성 요소 Site-to-Site VPN 연결은 AWS측의 가상 프라이빗 게이트웨이 또는 Transit Gateway와 on-prem측의 고객 게이트웨이 사이에 두 개의 VPN 터널을 제공한다. 1. 가상 프라이빗 게이트웨이 혹은 Transit Gateway AWS 환경을 VPN으로 연결 할 Endpoint 가상 프라이빗 게이트웨이..
[etc] VPN (Virtual Private Network) VPN(가설 사설망)은 사용자가 사설망에 연결된 것 처럼 인터넷에 액세스할 수 있도록하는 인터넷 보안 서비스다. VPN을 이용하면 사용자의 인터넷 연결을 안전하게 보호하고 개인정보를 보호할 수 있다. VPN의 작동 방식 VPN 연결은 특정 프로토콜(OpenVPN, IPsec, L2TP/IPsec)을 사용하여 이루어진다. 사용자가 접속하는 장치(클라이언트)와 VPN 서버는 서로의 존재를 알고 통신을 위해 구성되어야 한다. 클라이언트와 서버 간에는 인증 및 보안 키 교환과정이 이루어진다. 연결이 확립되면 클라이언트와 서버 간에는 암호화된 터널이 형성된다. 이 터널을 통해 데이터가 전송되며, 외부에서는 이를 해독하기가 어려워진다. 클라이언트가 보..
[Docker] Docker 이미지 빌드를 위한 Makefile 활용 방법 도커 이미지를 빌드 할 때 Makefile을 사용하면 자동화된 빌드 프로세스를 구성할 수 있다. 이를 통해 반복적인 작업을 간소화하고 일관성 있는 빌드를 유지할 수 있다. Makefile 작성하기 Makefile은 빌드 프로세스를 정의하고 관리하는데 사용된다. IMAGE_NAME := my-docker-image IMAGE_TAG := latest build: docker build -t ${IMAGE_NAME}:${IMAGE_TAG} . run docker run -it ${IMAGE_NAME}:${IMAGE_TAG} clean docker rmi ${IMAGE_NAME}:${IMAGE_TAG} build : 도커 이미지를 빌드..
[Git] Script에 권한 준 채로 push하기 로컬에서 쉘 스크립트를 git으로 배포할 때, 권한 업데이트를 한 채로 push를 할 수가 있다. 권한 확인 현재 디렉토리에 위치한 파일들의 퍼미션을 확인할 수 있다. 권한이 가장 왼쪽에 숫자로 표시가 된다. git ls-tree HEAD 권한 추가 git update-index --chmod=+x test.sh 권한 제거 git update-index --chmod=x test.sh 참고 https://brownbears.tistory.com/612
[Python] ImportError: cannot import name 'JSONDecodeError' from 'requests.exceptions' python3.7 --> 3.10 으로 버전 업그레이드 이후 conda 명령어 사용 시 해당 에러가 발생하면서 conda 명령어가 실행되지 않았다. 알고보니 requests 라이브러리의 2.27.0 버전 이후 부터 JSONDecodeError 예외가 추가되어서, 버전이 낮아 실행이 되지 않는 것이였다. 2.27.0 이상 버전으로 재설치를 하면 해결이 된다. pip install requests==2.28.2 참고 https://community.streamsets.com/community-articles-and-got-a-question-7/import..
[Git] 작업 디렉토리가 아닌 곳에서 git 명령어 사용하기 스크립트 작업을 할 때, git 디렉토리가 아닌 곳에서 git 명령어를 사용해야 하는 경우가 있었다. 작업 디렉토리가 아닌 곳에서 git 명령어를 사용하는 법은 간단하다 -C 옵션을 사용하면 된다. git -C pull ex) git -C /home/ubuntu/git_test pull
[Linux] conda : command not found ubuntu 환경에 conda를 다 설치했는데 명령어를 찾을수 없다는 에러가 발생했다. 알고보니 설치 폴더가 환경 변수에 등록되지 않았기 때문에 발생한 에러였다. 다음과 같이 path를 설정해주면 conda 명령어를 사용할 수 있게된다. export PATH=~/anaconda3/bin:$PATH
[Linux] nohup nohup 명령어는 터미널과의 세션이 끊기더라도 프로세스가 계속 동작하게 해준다. 사용 방법은 다음과 같다. nohup python test.py & 실시간으로 로그를 확인할 수도 있다. nohup python -u test.py & tail -f nohup.out
[Git] git push --set-upstream origin main git에서 push를 할 때, 다음과 같은 에러가 발생했다. 이유를 찾아보니 원격 저장소에 기본 branch 설정을 해주지 않아서라고 한다. To push the current branch and set the remote as upstream, use git push --set-upstream origin main To have this happen automatically for branches without a tracking upstream, see 'push.autoSetupRemote' in 'git help config'. 해결방법은 다음과 같이 기본 브랜치를 설정해주거나, git push --set-upstream ..
[Git] Gitlab API로 Merge Request 업데이트 하기 앞선 포스팅에서 CLI로 Merge Request의 리스트를 가져오는 방법을 알아봤다. 이번엔 Python의 requests 라이브러리를 사용해서 이미 생성되어있는 Merge Request를 업데이트 해보고자 한다. 업데이트 할 수 있는 항목은 아래 docs에서 확인 할 수 있다. https://docs.gitlab.com/ee/api/merge_requests.html#update-mr Merge requests API | GitLab GitLab product documentation. docs.gitlab.com import requests import json url = http:///api/v4/projects//merge_..
[Python] JSON 파일 파싱하기 데이터 교환 형식으로 JSON을 많이 사용하고 있는데, Python에서 이를 파싱하여 데이터를 처리하는 방법을 알아보고자 한다. 먼저 json 라이브러리를 import 해준다. import json 다음과 같은 JSON 데이터가 있다고 가정해보자. { "person": { "name": "John Doe", "age": 30, "address": { "city": "New York", "zipcode": "10001" }, "contacts": [ { "type": "email", "value": "john@example.com" }, { "type": "phone", "value": "555-1234" } ] } } 단일 값 파싱 하나의 값에 접근하는 방법은 다음..