[우리 FISA] 클라우드 서비스 개발 - 13주차

이승준·2025년 4월 6일

회고록

목록 보기
12/21
post-thumbnail

월요일





Cloud란?

  • OnPremise 방식의 단점(관리, 확장성)을 해소하고자 외부 업체가 컴퓨팅 리소스를 제공해주는 방식이다.
  • Cloud 서버 인프라 및 서비스를 제공하는 전문 업체를 CSP라고 부른다.
    • 대표적으로 AWS,Naver,KAKAO,GCP가 존재.
  • 직접 서비스를 보유하진 않지만, 중개하여 서비스를 제공하는 곳을 MSP라고 부른다.




CSP

  • AWS
    • 가장 오래된 서비스, 점유율이 가장 높다.
    • IaaS에서 높은 수준의 자동화,보안 및 확장성을 갖춘 클라우드 제공하고, 서버리스(람다),거버넌스 통합 관리 기능등을 제공함.
  • Azure
    • MS사에서 제공하는 클라우드 서비스 쉬운 UI와 플랫폼 서비스에 강점이 있다.
    • MS제공 시스템을 이용하는 경우 학습과 클라우드화가 빠르고 쉽다는 것이 장점.
  • GCP
    • 스타트업이나 오픈소스 기반으로 새로운 기술 연구에 적합하다고 함.
    • AI, 빅데이터로 투자를 상당히 진행중.
    • ML 파이프라인 없이 쉽게 ML 작업을 할 수 있도록 통합 서비스 제공.
      • 느낌상, 최근에 나왔고 상대적으로 검증이 덜 된 느낌?




MPS

  • CSP가 인프라를 제공한다면 MSP는 기존의 인프라를 클라우드로 어떻게 옮길지, 어떻게 인프라규모를 설정할지 컨설팅하고 운영까지 담당해주는 업체를 의미한다.
    • 난 CSP를 공유 사무실을 제공해주는 업체로 이해했고, MSP를 이 사무실 관리하는 업체로 이해함. 이사짐은 어디에 어떻게 배치하고 가전 가구는 어떻게 연결할지 등을 책임지고, 어떤 사무실의 형태나 규모를 컨설팅해주는 이후, 불만사항까지 해결을 담당하는게 MSP라고 비유적으로 이해했다!




"[  ] as a service"

  • 클라우드 환경 기반 서비스의 적용 범위에 따라 서비스를 구분한다.
  • Infrastructure, Platform, Software, Container, Function, AI, Banking 등이 [ ] 안에 들어갈 수 있음.
  • IaaS
    • 인프라 환경까지만 제공하는 서비스, AWS EC2가 대표적
    • 이후 OS 설치부터는 사용자가 담당해야함.
  • PaaS
    • 애플리케이션을 실행할 수 있는 환경까지 제공
    • AWS Elastic Beanstalk가 대표적
      • 빈즈토크는 War같은 애플리케이션 번들파일을 업로드 하면 자동으로 실행할 수 있도록 환경을 구성해주는 서비스. 뿐만 아니라, 로드밸런싱, 프로비저닝, 모니터링까지 한 번에 해줌.
  • SaaS
    • 서비스 자체를 제공하는 소프트웨어. 설치하지 않아도 사용가능.
    • Gmail,Miro, 스프레드 시트



Aws Review

  • Region
    • 서버가 위치한 '지리적 지역'
    • ap-northeast-2
  • Availability Zone
    • Region 안의 '서버 방'
    • ap-northeast-2a
  • VPC
    • 고유한 계정 전용의 가상 클라우드 공간

월요일엔 AWS 인스턴스 만들고, EC2 인스턴스 띄워서 spring 애플리케이션을 git pull 받아서 돌려보는 실습을 진행했다. 어려운건 없었어서 SKIP





화요일

Jenkins

  • CI/CD에 사용되는 오픈소스 프로그램
  • 파이프라인을 제공한다.
  • 소프트웨어 사이클에서 반복적으로 수행해야할 작업들을 자동화 해줌.
  • JRE 기반으로 동작
  • Task들을 자동화하기 위한 다양한 플러그인 제공(SSH Agent)




실습

  1. EC2에 레포지터리 PULL, docker로 젠킨스 설치 (젠킨스 전용 서버)

  2. 또 다른 인스턴스 생성 후 JDK 설치 (실제 운영환경)

  3. 젠킨스 파이프라인 구성

    1. push 이벤트 감지하여 레포지토리를 pull 받고 빌드하여 jar 파일을 운영환경으로 전송후, deploy.sh 스크립트를 실행하여 운영소스 최신화

      #!/bin/bash
      
      pid=$(pgrep -f java)
      
      if [ -n "${pid}" ]
      then
             kill -15 ${pid}
             echo kill process ${pid}
      else
             echo no process
      fi
      chmod +x ./mydemo/demo-0.0.1-SNAPSHOT.jar
      nohup java -jar ./mydemo/demo-0.0.1-SNAPSHOT.jar >> application.log 2> 		/dev/null &
    2. 두 인스턴스 간의 연결을 위해 SSH Agent 플러그인 사용 , pem키를 미리 교환해두어 SSH 접속 허용

  4. Github WebHook 설정

  • push 이벤트마다 젠킨스 서버에 파이프라인을 실행 시키도록 설정.

