2023/08/29 AWS ( 내용 날아감 )
하.......
어제 내용 다 날라가 버려서 내용만 가지고 있지 그것에 대한 사진이 다 날라갔음...........
하ㅏ........
어제 했던것을 바탕으로 실습2번 하기
1. VPC 생성
(1ㅅㅈ)
우선 실습시작을 하고 콘솔을 열어주면 이쪽에서 제공하는 연습용 계정이 있다.
(2ㅅㅈ)
위쪽 상단의 검색 창에서 VPC를 검색하여 선택한다. 그리고 Create VPC를 선택해준다.
(3ㅅㅈ)(16ㅅㅈ)
아래 사진처럼 하란대로 생성하게 되면 이런식의 화면으로 확인 가능하다.
(4ㅅㅈ)
그렇게 만들어주고 View VPC를 눌러주고 Main route table에 있는 URL을 선택해준다.
그 URL에서 라우팅 테이블 ID 아래에서 Routes 탭을 선택하고 Edit routes을 선택하고 Add route를 선택해준다.
(5ㅅㅈ)
Destination에서 0.0.0.0/0을 입력해주고 Target에서는 Internet Gateway를 눌러주고 자동으로 입력이 된다. 그리고 save changes를 선택한다.
(6ㅅㅈ)
이렇게 되면 아래쪽에 경로 2개가 표시된다.
사용자 지정 VPC, 인터넷 게이트웨이, 라우팅 테이블, 인터넷으로의 퍼블릭 경로를 생성했고 가용 영역 2개에 퍼블릭 서브넷 2개를 생성했다.
2. 이것의 VPC 보안 그룹을 생성해보겠다.
(7ㅅㅈ)
왼쪽의 Security에서 Security groups를 눌러서 위에 Create security group을 눌러준다.
(8ㅅㅈ)(17ㅅㅈ)
이곳에서 이런식으로 설정을 해주었고 아래쪽에 Create security group을 선택해서 만들어준다.
(9ㅅㅈ)(10ㅅㅈ)
이렇게 되면 모든 위치로부터의 인바운드 웹 트래픽을 허용하는 사용자 지정 보안 그룹을 생성했다.
3. EC2 인스턴스를 생성한 후 웹 애플리케이션의 요구 사항을 설치 및 구성하기위한 부트스트랩 스크립트를 제공한다. 그리고 인스턴스로의 SSH 액세스도 사용하도록 설정한다.
(11ㅅㅈ)
상단 검색창에서 EC2를 검색하고 왼쪽에서 Instances에서 Instances를 선택해주고 Lanch instances를 선택해줌
(18ㅅㅈ)(19ㅅㅈ)(20ㅅㅈ)(12ㅅㅈ)
이런식으로 설정 해주고 아래쪽에 Launch instance를 선택해준다.
그리고 이런 화면이 뜨면 아래쪽에 View all instances를 선택한다.
(13ㅅㅈ)
Instance state 부분이 Running으로 변경되면 인스턴스가 부팅되고 있다는 것이다.
그리고 Status check 부분이 2/2 checks passed으로 바뀔 때 까지 기다린다.
(14ㅅㅈ)
아래쪽에 Details를 확장시키고 Public IPv4 address의 주소를 복사한다.
(15ㅅㅈ)
새 창을 열어서 복사한 IP 주소를 붙여넣는다. 그러면 이런 새 창이 뜬다.
이렇게 되면 EC2 인스턴스를 생성했고 사용자 데이터 스크립트를 사용해 웹 애플리케이션을 배포했다.
모니터링, 로드 밸런싱 및 크기 조정
오토스케일링도 EC2안에 있다. 스케일링(규모조정)을 자동으로 해주는 것
모니터링의 이점
(21ㅅㅈ)
운영자가 꼭 해야하는 것중에 하나이다.
온프레미스에서는 비용적인 측면 때문에 모니터링을 해줘야한다.
서비스가 잘 돌아가더라도 모니터링을 통해 사용량 확인 후 비용절감이 가능하다.
(22ㅅㅈ)
이 모니터링의 서비스에는 CloudWatch라는 것을 알 수 있다.
리소스가 발생하면 자동으로 CloudWatch가 모니터링을 한다. 기본 모니터링은 비용이 들지않는다.
경보라는 기능도 있는데 무언가 자동으로 실행하도록 하는 기능이 있다.
그렇기 때문에 관리자가 모니터를 계속 보지않아도 된다.
그 경보서비스와 오토스케일링을 연결해서 알아서 실행하게 한다.
(23ㅅㅈ)
CloudWatch지표
이것을 지표로 확인할 수 있다. 현재는 10분단위지만 1분단위로도 바꿀 수 있는데 그것은 유료이다.
로드 밸런싱
(24ㅅㅈ)
로드 밸런서로 로드밸런싱을 할 때는 타겟 그룹이 만들어져 있어야하는데 중간에 만들어줄 수 도 있다.
로드밸런싱의 이점
(25ㅅㅈ)
• 고가용성및탄력성: ELB는특정리전내에서애플리케이션을지원하며서버사용량에 따라용량을자동으로추가하고제거하는AWS 관리형서비스입니다.
• 보안: ELB 는Amazon Virtual Private Cloud(VPC)와연동되어통합인증서관리, 사용자 인증및 SSL/TLS 복호화를비롯한강력한보안기능을제공합니다.
1. 인터넷에 공인 IP로 노출이 안되기 때문에 찾을 수 없을 것.
2. 디도스 공격을 받게되면 로드밸런서쪽에 들어오게 된다. 로드밸런스 안에는 디도스 공격에 대해서 회피 기능도 탑재가 되어있기 때문에 어느정도 피해를 완화 시킬 수 있다.
• 기능적용범위: ELB에서는HTTP/S, gRPC, TLS 오프로드, 고급규칙기반라우팅, 컨테이너 서비스와의통합등컨테이너기반워크로드에서필요한기능이지원됩니다.
• 강력한모니터링을통해상태파악: ELB에서는Amazon CloudWatch지표, 로깅및요청 추적기능을사용하여애플리케이션의상태와애플리케이션성능을실시간으로 모니터링할수있습니다. 그러므로애플리케이션성능을더욱명확하게파악할수 있습니다.
• 간편한통합및전세계어디서나사용가능: ELB는Amazon EC2, Amazon Elastic Container Service(Amazon ECS), Amazon Elastic Kubernetes Service(Amazon EKS) 등의기타AWS 서비스와통합할수있습니다. 그리고AWS 워크로드실행위치에관계없이사용 가능합니다.
로드 밸런서의 구성 요소
(26ㅅㅈ)
로드밸런싱이 좀 더 효율적으로 하기 위해서 이런 요소가 있다.
로드 밸런서의 유형
(27ㅅㅈ)
이 유형에 따라서 이해할 수 있는 계층별 프로토콜이 다르다.
ALB : HTTP, HTTPS
NLB : 4계층 정보 TCP,UDP
GLB : 3계층 정보인 IP
CLB : VPC가 있기 이전부터 사용한다.(지금은 사용하지 않음. 많이 도태되었음)
로드밸런서의 크기 조정
(28ㅅㅈ)
수직적 크기 조정 : 서버 한대의 성능을 높이는 것
크기에 따라서 그만큼 성능이 바뀐다.
단점 : 서버가 반드시 중단이 되어야 줄이거나 늘릴 수 있다.(실시간으로 잘 사용하지않음)
한계점이 있기 때문에 제일 크게 하게되면 더 못늘린다.
수평적 크기 조정 : 서버의 수를 늘렸다 줄이는 것
수직적 크기 조정에서 있었던 단점에서 자유롭다. 서비스 중단도 안해도 되고 한계도 없다. 비용에 문제가 없다면 서버도 얼마든지 늘릴 수 있음
동적으로 조절을 한다면 수평적 크기조정이다.
이러한 크기 조정을 오토 스케일링
(29ㅅㅈ)
내결함성 : 결함의 내성을 높인다 -> 장애가 생기더라도 서비스를 이용하는 고객은 장애를 느끼지 못하게 한다.
오토 스케일링은 하나하나 설정해줘야하는데
(30ㅅㅈ)
그중 하나가 시작 템플릿이다.
(31ㅅㅈ)
오토 스케일링 그룹이라는 것을
(32ㅅㅈ)
오토 스케일링의 정책을 설정해준다.
오토 스케일링의 기능
(33ㅅㅈ)
예약된 크기 조정 : 8시에 트래픽이 많아지게 된다면 7시부터 인스턴스를 쭉 늘려주거나 10시부터 트래픽이 적어지면 10시30분부터 인스턴스가 줄어든다 라는 것
플릿 관리 : 관리해야하는 리소스들의 그룹 (내결함성과 관련이 있다)
실습4: 애플리케이션 고가용성 구성
실습을 들어가서 사용자 게정에 대해서 Details 탭에서 정보를 확인해본다.
(34ㅅㅈ)
실습 지침 페이지의 왼쪽 창에서 링크를 복사한다. 새 탭에서 이 URL을 입력해주고
Administration에서 Configuration을 클릭해줌
그럼 EC2인스턴스와 Employee Directory를 검토했다.
Application Load Balancer 생성
(35ㅅㅈ)
Load Balancing 섹션에서 Load Balancers를 선택한다.
(48ㅅㅈ)(36ㅅㅈ)
위 사진에 나온대로 해주고 이런창이 나오고 다 된걸 확인한다.
Vreate security group브라우저 탭을 닫는다.
(37ㅅㅈ)
그럼 이런 창이 나온다. View load balancer를 선택해준다.
(38ㅅㅈ)
이런 창에 나오게 되면 Details탭에 DNS name을 복사하고 새 브라우저에 넣게되면
(39ㅅㅈ)
이런 창을 확인할 수 있음
그렇다면 Application Load Balancer, 대상 그룹, 보안 그룹을 생성했고 Employee Directiory 애플리케이션이 올바르게 설정되었다.
시작 템플릿 생성
(40ㅅㅈ)
EC2
(41ㅅㅈ)
이렇게 하면 시작 템플릿을 생성 했다.
Auto Scaling 그룹 생성
전에 했던 거에서 View Launch templates를 선택한다.
이젠 시작 템플릿을 사용할 수 있다.
(42ㅅㅈ)
Create Auto Scaling group을 선택한다.
(43ㅅㅈ)
이런 메시지 표시를 확인하면 브라우저 탭으 ㄹ닫아도 된다.
(44ㅅㅈ)
이렇게 3가지 모두 healthy로 표시될 때까지 기다린다.
(45ㅅㅈ)
Terminate를 선택해준다.
(46ㅅㅈ)
그러면 Shutting-down으로 바뀐걸 확인한다.
그렇게 되면 시작템플릿을 사용해서 Auto Scaling 그룹을 생성하고 대상 그룹에 새 EC2 인스턴스가 추가되었음을 확인했다.
(47ㅅㅈ)
아까 열었던 Employee Directory 브라우저를 다시 돌아간다.
그 페이지에서 Administration로와서 하란대로 해주면 Configuration에서 CPU사용량을 확인할 수 있음
이렇게 하게되면 Employee Directory 애플리케이션의 고가용성과 수평 크기 조정을 테스트 했다.
이렇게만 해주면 실습을 완료할 수 있다.
이 실습까지가 Technical Essentials이라고 할 수 있다.
Architecting on AWS라는 과목을 할 것 전에 했던 과목보다 심화과정느낌)
(49ㅅㅈ)
이러한 캡스톤 실습에서 이 멀티 티어 아키텍처를 구축하는 ..
AWS 인프라
(50ㅅㅈ)
AWS 인프라 관련 주제
(51ㅅㅈ)
AWS 데이터 센터가 하나 이상의 그룹을 가용 영역이라고 한다.
(52ㅅㅈ)
엣지로케이션은 리전과 독립되어있는 다른 시설
특정지역에 컨텐츠가 있는데 그 컨첸츠를 이용하는 고객들이 글로벌하게 전 세계에 있을 때 그 리전을 추가로 넣으면 관리적인 부담 비용적인 부담이 크다. 그때 엣지 로케이션을 사용하겠다.
(53ㅅㅈ)
로컬 존은 엣지로케이션의 시설을 그대로 쓰는데 대신 엣지로케이션을 확장해서 만든 것
원래 안되었던 스토리지,데이터베이스 같은 서비스를 사용할 수 있다.
(54ㅅㅈ)
well-Architected Framework는 이런 업무를 도와준다
모듈2 : 계정 보안
보안을 하는 가장 쉬운 방법은 루트로 접속을 안하는 것이다. 그렇기 떄문에 IAM사용자를 만들어서 MFA를 걸어두고 그것에 루트와 비슷한 권한을 주어서 사용하는 것
(55ㅅㅈ)
보안주체
권한을 줄 때 타이머를 붙여서 줄 수 있는게 IAM 역할이다.
idp는 다른 인증 주체(카카오톡 연동)
IAM 사용자 및 AWS API 호출
(56ㅅㅈ)(57ㅅㅈ)
프로그래밍 방식 액세스는 액세스키를 생성해줘야한다.
(58ㅅㅈ)
사용자 이름을 클릭하고 Security credentials을 보면 내려보면 Access keys를 확인한다.
(59ㅅㅈ)
이런식으로 해주고 Next를 눌러주면 tag를 만들 수 있게 된다 이름은 testKey라고 설정해주고 Create access key를 눌러준다
(60ㅅㅈ)
이런식으로 확인할 수 있다. access key가 ID라고 생각하면 되고 Secret access key는 PW이다.
이것을 아래에 파일로 다운을받아 확인해준다.
(61ㅅㅈ)
그럼 Access keys가 만들어져 있는걸 확인할 수 있음
까먹었다면 옆에 다시 삭제를 해주고 새로 생성해주면 된다.
(62ㅅㅈ)(63ㅅㅈ)
IAM 정책을 사용하여 권한 설정
그룹을 이용해서 권한설정 하는것이 더 안전하다.
(64ㅅㅈ)
역할 - 주어진 시간안에서만 줄 수 있는 임시 권한 -> 최소권한의 법칙 적용 (필요할 때)
필요할때는
1. 평소에 해야하는ㄴ 업무 - 계속해서 권한 주기(ex.그룹으로 묶어서 주기)
2. 가끔 해야하는 업무 - 관리자가 직접하지않고,debApp이 역할을 주게 됨.
역할 만들기
이름을 ec2admin이라고 생성한다.
(65ㅅㅈ)(66ㅅㅈ)
AWS account로 만들어준다. 보통 AWS service로
(67ㅅㅈ)
s3의 권한을 준 역할 이름을 s3FullAccessRole라고 설정했다.
내 Account ID는 987286449881이다.
이런식으로 주게되면 권한을 잘 준것
(68ㅅㅈ)
새 창을 열어서 접속을 하는데 아이디에 ec2admin이라고 입력하고 비밀번호도 설정한 비밀번호로 들어가서 유저를 눌러서 유저에 권한 전환으로 입력하게 되면 이런식으로 s3권한을 얻음
자격증명 기반 정책의 유형
(69ㅅㅈ)
ec2admin에서 Permissions boundary에서 S3 정책을 주었다. 그럼에도 해당 사용자는 아무것도 할 수 없다. 겹치는게 없기 때문이다.
다중 계정 관리
계정을 다르게 두면 깔끔하게 사용하면서 할 수 있고 역할로도 못막는 실수를 방지하기 위함이다.
다만 문제는 비용을 처리하는 부서가 번거로워진다.
root 계정을 배포해줘야한다.
할인을 못받는다.
(70ㅅㅈ)
이러한 단점들을 막아주는게 Organizations이다.
(71ㅅㅈ)
이거를 만들게 되면 관리계정으로 다른 계정들을 하위에 두고 관리할 수 있다.
하위계정에 들어오면 루트 계정이더라도 제어를 할 수 있다.
(72ㅅㅈ)
정책을 사용하여 계층형 방어 적용
모듈3 네트워킹
초반 부분은 했던 이야기를 많이 해서 그냥 넘어가는 편
(73ㅅㅈ)
대부분 개발자들은 /16을 사용한다. 어차피 NAT를 사용해서 다 못쓰기 때문
공인 IP주소
AWS에서는 두가지의 공인 IP주소가 있다
(74ㅅㅈ)
퍼블릭 - 무료고 바뀔 수 있다. / 껐다 키면 IP가 변한다.
일레스틱 - 무료가 아니다, IP주소가 바뀌지않고 고정이다.
NATGateway 만들 때 일레스틱 IP가 없으면 안만들어진다.
(75ㅅㅈ)(76ㅅㅈ)
NAT 게이트웨이 : 인터넷 통신은 되지만 인터넷에 노출시키지 않는 보안성 장비
장점 : 관리를 안해도 된다. 자동으로 관리해줌
단점 : 비용 비쌈
필요한 경우는 NAT기능이 죽으면 안되는 경우 ( 실제 서비스 운영 )
(77ㅅㅈ)
EC2 대쉬보드로 온다.
저 버튼을 눌러서 들어와준다.
(79ㅅㅈ)(78ㅅㅈ)
Name은 NAT Server로 설정해주고 Key도 전에 저장했던 설정을 넣어주고 설정해준다. user data에도 전에 있었던 데이터를 복사해서 넣어준다.
(80ㅅㅈ)
서버가 만들어진다. Running이 되면 스크립트가 실행이 되면서 NAT가 된다.
NAT Server를 선택하고 Actions에서 Networking을 누르고 Change source/destination check를 해제해줘야한다.
여기까지 인스턴스로 할 수 있는 서버 만들기 이다.
(81ㅅㅈ)
그리고 VPC로 와서 이렇게 새로 만들어준다.
(82ㅅㅈ)
아래쪽에 와서 edit routes해주고 add route해주면서 이렇게 설정해줌
(83ㅅㅈ)
디폴트주소로 NAT가 설정되어있다. 그리고 Subnet associations로 가서 설정해준다.
(84ㅅㅈ)
프라이빗 선택해서 연결을 해준다.
이렇게 해주면 인터넷 연결이 되는 서버가 만들어진 것