Cloud Infra Architecture (AWS)/AWS Build 86

[AWS] ElastiCache for Redis 생성 (로그인 Session 보관용) - Tomcat

이중화된 서버에서 Session 관리는 필수이다.로그인 정보 세션관리를 하지 않으면 ELB에서 부하분산시, 로그인이 풀리게 된다.당연한 결과로, 서버간 로그인정보를 공유하지 않기 때문이다.따라서 이중화된 서버에서 로그인 정보를 담기위해 Session 관리를 진행해보자.로그인 세션을 유지하기 위한 세션클러스터링하는 방법은 3가지가 있다. 해결방법AWS ElastiCache for Redis를 이용하는 방법ELB에서 Sticky Session 활성화하는 방법WAS Session Clustering 진행하는 방법1) AWS ElastiCache for Redis를 이용하는 방법 Redis에서 사용할 SG 생성1) "보안그룹" 생성2) 6379 Port로 WAS 서버 오픈 #Redis는 6379포트로 통신 R..

[AWS] cloudwatch로 EC2 자원 모니터링 하기

오늘은 AWS에서 Cloudwatch를 통해 서버들을 모니터링하는 방법을 알아보자.준비물AWS EC2 내 에이전트 설치 여부엔드포인트용 보안그룹 생성 여부엔드포인트 생성 (cloudwatch 용)Cloudwatch 확인1) AWS EC2 내 에이전트 설치 여부물론 AWS에서 제공하는 EC2에는 대부분 에이전트가 설치되어 있다.서버내에서 우선 확인해보자. 1-1) Cloudwatch Agent 설치 여부 확인sudo systemctl status amazon-cloudwatch-agent# Unit amazon-cloudwatch-agent.service could not be found -> 미설치시 나타나는 문장 1-2) Cloidwatch Agent 패키치 설치 여부 확인rpm -qa | grep a..

Auto Scaling 생성

Auto Scalin을 위한 사용자 데이터d#!/bin/bashecho 'ec2-user:원하는비밀번호' | chpasswdsed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_configcd /etc/cloudsudo sed -i 's/ssh_pwauth: false/ssh_pwauth: true/' cloud.cfgsystemctl restart sshd#stress 발생기sudo yum install stress1) sudo yum -y install httpd2) sudo touch /var/www/html/index.html# 접속 후3) sudo vi /var/www/html/index.html"""..

[AWS] S3 버전 관리 및 MFA 삭제 활성화 (CLI)

S3를 생성하고나서 S3 버전 관리 및 MFA를 설정해야만 삭제할 수 있도록 수정하려면 Console이 아닌 AWS CLI로만 가능하다. 또한 S3 버전관리가 되어 있어야 MFA 삭제 활성화를 킬 수 있다. bastion서버나 하나의 서버에 Admin 권한을 준 EC2로 접속 S3 List 확인 및 S3 versioning 설정aws s3 ls #s3 목록 aws s3api get-bucket-versioning --bucket 버킷명 #버저닝 확인, 미출력시 설정 안되어있음 aws s3api put-bucket-versioning --bucket 버킷명 --versioning-configuration Status=Enabled #버저닝 설정 MFA 삭제 활성화aws s3api put-bucket-ver..

AWS Logging

1) Lambda Loggin은 CloudTrail API호출을 통해 수집할 수 있다.1) cloudtrail 생성한 추적 클릭2) "데이터 이벤트" 편집 클릭3) 고급 이벤트 선택기로 전환4) 데이터 이벤트는 Lambda로 선택한 후, 지역과 람다 선택 2) S3 bucket 액세스 요청 로깅 (서버 액세스 로깅)S3 버킷 액세스 요청을 기록할 수 있다.대상 S3와 로그 수집 S3는 다른걸로 설정하자1) S3선택2) "속성" - "서버 액세스 로깅"3) 대상 S3 Bucket 선택

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 시간이 오래걸린다면 다음과 같은 원인을 생각해 볼 수 있다. ..