개발공부/DevOps(8)
-
Java Parallel Stream(병렬 스트림)
Parallel Stream(병렬 스트림) 회사 코드 리뷰를 하던 중 팀원이 parallel stream을 사용하신 것을 봤습니다. 문서를 보니 여러 스레드를 병렬로 실행해 성능이 높아지는 원리라고 인지했습니다. 그리고 나서 foreach문에 적용해봤는데 성능이 약 5배 가까이 좋아지는 것을 보고 동작 원리를 자세히 알아보았습니다. 본 글의 주된 내용은 참고자료 링크에 표기된 oracle 사 Java Magazine을 참고했습니다. Stream의 두 종류 sequential stream : 싱글 스레드를 사용해 element를 순차적으로 처리. 싱글 코어 CPU 사용. parallel stream : stream을 여러 substream으로 나눠 처리. 멀티 스레드를 사용해 stream 파이프 라인을 실..
2023.05.28 -
블루 그린 무중단 배포 적용기
블루 그린 배포방식 적용기 AWS blue-green 이유: 사내 AWS ec2 인스턴스와 ELB(Elastic Load Balance) 사용중 Auto Scaling 전통적인 DNS 방식보다 세분화 돼있지 않지만, Auto Scaling groups를 설정해 실행할 수 있단 장점이 있습니다. health checks를 통해 비정상적 인스턴스가 있으면 새 인스턴스를 구동해 maximum 인스턴스를 유지합니다. 배포할 때 green 인스턴스를 ELB(Elastic Load Balancer)에 추가해주면 LB는 green 인스턴스를 선호하기 때문에 트래픽을 green 인스턴스로 보냄 green 인스턴스를 Auto Scaling group에 추가할 때 blue 인스턴스는 종료하거나 스탠바이 상태에 둡니다. 롤..
2023.05.09 -
[AWS] AWS VPC 작동원리(서브넷)
AWS VPC 작동원리(서브넷) 서브넷은 하나의 AZ에 생성 가능합니다. public 서브넷은 외부 인터넷으로 연결이 가능하지만 private 서브넷은 VPC 내부에서만 연결이 가능합니다. Internet Gateway는 인터넷으로 나가기 위해 거치는 통로라고 생각하면 됩니다. route table은 유입된 트래픽을 어디로 보낼지 알려주기 위해 저장하는 테이블 입니다. 가령 내부 private subnet(local)로 접근할 수 있는 ip를 설정해주거나 igw(Internate GateWay)를 통해 외부로 보낼 수 있는 ip 대역을 설정할 수 있습니다. NACL과 SG는 보안에 관련된 네트워크인데 전자는 stateless, 후자는 stateful이란 차이가 있습니다. 따라서 특정 ip를 차단하고 싶다..
2021.10.31 -
[Network] Subnet & CIDR(Classless Inter-Domain Routing)
Subnet & CIDR(Classless Inter-Domain Routing) 네트워크에서 Subnet이란 용어는 IPV4의 늘어나는 ip 사용자에 따라 서브 네트워크를 할당해 네트워크 효율성을 높이는 네트워크 안의 네트워크 입니다. IPV4는 2^32 비트로 이루어진 주소입니다. ex) 255.255.255.255 각각의 .은 옥텟을 구분하기 위함이며 옥텟은 0~255 사이의 값을 가집니다. CIDR은 서브넷을 나눠 사용할 때 표기하는 방식입니다. 예를 들어 C 클래스 타입의 IPV4를 두 개의 서브넷으로 나눌 때 211.11.124.0/25와 211.11.124.128/25로 구분할 수 있습니다. 슬래쉬(/)를 기준으로 앞 부분은 서브넷 주소의 첫 시작을 의미합니다. 슬래쉬 뒤에 있는 숫자는 서브..
2021.10.31 -
[Nginx] Nginx와 프록시
Nginx와 프록시 클라이언트 레이어(vue, javascript, react...등)서비스를 빌드 하는데엔 여러 방법이 있습니다. 회사 서비스를 테스트 서버에 빌드 후 실행하는 작업을 앞두고 있어서 관련 medium 아티클을 참고해보려 합니다. Vue와 Java(Spring boot)서버를 빌드/실행하는 방법 중 Vue static content를 NGINX 웹 서버를 이용해 빌드하는 방법을 택했습니다. NGINX는 웹 서버를 실행시키고, 프록싱, 캐싱, 로드 밸런싱, 미디어 스트리밍등을 위한 오픈 소스 소프트웨어 입니다. 웹 서버의 성능 최적화를 위해 디자인 되었습니다. 또한 HTTP 서버 가용성은 email(IMAP, POP3, SMTP)를 위한 기능으로 사용할 수 있으며 HTTP, TCP, UDP..
2021.10.29 -
[AWS] chmod in WSL Not Working
chmod in WSL Not Working 윈도우 파일시스템을 리눅스 명령어로 chmod, chwon 권한설정을 해줄 수 있는 방법입니다. AWS EC2 인스턴스에 접근하기 위해선 비대칭 키 방식을 사용하는데, 발급받은 키 페어(.pem)을 개인키로 사용해 퍼블릭 ip로 접근할 수 있습니다. 명령어는 ssh -i [.pem 파일명] [EC2서버 root 이름]@[EC2서버 ip]로 접근할 수 있습니다. 참고자료 MicroSoft
2021.10.27