본문 바로가기

개발/AWS

(9)
[AWS] 프리티어가 곧 끝납니다.. 혹시 몰라서 나중을 위해 기록하는 글입니다 AWS 프리티어 1년 계정이 곧 끝난다는 메일이 왔다. 그러니 활성화된 서비스들이 있다면 종료를 시키라는 메일.. 그래서 해당 이메일로 AWS 콘솔에 접속해보았다. 대략 매월 0.1XX 달러 정도의 돈이 결제되고 있긴 했지만 (몇 백원이라 크게 신경쓰진 않았었다) 이제 프리티어가 끝나면 (= 나는 이 계정의 AWS를 아예 안 쓸 것이니) 싹 모든 것을 깨끗하게 지울 예정이었다. 그런데 뭔가 켜둔 인스턴스는 없긴 한데 찜찜한 이 느낌.. 심지어 계정 해지를 해도 과금될 수 있다는 글도 읽었음 그래서 AWS 공식 홈페이지에 나와 있는 글을 읽어보았더니 그래서 그대로 들어가보았다 그런데 충격적이게도 162개가 넘는 것들이 나왔다........ (심지어 아래는 한참 지..
[AWS] EC2 Ubuntu 서버 생성하고 접속하기 windows windows에서 EC2 Ubuntu 서버에 접속하는 방법에 대해 설명하겠습니다. 서버 개발은 Ubuntu에서 하면 편하다는 말을 예전에는 이해하지 못했었는데, 이제는 왜 그런지 알게 되었다니.. 그래도 많은 발전이 있었구나 싶습니다. AWS에서 Ubuntu 서버를 생성한 다음부터의 과정입니다. Windows에서 또 다른 서버에 접속하려면 프로그램을 다운받아야 합니다. PuTTy를 많이 사용하기도 하는데, 저는 mobaXterm을 사용했습니다. 1. Session을 눌러줍니다. 2. SSH를 누르고 Remote host에는 인스턴스의 "퍼블릭 IPv4 주소"를, Specify username에는 ubuntu라고 작성해줍니다. 그리고 Advanced SSH settings에서 Use private key를..
[AWS] S3와 CloudFront로 배포하기 AWS에서 S3와 CloudFront로 웹페이지를 배포하는 법에 대해 정리하겠습니다. 저는 프론트엔드는 S3와 CloudFront를 사용해 배포하고, 서버는 API Gateway와 Lambda를 사용하여 배포하였습니다. 프론트엔드와 백엔드를 따로 배포해야할 때 프론트엔드를 배포하기 좋은 방법 중의 하나인 것 같습니다. 1. S3에 프론트엔드 파일 업로드하기 1) S3에 버킷 생성 버킷을 만들어줍니다. 이 때, 모든 퍼블릭 액세스 차단의 체크를 해제해 주어야 합니다. 2) 버킷에 파일 업로드 버킷에 프론드엔드 파일을 업로드시킵니다. (ex. html 파일) 이 때, 권한에 가서 '퍼블릭 읽기 액세스 권한 부여'로 해줍니다. 3) 정적 웹 사이트 호스팅 버킷 > 속성에 들어가서 맨 밑으로 가면 정적 웹 사이..
[AWS] EC2 서버 접속하여 nginx 설치하기 1. ubuntu 서버에 접속합니다. 2. 패키지들을 업데이트 합니다. sudo apt-get update 3. 패키지들을 업그레이드 합니다. sudo apt-get upgrade 4. nginx를 설치합니다. sudo apt-get install nginx 5. 생성한 EC2의 80포트를 열어주고, EC2의 퍼블릭 IP 주소에 접속하면 다음과 같은 화면을 볼 수 있습니다. 해당 html 파일은 우분투 서버의 /var/www/html 디렉토리에 존재합니다. ls /var/www/html /var/www/html에 있는 파일을 확인해보면 index.nginx-debian.html 이 있는 것을 확인할 수 있고, cat /var/www/html index.nginx-debian.html 위의 명령어로 해당 ..
[AWS] EC2 생성하고 접속하기 (mac) 1. EC2 콘솔에 접속하여 인스턴스 시작을 클릭합니다. 2. AMI를 선택합니다. Ubuntu Server 16.04를 선택합니다. 3. 인스턴스 유형은 t2.micro를 선택하고 인스턴스 세부 정보 구성으로 이동합니다. 4. 설정할 사항들이 있으면 설정해주고, 스토리지 추가로 넘어갑니다. 5. 스토리지를 추가합니다. 6. 태그를 추가합니다. 7. 보안 그룹을 생성합니다. 8. key pair를 다운로드 받습니다. 9. 인스턴스 생성이 완료된 것을 확인할 수 있습니다. 10. 인스턴스에 접속하는 방법입니다. 1) terminal에 접속합니다. 2) key를 다운받았던 디렉토리로 이동합니다. 3) chmod 400 [key이름.pem] 명령어를 입력합니다. (아래 예시는 파일 이름이 ubuntuKey.p..
[dynamoDB] decimal을 모두 int로 변환하는 법 dynamoDB에서 query를 하거나 scan을 해서 값들을 가져오면, 숫자가 Decimal 형태로 나오게 됩니다. 이 때 모든 Decimal들을 한 번에 int형으로 바꾸는 방법에 대해 소개하겠습니다. {'Items': [{'email': 'example@gmail.com', 'nickname': 'coffee', 'age' : Decimal(20)}, {'email': 'example2@gmail.com', 'nickname': 'muffin', 'age' : Decimal(10)}], 'Count': 2, 'ScannedCount': 2, 'ResponseMetadata': {'RequestId': 'ABCDEFG', 'HTTPStatusCode': 200, 'HTTPHeaders': {'serv..
[Lambda] IAM 역할 생성 AWS Lambda 함수를 생성 시 권한 부여 AWS에서 Lambda함수를 생성할 때에는 '역할'이라는 것을 생성해주어야 합니다. Lambda 함수 생성에서 실행 역할 탭을 보면 Default로 기본 'Lambda 권한을 가진 새 역할 생성'에 체크가 되어있습니다. 이 역할에는 CloudWatch Logs에 로그를 남길 수 있는 정책만이 포함되어 있습니다. 즉, 이 권한으로 설정을 하게되면 lambda함수에서 dynamoDB에 접근은 할 수가 없게됩니다. 그래서 따로 dynamoDB 접근 권한 정책도 포함시켜주어야 합니다. 그래서, Lambda함수를 생성하기 전에 미리 dynamoDB에 접근할 수 있는 정책을 포함한 Lambda함수에서 사용할 수 있는 역할을 만들어 보려고 합니다. 1. IAM > 역할 ..
[DynamoDB] DynamoDB 사용하기 1 (GET, QUERY, SCAN) Python으로 DynamoDB에 접근하는 방법에 대해 설명하도록 하겠습니다. Table 가져오기 먼저, python에서 AWS 서비스를 사용할 때 boto3 SDK를 사용합니다. 테이블을 가져오는 법은 다음과 같습니다. import boto3 db = boto3.resource('dynamodb') table = db.Table('테이블명') GET dynamoDB에서 get을 하기 위해서는 table.get_item을 사용합니다. import boto3 from boto3.dynamodb.conditions import Key db = boto3.resource('dynamodb') table = db.Table('테이블명') emailFromToken = "example@gmail.com" res ..