728x90
반응형
728x90
반응형
CloudFormation에서 스택 생성 -> 새 리소스 사용을 클릭한다. 자신이 만든 AWS 인스턴스 코드를 업로드한다. 스택의 이름과 인스턴스 이름을 지어준다. 나머지들은 그대로 두고 마지막 기능란의 승인란을 확인해주고 전송을 클릭한다. 스택이 정상적으로 생성되고 기다리면 상태가 CREATE-COMPLETE가 될 것이다. EC2 인스턴스로 들어가면 우리가 지어준 CF-EC2의 이름으로 인스턴스가 하나 생성되고 탄력적 IP도 잘 붙어있는 것을 확인할 수 있다. 퍼블릭 IP로 들어가면 이렇게 인스턴스 이름이 나오는 것을 확인할 수 있다. 리소스를 정리할 때 기존에 방식처럼 인스턴스 종료, 탄력적 IP 해제 등을 할 필요없이 CloudFormation 스택을 삭제하면 한번에 정리가 된다.
출처 : https://www.youtube.com/watch?v=XMrlt3ZwfM4&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=21 이전 강의 마지막에서 Deadlock이 발생하려면 다음 4가지 조건이 모두 충족되어야 한다고 했다. 그렇다면 Deadlock을 발생시키지 않으려면 어떻게 해야할까? 바로 위 4가지 조건 중 1가지만 만족시키지 않게하면 deadlock은 발생하지 않을 것이다. Deadlock 해결 방법 Deadlock prevention methods (교착 상태 예방) Deadlock avoidance methods (교착 상태 회피) Deadlock detection and deadlock recovery methods (교착 상태 탐지 및 복구..
출처 : https://www.youtube.com/watch?v=czjtYkjhtgo&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=20 Deadlock 발생의 예 2개의 프로세스 (P1, P2) 2개의 자원 (R1, R2) P1이 R2를 요청한다. R2를 쓰고 있는 프로세스가 없으므로 P1이 R2를 사용하게 된다. P2가 R1을 요청한다. R1을 쓰고 있는 프로세스가 없으므로 P2가 R1을 사용하게 된다. P1이 R1을 요청한다. P2가 R1을 사용하고 있으므로, P1은 대기하게 된다. 이때는 아직 P2가 작업을 마치고 R1을 release 하면 작업을 수행할 수 있는 상황이므로 Deadlock은 아니다. P2가 R2를 요청한다. P1이 R2를 사용하고 있는데 R1..
S3로 들어가 새로운 버킷을 생성한다. S3는 글로벌 서비스이므로 다른 사람들과 겹치지 않는 이름을 지어줘야한다. 람다 함수를 위한 IAM 역할을 생성해야 한다. IAM -> 액세스 관리 -> 역할 로 들어가 역할 생성을 클릭한다. 람다 함수를 위한 역할을 만들 것이므로 사용 사례에서 lambda를 선택한다. 권한 정책에서 AmazonS3FullAccess와 CloudWatchFullAccess 권한을 선택한다. 역할 이름을 지어주고 역할을 생성한다. AWS 콘솔에서 Lambda -> 함수 로 들어가 함수 생성을 클릭한다. 람다 함수의 이름을 지어주고 기본 실행 역할 변경에서 기존 역할을 우리가 위에서 만든 역할을 선택해준다. 코드 소스에서 에서 업로드를 클릭하고 개인이 만든 코드 zip파일을 업로드한다..
출처 : https://www.youtube.com/watch?v=xvoEsy2zJnc&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=19 Deadlock : 어느 프로세스도 자신이 원하는 자원을 가져갈 수 없는(자신이 원하는 작업을 수행할 수 없는) 상태 Deadlock의 개념 Blocked / Asleep state 프로세스가 특정 이벤트를 기다리는 상태 프로세스가 필요한 자원(프로세서가 아닌 다른 자원)을 기다리는 상태 Deadlock state 프로세스가 발생 가능성이 없는 이벤트를 기다리는 경우 프로세스가 deadlock 상태에 있음 시스템 내에 deadlock에 빠진 프로세스가 있는 경우 시스템이 deadlock 상태에 있음 Deadlock vs Starva..
출처 : https://www.youtube.com/watch?v=AnYN-kbCbRI&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=18 이전까지 배운 솔루션들은 Flexible 다양하게 적용이 가능하다는 장점이 있었다. 하지만 좀 복잡하다는 문제점이 있고, 에러가 발생할 가능성이 크다는 단점이 있다. 그래서 이번에는 우리가 사용하는 프로그래밍 언어 레벨에서 제공하는 솔루션인 "Monitor"를 알아보자. High-level Mechanism Monitor Language-level constructs : 프로그래밍 언어가 Mutual Exclusion을 서포트한다. Object-Oriented concept와 유사 사용이 쉬움 Monitor 공유 데이터와 Criti..