Cloud Infra Architecture (AWS) 236

AWS CLI 다중리전 비용 발생

계정상 추적을 위해 AWS CloudTrail을 사용합니다. 하지만 콘솔에서 작업시, 디폴드값이 다중리전 활성화이기에, 다른 지역에서도 비용이 발생할 수 있습니다. 한 지역에서로 한정하려면 AWS CLI로만 작업이 가능합니다. 1) EC2 생성 2) EC2에서 CLI 설치sudo yum update -y sudo yum install -y aws-cli 2-1) CLI 구성aws configure 3) 혹은 EC2 IAM에 Admin 정책 부여 4) CLI 리전확인aws cloudtrail list-trails 4-1) 다중리전 비활성화aws cloudtrail update-trail --name "cloud trail 이름" --no-is-multi-region-trail

AWS S3 SSL 정책 적용하기

정적 컨텐츠나 WEB서버를 별도로 두지 않고 S3를 사용하는 경우SSL을 S3에 적용하기 위해 다음을 추가한다. 1) S3 버킷 선택2) "권한" - "편집" { "Sid": "s3-secure-transport-policy",    "Effect": "Deny",    "Principal": {"AWS": "*"},    "Action": "s3:*",    "Condition": {     "Bool": { "aws:SecureTransport": false }    },    "Resource": "arn:aws:s3:::버킷명/*" }

[가용성 테스트] EC2 서버 (EC2 서버별, Apache, Tomcat)

이중화되어 있는 환경에서는 가용성이 중요하다. 3개 사례로 가용성 테스트를 진행한다. 1) 인프라의 EC2 서버가 장애가 생겼을 경우 2) WEB (Apache)에 장애가 생겼을 경우, WAS (Tomcat)에 장애가 생겼을 경우 1) 인프라의 EC2 서버가 장애가 생겼을 경우 1-1) 서버 중지 확인1) 해당 인스턴스 "중지" 1-2) curl 서비스 중지 확인 및 테스트# private subnet에 생성된 경우라면 bastion 혹은 VPN 사용하여 접속 1) bastion 서버 접속 2) curl "WEB #1 Server Private EC2 IP":Port -v #ex) curl 172.0.0.1:2001 -v 2-1) curl "WEB #2 Server Private EC2 IP":Port ..

[Trouble Shoting] AWS web (apache) fail-over 오래 걸림

서버에 가용성을 위해 ELB를 설정했음에도 불구하고, 가용성 테스트시 fail-over 까지 오랜시간이 걸린 경험이 있다. 다음과 같은 조치로 원인을 파악 및 해결할 수 있다. 1. ELB 설정 교차 영역 로드 밸런싱 설정1) 연결되어 있는 NLB -> 속성 편집 2) "로드 밸런서 대상 선택 정책" -> "교차 영역 로드 밸런싱 비활성화 - 기본값" 설정 2. TG 설정 ELB에 연결되어 있는 TG의 Healthy Check 주기를 변경한다.1) 리스너 선택 2) "상태검사" - "편집" 3) 정상 임계 값 / 비정상 임계 값 / 제한 시간 / 간격 시간 최소화 3. 개발툴 프레임 워크 확인 1, 2를 설정했음에도 불구하고 fail-over 시간이 오래걸린다면 다음과 같은 원인을 생각해 볼 수 있다. ..

[백업복구] AWS Backup을 통해 백업복구 진행

AWS DLM 백업은 여기 참조 [백업복구] AWS DLM을 통해 백업복구 진행AWS에서 백업은 대표적으로 AWS Backup과 DLM이 존재한다.백업복구는 생각보다 너무나 간단하다. DLM을 통해 백업/복구 하는 과정을 진행해보자.1) DML을 통해 "EBS 지원 AMI 정책"으로 생성한다.1) cron문seongduck.tistory.com AWS에서 백업은 대표적으로 AWS Backup과 DLM이 존재한다.백업복구는 생각보다 너무나 간단하다. AWS Backup을 통해 백업/복구 하는 과정을 진행해보자.1) AWS Backup을 통해 알맞게 EC2의 EBS 볼륨을 백업을 진행한다.aws backup 진행  2) AWS Backup을 통해 생성된 Snapshot에서 백업진행우선 AWS Backup을 ..

[백업복구] AWS DLM을 통해 백업복구 진행