어려웠던 점

  • 키 교환을 cat해서 복붙하는데 띄워쓰기 하나에도 오류가 발생해서 당황했다.
  • 파이프라인 스크립트 문법이 미숙해, 실제 파이프라인이 동작하고 deploy.sh 파일을 실행시킬때 경로가 안맞았는데 이걸 못 찾아서 2시간이상 버림..

그래도, CI/CD를 가볍게 배워봐서 좋고 이번 실습을 바탕으로 다양한 파이프라인을 구축해보고 장단점도 비교해서 적절하게 사용을 고려해보자!




수요일


간만에 소풍가는 기분~ 숨통 트였다




데이터 센터 견학

맨날 FISA 갈 때마다 우리은행 건물 보는데 저긴 대체 뭐가 있는걸까 궁금했는데 그걸 해소했다 ㅋㅋ

데이터센터 들어가기 전에, 내년에 은퇴하시는 팀장님께서 우리은행 상암센터에대해 소개와 가벼운 커멘트를 해주셨다.

데이터 센터는 상당히 규모가 컸고, 발전, 냉각 , 배터리 , 화재 대비등 정말 다양한 대비 체계가 갖춰져 있었고 여담으로 전기세가 얼마나 나오는지도 말씀해주셨다 이렇게 큰 데이터를 관리하는 시스템의 규모를 눈으로 보게되는 소중한 경험 현직자들도 퇴직할 때 까지 못보는 경우도 많다고 하셨다.




1기 선배 취업 특강

5명, 내가 질문한거 필살기, 설계시 어려웠던 점, 인상깊었던 말 내가 팀에서 원하는 포지션 못 맡아도 내거 빨리끝내고 뺐어야지 그정도 적극성은 있어야지. 누가 잘하고 내가 잘하고 이런건 안중요하다 결국 완성해내는것이 중요하고 이게 끝이라고 생각말고 발표회이후에도 부족한 부분은 디벨롭하고 이어가기위해 노력하는것도 좋다고 생각.

총 5분의 선배님이 계셨고, 4분이 클엔 1분이 AI 였다.

Q&A 위주로 진행됐고, 나는 파이널 프로젝트를 앞두고 있는데 설계에 얼마나 시간을 들여야할지 가장 어려웠던 점은 뭔지 그럼 그걸 해소하기 위한 팁을 여쭤봤다. 그리고, 취준시기에 면접이나 서류상의 본인만의 필살기는 어떤거였는지 궁금해서 여쭤봤다.

  • 인상깊었던 내용은 팀에서 핵심기능을 담당하지 못했다면, 내가 할 거 빨리하고 뺐자! 좋은의미에 뺐음 이런 마인드가지는게 참 부럽다 약간의 자격지심을 느낄 수 있을 것 같은데
  • 필살기 질문엔 5분 다 말씀해 주셨는데, 본인의 단점을 객관화하고 오히려 난 비전공자이지만 FISA 과정을 통해 빠르게 성장했다 -> 빠르게 성장하는 인재로 어필했다는점이 인상깊었다.
  • 가장 오른쪽 멘토분이 3기에도 있었던데 너무 재밌고 분위기 자체를 편하게 이끌어가주셔서 좋았다.




우리금융그룹 현직자와의 대화

  • 본인의 얘기를 해주셨고 자소서부터 면접까지 전체적으로 Q&A와 조언을 해주셨다.
  • sli.do 서비스를 사용해서 아이스브레이킹도 진행했는데, 이거 클론코딩으로 프로젝트했었어서 반가웠다.

기억에 남기고 싶은 내용은

  • 본인의 연대기를 작성하고 경험 하나하나 곱씹고 활용하라.
  • 부족한 부분이 있으면 채워나가라
  • 다른 지원자보다 한 발짝만 앞서나가면 된다.
  • "20대때 술 한 방울도 안마셨어요"

재밌고 편안한 분위기 속에서도 뼈있는 조언과 충고를 해주셨다. 세 분다 포스가 범상치 않았는데, 동시에 굉장히 자신감에 찬 눈빛과 에티튜드가 간지났다. 내 추구미와 가까워서 개인공부 하다가도 눈이 끌려갔다




목요일

DVWA

  • Docker를 사용해서 방화벽 기능 테스팅 애플리케이션을 설치했다.
  • 의존성을 설치해야 하는데, 우린 설치가 주목적이 아니기에, 도커로 가볍게 설치함.




취약점 테스트

