Cloud Infra Architecture (AWS) 236

[AWS KMS] AWS CLI로 AWS 고객 관리형 키(CMK) 생성하기 [T]

AWS Console 접속1) IAM -> Roles2) EC2에 할당시킨 IAM Roles 선택3) 해당 IAM Roles 선택 - Add Permissions -> Attach Polices4) AWSKeyManagement -> Add permissions 부여 완료 생성한 EC2내 AWS CLI로 진행합니다.aws kms create-key #kms key 생성하기 해당 KeyID를 복사aws kms create-alias --alias-name alias/FirstCMK --target-key-id '위 복사한 ID 넣기' #Aliases 생성 KMS 콘솔에서 확인하면 생성 완료

[Trouble Shooting] AWS EKS Pod로 생성된 Rabbitmq가 무한 Pending 일 때 (Rabbitmq pod가 Status pending)

AWS EKS로 Rabbitmq pod를 만들었는데 10분이 지나도록 Pending이 뜨면 무언가 문제가 있는 것이다.즉, Status가 Pending이라면 다음과 같은 원인들이 있고 해결할 수 있다.원인1 클러스터에 사용 가능한 스토리지 클래스인지 확인 해결법$ kubectl get storageclass생성한 EBS Volume의 Type과 해당 클러스터의 Type이 일치한지 확인한다.다르다면 AWS EBS를 해당 Type에 맞춰 다시 생성해준다.원인2Helm Chart로 RabbitMQ를 생성할 때, PV가 설정이 안되어 있는 경우 해결법 예시는 다음과 같다.1) RabbitMQ PV yaml 파일 만들기 (저장소)1) $ vi rabbitmq-pv.yaml"""apiVersion: v1kind: ..

[Trouble Shooting] AWS EKS rabbitmq pod 생성시 EBS 볼륨 에러 발생 "default-scheduler Successfully assigned default/rabbitmq-5d797cbcfd-8tv6s to ip-172-31-0-33.ap-northeast-2.compute.internal Warning FailedAttachVolume 70s (x2 over 3m11s) attachdetach-co

해당 에러는 AWS EBS CSI 드라이버가 없을 때 발생한다. 해결법eksctl utils associate-iam-oidc-provider --region --cluster --approveeksctl create addon --name aws-ebs-csi-driver --cluster --region --force

[Trouble Shooting] AWS EKS Pod에 RabbitMQ 설치시 "curl: (7) Failed to connect to my-rabbitmq port 15672 after 2 ms: Couldn't connect to servercommand terminated with exit code 7" 에러 발생

1. 원인필자는 RabbitMQ설치시 스토리지(EBS, 저장소)를 못찾거나 선언해주지 않았을 때 발생했다. 2. 해결1) AWS 콘솔에서 EKS와 Node와 같은 AZ에 EBS 생성2) pv.yaml 파일에 해당 코드 추가""" awsElasticBlockStore: volumeID: "생성한 EBS ID" #""는 제거"""3) $ kubectl apply -f pv.yaml #yaml 배포$4) kubectl get svc #서비스 생성 확인3. 해결을 봐도 모르겠으면 예시는 다음과 같다.1) RabbitMQ PV yaml 파일 만들기 (저장소)1) $ vi rabbitmq-pv.yaml"""apiVersion: v1kind: PersistentVolumemetadata: name: rab..

AWS EKS pod에서 RabbitMQ 설치하기 (설치 후 pod 접속 테스트)

