본문 바로가기

전체 글136

Yarn 온라인/오프라인, 캐시 유/무로 의존성 패키지 설치 시간 단축해보기 테스트 환경 Mac OS : Macbook Pro 2019, I9, 32GB Docker machine : 프로세서 2개, 메모리 4GB Yarn v1.22.5 사용한 packakge.json은 최하단에 위치 offline node package는 미리 준비한 상태 online install은 인터넷을 통하여 node module package를 설치하는 것을 말한다. offline install은 yarn-offline-mirror 와 yarn-offline-mirror-pruning 옵션이 설정 exist cache는 yarn install 시 생성되는 캐시를 제거하지 않은 상태를 말한다. no cache는 yarn cache clean 명령어로 캐시를 제거한 상태를 말한다. 목적 현재 회사에서 개발.. 2021. 4. 30.
CodeBuild에서 사용할 Amazon Linux 2 Docker 이미지 커스텀 하기 1. Git Repository 클론 git clone https://github.com/aws/aws-codebuild-docker-images.git aws/aws-codebuild-docker-images Repository : URL 2. 커스텀을 원하는 버전 확인 $ cd aws-codebuild-docker-images $ git tag --list 3. 해당 버전으로 체크아웃 $ git checkout ${target tag} 4. 도커 파일 커스텀 $ cd al2/x86_64/standard/3.0 $ vim Dockerfile 저는 회사 Bitbucket과 연결하기 위해서 ssh 키 등록을 했습니다. Dockerfile에 저렇게 수정하여 업데이트 하였습니다. 5. 도커 이미지 빌드 $ d.. 2021. 4. 29.
[AWS] cdk bootstrap 적용이 안되는 경우 (no changes) 증상 이상하다... CDK로 적용한적 없는 환경임에 불구하고 bootstrap이 정상 작동하지 않는 듯하다... 원인 이전에 내가 사내에서 사용하지 않는 S3 Bucket들을 정리한다고 CDKToolKit bucket을 제거한 이력이 있다. 이로 인하여 적용이 되지 않았다. 조치 CloudFormation 콘솔로 접속하여 CDKToolKit을 제거하면 된다. (또는 CDK 로 검색되는 Stack들 제거!) 만약에 서비스 중인 환경이라면 진짜 정말정말 이거 지우는거 다시 생각해보자!! github.com/aws/aws-cdk/issues/986#issuecomment-666919935 2021. 4. 28.
[AWS] IAM에 대한 설명, 사용 방법에 대한 고찰 및 적용 사항 AWS IAM 계정은 크게 아래와 같이 구분 됩니다. group user role policy Group 사용자(user)를 분류 하는 단위 입니다. 개발하는 파트마다 사용하는 AWS 서비스가 다릅니다. 우리는 아래와 같이 개발하는 파트 따라서 사용자들을 구분합니다. * 관리자를 제외한 나머지 그룹은 서비스마다 Remove 권한은 제외됩니다. Administrator : 관리자 권한을 가진 사용자가 속한 그룹입니다. (기본적으로 전체 서비스 접근 가능합니다.) DevOps : 전체적인 인프라 관리하는 개발자가 속한 그룹입니다. (기본적으로 전체 서비스 접근 가능합니다.) Device : Device 개발자가 속한 그룹입니다. Device 개발자가 사용하는 관리형 서비스의 권한이 Assign 되어있습니다... 2021. 4. 27.
[AWS] 우리가 개발하는 서비스에서 IAM User(Access Key) 사용을 지양해야하는 이유 기본적으로 개발하는 서비스에서 IAM User의 Access Key 및 Secret Key 사용을 지양해야합니다. 왜 그럴까요? IAM User를 개발하는 서비스에서 직접 사용하는것의 장점을 말하는 것보다 단점이 보이는 최악의 경우를 말씀드리는게 이해하는데 도움이 된다는 생각에 최악의 경우를 말씀드리겠습니다. 첫번째, 사용자의 Access Key가 만료된 경우 이런 경우는 우리가 개발하는 서비스의 코드 또는 설정 파일에 Access Key, Secret Key가 하드 코딩 되어있을 것입니다. 이러한 Key들의 유효기간은 1년(365일) 입니다. Key가 만료 된다면 잘만 사용하던 서비스가 갑자기 비정상 동작을 하겠죠? 두번째, 개발자가 개발 시 개인 계정에서 Key 발급 후 사용자가 퇴사하면서 계정이 삭.. 2021. 4. 27.
[AWS] 서로 다른 Account의 S3로 접근하기 Requirement Account A ID Account B ID Account A에 속한 S3 버킷 * Account ID 확인 방법 : 바로가기 접근 불가 확인 Account B로 Account A에 속한 S3 버킷 접근 본 문서에서는 AWS-CLI로 접근 시도 하였습니다. Setting Account A에 속한 S3 버킷으로 이동 → 권한 탭 클릭 → 버킷 정책에서 편집 버튼 클릭 후 아래 코드 추가 후 저장 Account 사이의 S3 접근 정책은 특이하게 IAM 역할이나 계정에 연결하는 것이 아니라 S3에 직접 연결 합니다. Resource에서 아래와 같이 일반적인 ARN, 와일드카드가 포함된 ARN 두가지 다 추가해주세요. (Wildcard가 포함되지 않은 상태에서는 Lambda에서는 접근 가.. 2021. 4. 23.
[AWS] aws-cli Credential & Profile setting 1) AWS Command Line Interface 설치 공식 설치 가이드 (바로가기) 설치 되어있는 경우 넘어가주세요 2) Access Key 발급 기존에 사용하던 키가 있다면 해당 과정은 넘어가도 됩니다. console 접속 → IAM 관리 콘솔 → 엑세스 관리 → 사용자 본인 계정 상세화면 → 보안 자격 증명 → 엑세스 키 만들기 버튼 클릭 → Access / Secret Key 저장 3) AWS CLI 인증 설정 $ aws configure Access Key : IAM 콘솔에서 발급 받은 키를 입력 Secret Access Key : IAM 콘솔에서 발급 받은 키를 입력 Region name : 한국 리전 입력 (ap-northeast-2) output format : Enter 입력 (def.. 2021. 4. 23.
[AWS] Account ID 확인 방법 및 별칭 설정, 별칭은 어디서 사용할까? 계정 (Account) ID 확인 하는 방법 AWS 콘솔 접속 → IAM 이동 → 좌측 하단의 AWS 계정 ID 확인 계정 별칭 설정 파란색 칸에서 설정이 가능합니다. 초기에는 별칭 설정이 되어있지 않고 12자리 account ID만 있습니다. (별칭에 . 포함될 수 없음) 별칭은 어디서 사용할까? 로그인할 때 역할 전환할 때 기타.. account를 입력할 수 있는 부분에서 별칭을 사용할 수 있습니다. 단, 무조건 Account ID가 필수인 곳도 있으니 참고하세요 2021. 4. 7.
[AWS] VPC Peering을 이용한 서로 다른 Account의 VPC와 통신하기 현재 회사의 Production과 Development 환경은 Account 단위로 분리되어있는 상태이다. 특정 이유로 인하여 서로 다른 계정(Account)에 위치한 VPC끼리 통신해야하는 경우가 발생하였다. (저의 경우는 AWS DMS를 이용하려다가 필요) 지금부터 서로 다른 Account에 위치한 VPC와 통신하기 위한 VPC Peering 세팅 실습을 해보겠다. 환경 Production - A 계정(Account) Development - B 계정(Account) A 계정에서 Peering 생성 피어링 연결 Name 태그 : Peering의 연결 이름을 세팅합니다. VPC(요청자) : A 계정에 속한 VPC 선택합니다. 계정 - 다른 계정 선택 계정 ID : B 계정의 Account ID를 입력합.. 2021. 4. 7.
[AWS] Codebuild에서 사설 레포지토리에 방화벽에 등록할 IP 찾기 개요 회사에서 사설 레포지토리인 Nexus가 GCP에 있고 AWS Codebuild에서 접근하려고 하니까 보안 규칙을 추가해줘야 접근할 수 있는 이슈가 발생하였다. 아래와 같이 AWS Codebuild 서비스의 ip range를 검색하여 추가하였더니 정상적인 접근이 가능했다. AWS 전체 IP 파일 다운로드 $ wget https://ip-ranges.amazonaws.com/ip-ranges.json ip-ranges.amazonaws.com/ip-ranges.json 파싱 (Linux & MAC) $ jq '.prefixes[] | select(.region=="ap-northeast-2") | select(.service=="CODEBUILD")' < ip-ranges.json 방화벽에 등록 13... 2021. 3. 2.
AWS Auto Scaling / Scale Up/Out/In 용어 두줄 정리 Scale Up 서버의 자원이 부족하여 서버의 스펙을 상승 시키는 것을 말함 AWS에서는 스펙이 더 좋은 인스턴스 타입으로 교체하는 것이라고 할 수 있음. Scale Out 서버의 자원 스펙 상승으로는 한계가 있으며 효율이 떨어지는 시점이 있다. Scale Out은 컴퓨팅의 성능 상승보다 컴퓨팅 수를 늘리는 것이다. Scale In 작업이 완료되어 더 이상 필요없는 Scale Out으로 늘렸던 컴퓨팅 수를 줄이는 것을 말한다. AWS Auto Scaling Scale In / Out 기능을 정책에 따라서 조정해주는 AWS 서비스를 말한다. 2021. 2. 10.
[AWS] Session manager를 통하여 RDS 서비스로 터널링 session manager를 이용해서 RDS 서비스로 터널링 기능을 간단하게 스크립트로 구현해보았다. 설명은... 지금은 귀찮아서 나중에 업데이트하겠고 github에 스크립트 및 설치 파일 올려두었으니 참고하시길 (windows는 지원 안된다 쏘리!.. 귀찮...) 가이드 Requirement ssm manager를 통한 연결을 위한 설정 현재 linux와 mac OS만 지원 Install $ sudo ./install_for_macNlinux.sh Menual 터미널을 열고 명령어 실행 $ aws-rds-tunnel {ec2 instance id} {az} {local port} {RDS DNS address} {RDS Port} ec2 instance id : 터널링을 할 인스턴스의 ID az : .. 2021. 2. 9.