[Tistory] 2024.02.27

원글 페이지 : 바로가기

1. 익명으로 주제 공모 후 선호하는 사람끼리 대화 후 대략적인 팀 구성

2. 그냥 주제 없이 팀 구성

3. 같은 팀 하고 싶은 사람 1명 정해서
주제 정해보고 주제에 대해 발표하면서 남은 2명 팀원을 구인 https://ap-northeast-2.console.aws.amazon.com/rds/home?region=ap-northeast-2#GettingStarted: https://ap-northeast-2.console.aws.amazon.com/rds/home?region=ap-northeast-2#GettingStarted: ap-northeast-2.console.aws.amazon.com 관계형 db를 간단하게 쓸 수 있다 aurora – aws에서 제공하는 db이며 mysql과 호환됨 우리는 이거 선택! 5버전대만 아니면 됨 암호 – 12341234 퍼블릭 엑세스 – 아무나 접근할 수 있는지 나머지는 그대로! 생성!!! 1. unit-testing 프로젝트를 EC2 로컬에 설치하여 RDS를 통해 서버를 실행할 수 있도록

EC2 생성
이름 – LIMSEONGSIL-rds-server
키, 보안그룹은 기존에 사용하던 것 활용 rds security 말고 그냥 원래거로 연결!! db 연결할 경로!! 엔드포인트가 localhost:3306/ 인셈! https://publish.obsidian.md/guguttemy/3.+Cloud/3.+AWS/1.+RDS/3.+EC2%EB%A5%BC+%ED%86%B5%ED%95%9C+RDS+%EC%A0%91%EC%86%8D 3. EC2를 통한 RDS 접속 – Service dev – Obsidian Publish 3. EC2를 통한 RDS 접속 – Service dev – Powered by Obsidian Publish. publish.obsidian.md mysql client =>mysql 접근할때의 프로그램 sudo apt-get update 패키지 매니저를 최신버전으로 갱신 sudo apt-get install mysql-client 보안그룹이란? – ec2 -> rds 로 접근해야하는데 ec2에서 들어오겠다는거에 대한걸 허용해줘야함 ec2서버에서 rds instance로 접근해야하니까 rds 보안그룹에 가서 접근할 수 있게 설정!! rds의 보안그룹에 설정해야함 inbound 로 해야됨!! – 이유는? : 들어오는거니까!!!! 외부에서 안으로 (아웃바운드는 내가 나가서,,) rds 로 가야함 처음에 들어가있는 3306dms 내pc에서 rds로의 허용이고 ec2에서 rds로도 허용을 해줘야함 그래서 rds 인스턴스의 프라이빗 주소를 가져와서 넣어줘야한다 mysql -u admin -p -h {엔드포인트 주소} h : 호스트 연결 완료 create database employees;

use employees;

CREATE TABLE `employees` (
`id` INT NOT NULL AUTO_INCREMENT,
`first_name` VARCHAR(20),
`last_name` INT(20),
`email` VARCHAR(20),
PRIMARY KEY (`id`)
);

insert into employees (first_name, last_name, email) values (‘gugu’, ‘ttemy’, ‘gugu@gmail.com’); git clone https://github.com/guguttemy/test.git sudo apt-get install openjdk-11-jdk sudo apt-get install maven mvn -version cd test mvn clean package vi 들어가서 변경 url
rds의 엔드포인트 주소

username
rds에서 생성한 계정이름(admin)