EKS Pod에 RabbitMQ를 설치하고 접속 테스트를 진행해보겠다.RabbitMQ는 Helm Chart로 설치해도 되지만 yaml 파일을 만들어서 접속해보겠다.또한 다른 pod에서 Ping 테스트를 진행해 보겠다. 필자는 해당 환경에서 이어서 진행한다. AWS EKS 생성 후 접속하기 (Node 그룹, Pod 생성하기, Pod 접속하기)AWS EKS 클러스터를 생성하고 해당 EKS에 접속하기 위해서는 2가지 방법이 있다.EC2 접속AWS CLI 접속 필자는 EC2로 쉽게 실습해서 접속하는 방법을 소개합니다.이후 EKS를 생성하고 접속은 물론, Nodeseongduck.tistory.com1) RabbitMQ PV yaml 파일 만들기 (저장소)1) $ vi rabbitmq-pv.yaml"""apiVe..

AWS EKS 생성 후 접속하기 (Node 그룹, Pod 생성하기, Pod 접속하기)

AWS EKS 클러스터를 생성하고 해당 EKS에 접속하기 위해서는 2가지 방법이 있다.EC2 접속AWS CLI 접속 필자는 EC2로 쉽게 실습해서 접속하는 방법을 소개합니다.이후 EKS를 생성하고 접속은 물론, Node 그룹을 만들며, Pod까지 생성 후 Pod에 접속까지 해보겠습니다.1) EKS 클러스터 환경 접속을 위한 전용 EC2(Bastion Server) 생성1-1) EC2 생성1) EC2를 생성할 Subnet 선택 -> 작업 -> 서브넷 설정 편집 -> 자동할당 IP 설정 체크(활성화)2) EC2 생성 - AWS Linux 2023 OS 선택 - 생성 1-2) EC2에서 EKS를 사용하기 위한 IAM 역할 생성1) IAM 역할 생성 - AdministratorAccess 정책 추가 후 생성 #..

[Trouble Shooting] AWS EKS Node 그룹 생성시 "One or more Amazon EC2 Subnets of [subnet-00accbc361050c2e5, subnet-034c6dea0f4b412b9] for node group eks-masternode does not automatically assign public IP addresses to instances launched into it. If you want your

AWS EKS 생성시 다음과 같은 에러가 뜬 경우가 있다.One or more Amazon EC2 Subnets of [subnet-00accbc361050c2e5, subnet-034c6dea0f4b412b9] for node group eks-masternode does not automatically assign public IP addresses to instances launched into it. If you want your instances to be assigned a public IP address, then you need to enable auto-assign public IP address for the subnet. See IP addressing in VPC guide: htt..

[Troble Shoting] (WEB 405 Error, WAS 500 Error) - 405 Method not allowed / Request method 'POST' not supported

현재 상황웹페이지는 접속이 되나, 로그인이 안되는 현상405 Method not allowed에러는 기본적으로 POST 형식이 잘못되어 나타나는 에러필자는 POST 문제가 아니다. (GET, POST Method 모두 허용) 1) WEB Server 에러 상황HTTP/1.1 405 Error405 Method not allowed2) WAS Server 에러 상황Request method 'POST' not supported500 Internal Server Error에러 확인1) Apache / Tomcat 서버에 접속해서 장애가 발생한 시점의 로그를 확인1-1) Apache Server (WEB) 로그 확인WEB (Apache) Log 경로로 이동cd /accesslogless 해당파일.log접속 후..

[AWS Linux] ssh: connect to host IP port 22: Connection refused 에러 발생

AWS EC2 접속할때나, Bastion을 통해 서버를 들어갈 때 다음과 같은 에러가 뜰 때가 있다.ssh는 대부분 ssh/sshd_config 파일에서 주로 관리하므로 이 부분을 확인하자.AllowUsers 권한이 있을 경우, 제거나 본인의 IP를 넣어준다. 필자는 /ssh/sshd_config에서 AllowUsers 옵션을 사용하고 있었다.해당 서버에는 못들어가니, 다른 서버에 볼륨을 붙여 설정을 변경해보자.1) 콘솔에서 해당 EBS 볼륨 해제 후 장착1) Root 볼륨 해제2) Bastion 볼륨에 추가 2)  Bastion에서 마운트1) cd /svc2) sudo mount -o nouuid /dev/sdb1 /svc #svc 폴더에 마운트3) sudo vi /etc/ssh/sshd_config-..

AWS S3 정적 컨텐츠 Web 용도로 사용하기 (S3 기반 웹 호스팅)

1) S3 생성1) 버킷 생성2) 모든 버를릭 액세스 차단 해제3) 버킷 버전 관리 "활성화"4) 기본 암호화 "활성화"5) 생성 버킷 선택 - "권한" - 버킷 정책 편집"{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::버킷이름/*" } ]}6) "속성" - "정적 웹 사이트 호스팅" - "편집"7) "정적 웹 사이트 호스팅 ..