AWS Backup은 아래 참조 [백업복구] AWS Backup을 통해 백업복구 진행AWS DLM 백업은 여기 참조 [백업복구] AWS DLM을 통해 백업복구 진행AWS에서 백업은 대표적으로 AWS Backup과 DLM이 존재한다.백업복구는 생각보다 너무나 간단하다. DLM을 통해 백업/복구 하는 과정을seongduck.tistory.com AWS에서 백업은 대표적으로 AWS Backup과 DLM이 존재한다.백업복구는 생각보다 너무나 간단하다. DLM을 통해 백업/복구 하는 과정을 진행해보자.진행 아키텍처 1) DML을 통해 "EBS 지원 AMI 정책"으로 생성한다.1) cron문법을 통해 백업주기를 선택해주고 완료1-1) 혹은 임의로 이미지 생성1) "ec2 선택" - "작업" - "이미지 및 템플릿"..

AWS auto Scaling 과부하 테스트

auto scaling 생성 1) EC2 생성 2) 생성된 EC2로 이미지 생성 인스턴스 클릭 "이미지 및 템플릿" 클릭 후 "이미지 생성" 이름 작성 후 "재부팅 안함" "활성화" "이미지 생성" 클릭 2-1) 시작템플릿 생성 "시작 템플릿" 생성 클릭 "어플리케이션 및 OS 이미지"에서 "내 AMI" - "내소유" - "위에서 만든 이미지 클릭" "인스턴스 유형" - "현재 본인의 EC2 Type" "키페어" - "현재 본인꺼" "네트워크 설정" - 본인 만들고자하는 서브넷 및 보안그룹 선택(EC2와 동일하게) "고급세부정보"에 필요한 사용자데이터 생성 2-2) 시작템플릿에서 Auto scaling group 생성 "시작 템플릿" 생성 클릭 후 "auto scaling group" 생성 "기존 로드밸..

[Trouble Shoting] AWS 사용자데이터가 실행이 안될때

간혹 서버내 리소스를 지우다가 중요 패키지를 지우는 경우가 있다. 1. /etc/cloud에서 cloud.cfg 파일 여부 확인 cd /etc/cloud ll 필자는 cloud.cfg 파일이 지워졌다. sudo rpm -qa | grep -i "init" 정상 작동되려면 해당 명령어를 쳤을 때 다음이 있어야 한다. "cloud-init-19.3-46.amzn2.0.1.noarch" 따라서 패키지를 별도로 설치해주자 sudo yum install cloud-init-19.3-46.amzn2.0.1.noarch cloud-init --version sudo init 6 # 재부팅이후 ps -ef | grep tomcat 잘 적용이 된다.

AWS Linux 사용자 계정 생성 및 Root 권한 부여

1. 계정 생성 / 비번설정 adduser superuser passwd superuser 2. 계정생성 확인 grep /bin/bash /etc/passwd | cut -f1 -d: or cat /etc/passwd 3. su 권한 부여 방법 1) vi /etc/pam.d/su """ #auth requred pam_wheel.so user_uid 부분 주석 제거 """ 3.1 . su 권한 부여 방법 2) sudo vi /etc/sudoers """ 생성계정ALL=(ALL)ALL #추가 """ 4. 그룹에 해당 유저 추가 vi /etc/group """ #10부분에 superuser 추가 """ 5. su 권한 확인 ls -l /bin/su #root root일 경우 아직 미적용 sudo -l -U ..

[Trouble Shoting] AWS Health Check (NLB + ALB + Apache)

apache에서 ELB의 잦은 로그로 구축할때 방해가 되는 경우가 있다. "ELB-HealthChecker/2.0" 간격이 너무 길경우 줄이는 방법에 대해 알아보겠다. 1. Apache Server 접속우선 로그 쌓이는 경로에 이동한다. 로그 확인 (서버 내 성공 Code 확인)1. WEB서버 접속 2. cd log/apache/access-log #log 쌓여있는 경로 도착 3. tail -f "로그명.log" 를 통해 로그 확인 4. tail -f "로그명.log" | grep "찾고자하는이름" #예시 tail -f "access.log" | grep "ELB" """ 302 "ELB-HealthChecker/2.0" ~~~ """로그가 짧게 시간에 많이 쌓이고 있다. 위의 코드에서는 code 302..