' OR 1=1 #

UserId 칸에 위의 스크립트를 입력하면 모든 유저 정보가 조회된다. (SQL Injection 발생)

  • 실제쿼리는 SELECT * FROM users WHERE userid = '' OR 1=1 #';로 요청이 됨.
  • ''는 빈 문자열이니 항상 false -> 1=1은 항상 TRUE이고 #은 뒤의 쿼리를 주석처리하게 됨.
  • 모든 조건이 참이되어 모든 유저 정보가 조회됨.




WAF (Web Application FireWall)

  • 불법적인 접근을 차단하는 앞단의 보안장치
  • 초기에는 하드웨어 중심이였으나, 현재는 소프트웨어 기반으로 동작하여 다양한 하드웨어에서 실행됨.
  • 초기 목적은 네트워크 트래픽의 제어였으나, 웹 애플리케이션을 보호하는 역할로 세분화됨.
    • CSRF,XSS, SQL Injection 등



AWS WAF 서비스

  • 방화벽과의 차이는 특정 IP, 포트에 대한 차단 뿐만 아니라 SQL 인젝션, XSS같은 공격코드를 감지하고 차단하는 역할도 수행함.
  • WAF는 HTTP 요청을 감시하고 탐지하는것 즉, L7 계층에 붙일 수 있다. 게이트웨이던 로드밸러서든 인스턴스 앞단에 어떤 장치가 필요
    • 우리 실습 플로우에선 로드밸런서에 WAF 부착




Load Balancer?

  • 부하를 분산한다는 의미로, 트래픽을 여러대의 서버로 적절히 분산하는 것이다. L4,L7으로 구분된다.
  • 하나의 줄이 길어지면 다른 줄로 보낸다고 생각하면 편하다.




ELB (Elastic Load Balancer)

  • AWS에서 제공하는 로드밸런서로, 상황에 맞게 유연하게 사용할 수 있도록 가상화하여 제공함.
  • ALB,NLB로 나뉜다.

ALB?

  • 애플리케이션 (L7)레이어의 로드밸런서로 /로 나뉘는 경로에 따라 트래픽을 보내주는 것이다.
  • 예를들면 /products는 상품을 찾는 서버로 /cart는 장바구니를 조회하는 서버로 트래픽을 보내준다.
  • 최근 MSA를 자주 듣게 되는데, 그런 환경에서 앞단에 로드밸런서를 두고 요청 경로에 따라 적절한 서버로 프록시 해주는것같다.
  • 각 서비스의 특성에 맞게 서버를 다르게 둘 수 있는게 장점인듯하다.
    • 장바구니는 오랫동안 정보를 저장해야하니 세션을 길게 끌 수 있는 서버로 구성
    • 상품 조회 서버는 이미지나 비디오가 포함되니 빠르고 가벼운 서버로 구성

NLB?

  • 네트워크단에서 일어나는 로드 밸런싱으로, TCP/IP가 주 타겟이다.
  • 앱단이 아니라 네트워크에서 발생하기 때문에, IP, PORT로 트래픽을 나눠준다.
  • 이런 방식의 장점은 서버마다 고정 IP를 두고, 앞단의 NLB에 퍼블릭 IP를 두어서 서버마다 요청 IP를 확인하고 접근 권한을 관리할 수 있다. 또한, ALB보다 훨씬 빠르게 프록시를 수행하여 고성능 서비스에서 사용한다.




실습

  • AWS ALB를 인스턴스(DVWA) 앞단에 설치하고, ALB의 대상그룹 설정을 인스턴스로 설정
  • ALB에 WAF를 설치하여 ACL로 AWS에서 제공하는 SQL Database룰 설정
  • DVWA 서버 다시 접속후 SQL 인젝션 시도 -> WAF에서 공격이 차단되는지 테스트

결과


  • 실제로 보안의 취약점을 공격해보고 클라우드 서비스를 사용해 쉽고 빠르게 방어해보았다. 진짜 배포해서 운영하다보면 이런 보안적인 측면을 방어해야 할 일이 생길텐데, 정처기를 통한 수동적 학습보다 이렇게 실제로 느껴보니까 보안학습의 중요성을 더욱 깨닫게 된 것 같다.




금요일

오늘은 파이널 프로젝트 팀 빌딩을 했다.
혹시 다음 기수할 사람이 볼 수 있으니 선정방식은 비밀

  • 프로젝트 팀 선정할 때 바란 점은 일단 편했으면 좋겠다고 생각했고, 올인할 수 있는 사람 이게 다였다.
    다른 사람이 의지가 없으면 나도 열정이 식는 경우가 허다했어서 끝까지 으쌰으쌰 해줄 사람이 필요했는데 그런면에서 최고의 팀이 아닌가 싶다. 아자아자

Ref

profile
들은것은 잊어버린다 본것은 기억된다 해본것은 내것이 된다

0개의 댓글