password
rds에서 설정한 비밀번호(12341234) 히카리가 db와 커넥션을 풀하려고하는데 db 연결이 제대로되지않았다면 jar 실행할때 오류남 -> 실행됐다면 연결이 잘 된거다!! WAF firewall 방화벽 – 누군가 불지르는걸 막는다,, – 하드웨어 형태였다가 소프트웨어 형태로 추상화됨 – 네트워크 트래픽을 제어 – 웹 애플리케이션 처리단에 대해 침입을 방지해준다 https://publish.obsidian.md/guguttemy/3.+Cloud/3.+AWS/2.+WAF/6.+WAF%2C+%EC%9B%B9+%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98+%EB%B0%A9%ED%99%94%EB%B2%BD 6. WAF, 웹 애플리케이션 방화벽 – Service dev – Obsidian Publish 6. WAF, 웹 애플리케이션 방화벽 – Service dev – Powered by Obsidian Publish. publish.obsidian.md waf – http, https 에서 보안과 관련된 처리를 aws에서 관리형태로 서비스 제공해줌 rds 인스턴스 일단 “일시적으로 중지” waf-server 생성 헷갈릴수도 있어서 보안그룹 생성 (다른창켜서) 보안그룹 이거로 선택 22번 포트 추가 DVWA https://github.com/digininja/DVWA GitHub – digininja/DVWA: Damn Vulnerable Web Application (DVWA) Damn Vulnerable Web Application (DVWA). Contribute to digininja/DVWA development by creating an account on GitHub. github.com -> 취약한 어플리케이션 도커 엔진 먼저 설치해야함 sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo “$VERSION_CODENAME”) stable” | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update 설치한대로 저장소 업데이트 도커 사용 준비 완! (설치전까지) sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker version 설치 끝나면 항상 버전 확인 sudo 를 매번 쓰기 귀찮으니까 도커에게 권한을 주자~~!!! 도커명령어가 있는 위치 file -> 파일인지 디렌토리인지 확인하는것 root 권한 sudo usermod -aG docker ubuntu 권한 줌 현재 켜있으니까 재부팅해야함 권한주기전 → permission denied while trying to connect to the Docker daemon socket 일반 사용자에게 docker 명령어를 실행할 수 있는 권한이 없음 권한 준 후 → 일반 사용자에게도 권한을 부여했기 때문에 Permission denied가 표시되지 않음 8080 으로 접근하면 80 으로 포워딩해줄수있게 변경 컨테이너 형태로 구동하게 해줌 docker compose up -d 알아서 이미지 받아와서 컨테이너 만들어주고 실행시켜주는것 하나는 db 컨테이너 하나는 어플리케이션 컨테이너 8080으로 실행되고있는거 볼 수 있음 인바운드 추가 퍼플릭 ip로 접근되는지 확인 13.125.174.235:8080 초기 계정, 비밀번호는 compose.yml에 들어있음 로그인하면 이렇게 뜸 한번 초기화해줌 ‘ OR 1=1 # 셀릭트 쿼리 날리는것 or 1 = 1 -> 무조건 true # : 뒤에 조건을 없앰 현재는 보안 레벨이 적용되어서 들어가지지 않음 -> Low로 바꾸고 Submit!! -> 보안에 취약한 상태가 됨 (SQL injection 취약) -> aws waf를 사용해서 적용해보겠다! 앞단에서 먼저 받아서 규칙 확인하고 허용되면 EC2한테 넘기고 아니면 블락! 분산 서비스 거부 공격(DDoS) => 이거도 찾아보기 로드밸런서의 DNS 주소로 날리면 EC2로 전달함 되면 거기에 규칙을 정해서 WAF -> Load Balancer -> EC2 https://publish.obsidian.md/guguttemy/3.+Cloud/3.+AWS/2.+WAF/10.+%EB%A1%9C%EB%93%9C%EB%B0%B8%EB%9F%B0%EC%84%9C+%EC%83%9D%EC%84%B1 10. 로드밸런서 생성 – Service dev – Obsidian Publish 10. 로드밸런서 생성 – Service dev – Powered by Obsidian Publish. publish.obsidian.md 사용자가 요청 날리면 ALB가 먼저 받아서,, 1 클라이언트가 애플리케이션에 요청을 보냅니다.
2 로드 밸런서의 리스너는 구성한 프로토콜 및 포트와 일치하는 요청을 수신합니다.
3 수신 리스너는 지정된 규칙에 따라 수신 요청을 평가하고, 해당되는 경우 요청을 적절한 대상 그룹으로 라우팅합니다. HTTPS 리스너를 사용하여 TLS 암호화 및 복호화 작업을 로드 밸런서로 오프로드할 수 있습니다.
4 하나 이상의 대상 그룹에 있는 정상 대상은 로드 밸런싱 알고리즘과 리스너에서 지정한 라우팅 규칙을 기반으로 트래픽을 수신합니다. 사용자로부터 요청이 왔을때 몇번 포트에 포트포워딩해줄지 정해주는애가 리스너!!!! (트래픽 전달해주는 역할) 대상그룹 = targett => EC2서버 가용영역 분산!!!!!!!!! 분산시켜놓는건 두개를 선택해서 하나에 혹시 문제 생기면 다른 하나로 바꾸는,, 가용영역 하나는 무조건 2c여야함 로드밸런서에 대한 보안그룹임!! 로드밸런서로 접근하면 알아서 EC2로 넘겨줌 보안그룹 생성 다시 로드밸런서로 돌아와서,, 리스너 : 기다렸다가 요청오면 EC2에게 전달해줌 대상그룹 생성 서버에 있는 어떤 포트로 연결할건데? 8080이니까 바꿔주기 다시 돌아와서,, 80에서 대기할건데 이걸 alb target group에 넘겨줄걷다~~ 완료!! 현재는 이렇게 나옴 보안 규칙 넣기 전이니까! 추가! 그러면 이제 이렇게 통해서 들어가게끔 설정된걸 볼 수 있다 들어가서 low 로 바꾸기 https://publish.obsidian.md/guguttemy/3.+Cloud/3.+AWS/2.+WAF/7.+WAF+%EC%84%A4%EC%A0%95 7. WAF 설정 – Service dev – Obsidian Publish 7. WAF 설정 – Service dev – Powered by Obsidian Publish. publish.obsidian.md https://publish.obsidian.md/guguttemy/3.+Cloud/3.+AWS/2.+WAF/8.+%EC%95%A1%EC%84%B8%EC%8A%A4+%EC%A0%91%EA%B7%BC+%EC%A0%9C%EC%96%B4%2C+ACL 8. 액세스 접근 제어, ACL – Service dev – Obsidian Publish 8. 액세스 접근 제어, ACL – Service dev – Powered by Obsidian Publish. publish.obsidian.md https://publish.obsidian.md/guguttemy/3.+Cloud/3.+AWS/2.+WAF/12.+%EC%95%A1%EC%84%B8%EC%8A%A4+%EA%B7%9C%EC%B9%99(WAF+Rule)+%EC%A0%81%EC%9A%A9 12. 액세스 규칙(WAF Rule) 적용 – Service dev – Obsidian Publish 12. 액세스 규칙(WAF Rule) 적용 – Service dev – Powered by Obsidian Publish. publish.obsidian.md 현재는 보안규칙x metric – 지표 완! aws cloud https://publish.obsidian.md/guguttemy/3.+Cloud/3.+AWS/2.+WAF/13.+WAF+%EC%A0%81%EC%9A%A9%EC%97%AC%EB%B6%80+%ED%99%95%EC%9D%B8 13. WAF 적용여부 확인 – Service dev – Obsidian Publish 13. WAF 적용여부 확인 – Service dev – Powered by Obsidian Publish. publish.obsidian.md 적용확인 draw.io https://aws.amazon.com/ko/architecture/icons/ AWS 아키텍처 아이콘 아키텍처 다이어그램은 설계, 배포, 토폴로지에 관해 커뮤니케이션할 수 있는 유용한 방법입니다. 이 페이지에서 다이어그램을 구축하는 데 도움이 되는 AWS 제품 아이콘, 리소스 및 기타 도구가 aws.amazon.com =============== lambda https://ap-northeast-2.console.aws.amazon.com/lambda/home?region=ap-northeast-2#/begin https://ap-northeast-2.console.aws.amazon.com/lambda/home?region=ap-northeast-2#/begin ap-northeast-2.console.aws.amazon.com -> 필요한 시간에만,, 효율적으로 하려고 나옴 Faas ? 구인
1. 같은 팀 하고 싶은 사람 1명 정하기
→ 혼자서 주제를 내도됨

2. 주제 가안, 프로젝트 진행 방식, 시간, 규칙 등 자유 서술
3. 주제에 대해 발표하면서 남은 팀원2~3명 구인
(초기에 4인 팀을 선호하는지 5인 팀을 선호하는지 정해두기)
→ 발표 자료는 메모장 or 노션 등 자유 양식

구직
1. 주제에 대해 발표를 들어보고 희망하는 팀에 가서 서로 조건이 맞는지 대화 진행
2. 마음에 드는 팀이 없거나 팀에 합류하지 못하였을 경우, 남아있는 사람들끼리
팀 빌딩 다시 진행

→ 아직 팀으로 구성되지 않은 사람은 팀원을 4명 이상 채우지 않은 팀과 대화 후 합류

마지막까지 구성되지 않은 사람은 남은 팀에 랜덤 배정

참고 사항
1. 주제는 팀 결성 이후 변경 가능
2. 한 번 결성된 팀은 특별한 사유가 아니면 변경 불가
(다른 팀까지 다 틀어질 수 있기 때문에)

목요일 오전에 구인 대상자들이 발표 진행
목요일 오후까지 대화 나눈 후 팀 구성 완료 예정

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다