728x90

프로그램 실행 시 수동적으로 매번 관리자 권한으로 실행할 필요 없이 영구적으로 실행할 수 있습니다.

다음과 같이 간단히 설정 가능합니다.

실행 방법

1. 마우스 오른쪽 버튼을 클릭하고 속성 메뉴를 클릭합니다.

2. [고급] 을 클릭합니다.

3. [관리자 권한 실행] 을 클릭합니다.

4. PowerShell 실행을 통해 결과 확인

관리자 권한 실행 전

관리자 권한 실행 후

728x90
반응형
728x90

파이썬을 설치하는 방법은 아래와 같습니다.

1. PowerShell 실행

PowerShell을 실행하여 python 입력합니다.

2. Python 설치

실행된 마켓플레이스에서 설치합니다.

3. Python 실행 확인

PowerShell에서 python --version을 입력합니다.
다음과 같이 설치된 버전을 확인 할 수 있습니다.

728x90
반응형
728x90

Windows10의 메일 서비스를 카카오메일과 연결 합니다.

카카오메일은 SMTP/POP3를 지원하여 Outlook 과 같이 다른 메일서비스와 연결이 가능합니다.

1. 먼저 POP/SMTP를 사용함으로 설정합니다.

2. Windows10의 메일을 실행시키고, 계정을 추가합니다.

3. 고급설정을 선택합니다.

4. 인터넷 전자메일을 선택합니다.

5. 연동할 서버 정보를 입력합니다.

  • 인터넷전메일계정 : 메일주소(ex: example@kakao.com)
  • 사용자이름 : 카카오메일 접속 시 아이디
  • 암호 : 카카오메일 접속 시 패스워드
  • 계정이름 : 메일 계정 목록에 표시될 이름 (예. KAKAO)
  • 이 이름으로 메시지 보내기 : 메시지 보내는 이름 (예. KAKAO_MAIL)
  • 받는 전자 메일 서버 : pop.kakao.com
  • 계정 유형 : POP3
  • 보내는(SMTP) 전자 메일 서버 : smtp.kakao.com

728x90
반응형
728x90

Anaconda 터미널에서 Requests 패키지를 설치합니다.

 

먼저 설치할 가상환경 목록을 확인합니다.

conda env list

설치할 가상환경을 활성화 시킵니다.

conda activate <가상환경이름>

requests 패키지를 설치합니다.

conda install -c anaconda requests

 

 

Requests :: Anaconda.org

Description Requests is the only Non-GMO HTTP library for Python, safe for human consumption.

anaconda.org

 

728x90
반응형
728x90

AWS Pycharm Toolkit을 활용하여 다음과 같은 작업을 수행할 수 있습니다.

  • 원하는 런타임에 즉시 배포 가능한 서버리스 애플리케이션을 생성합니다.
  • Lambda 런타임에서 단계별 디버깅으로 로컬에서 코드를 테스트 할 수 있습니다.
  • 원하는 AWS 리전에 애플리케이션을 배포합니다.
  • Amazon Simple Storage Service(S3), Amazon API Gateway 및 Amazon Simple Notification Service(SNS)를 활용하고 구성할 수 있습니다.

Pycharm Toolkit 설치

[File]-[Settings]-[Plugins] 에서 aws tool을 검색하여 AWS Toolkit을 설치하고, Pycharm을 재시작 합니다.

AWS Serverless Application Model(SAM) 설치

일부 기능은 AWS Serverless Application Model(SAM) CLI를 사용하기 때문에 AWS SAM을 설치합니다. https://aws.amazon.com/ko/serverless/sam/

※ 설치는 Linux 버전으로 설치합니다.

1. AWS SAMCLI 다운로드 받고 sam-installation/하위에 설치 파일 압축 해제

unzip aws-sam-cli-linux-x86_64.zip -d sam-installation

2. AWS SAM CLI를 설치

sudo ./sam-installation/install

3. 설치 결과 확인

sam --version

# Result
SAM CLI, version 1.27.2

업그레이드

--update 옵션을 다음과 같이 설치 명령에 추가합니다.

sudo ./sam-installation/install --update

설치삭제하기

1. which 명령으로 심볼릭 링크 확인

which sam

# 결과예시
/usr/local/bin/sam

2. symlink가 가리키는 디렉터리 확인

ls -l /usr/local/bin/sam

# 결과 예시
lrwxrwxrwx 1 ec2-user ec2-user 49 Oct 22 09:49 /usr/local/bin/sam -> /usr/local/aws-sam-cli/current/bin/sam

3. 심볼릭 링크 삭제

sudo rm /usr/local/bin/sam

4. 설치 디렉터리 삭제

sudo rm -rf /usr/local/aws-sam-cli

Reference

  1. https://aws.amazon.com/ko/blogs/korea/new-aws-toolkits-for-pycharm-intellij-preview-and-visual-studio-code-preview/
  2. https://docs.aws.amazon.com/ko_kr/serverless-application-model/latest/developerguide/serverless-sam-cli-install-linux.html
728x90
반응형
728x90

Amazon Simple Storage Service (Amazon S3)에서 버킷을 생성하고, 퍼블릭으로 설정하여 사용자가 사진을 볼 수 있도록 허용하는 방법입니다.

1. S3 버킷생성하기

[S3] 메뉴에 진입한 뒤, [버킷 만들기] 을 선택합니다.

버킷 이름은 Unique한 이름으로 명명하고, 리전을 선택합니다.

외부에서 접근할 수 있도록 [모든 퍼블릭 액세스 차단] 체크를 해제합니다.

퍼블릭 읽기 액세스 권한을 부여하기 위해 버킷 정책을 복사한 후 버킷 정책 편집기에 붙여 넣습니다. Resource는 생성된 버킷 ARN을 복사하여 붙여 넣습니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::Bucket-Name/*"
            ]
        }
    ]
}

브라우저 스크립트가 Amazon S3 버킷에 액세스하려면 먼저CORS 구성를 다음과 같이 설정합니다.

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "x-amz-server-side-encryption",
            "x-amz-request-id",
            "x-amz-id-2"
        ],
        "MaxAgeSeconds": 3000
    }
]

2. 이미지 업로드

이미지 하나를 업로드 해보고, 해당 링크를 오픈합니다. 링크 오픈 시 크롬 시크릿창으로 오픈하여 외부 접근이 가능한지 확인합니다.

링크 결과입니다.

Reference

  1. https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/WebsiteAccessPermissionsReqd.html
  2. https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/ManageCorsUsing.html
728x90
반응형

'AWS' 카테고리의 다른 글

AWS Cli 버전 2 설치  (0) 2021.09.03
AWS Pycharm Toolkit 설치하기  (0) 2021.08.08
[AWS] EC2 인스턴스 SSH 접속하기(2)  (0) 2021.08.03
[AWS] EC2 인스턴스 SSH 접속하기(1)  (0) 2021.08.03
AWS 람다(Lambda)로 Python함수 구현하기  (0) 2021.07.30
728x90

이전에 생성된 EC2 인스턴스에 SSH 클라이언트로 EC2 서버에 접속해 보겠습니다.

EC2 생성관련 내용은 링크를 참고하세요.

 

[AWS] EC2 인스턴스 SSH 접속하기(1)

SSH를 활용하여 EC2 인스턴스에 접속할 수 있는 방법을 알아보겠습니다. 먼저 접속할 EC2를 생성해보겠습니다. 1. EC2 인스턴스 생성하기 1.1 인스턴스 시작 EC2 대시보드에서 인스턴스시작 버튼을 클

jjnomad.tistory.com


2. EC2 연결하기

EC2 대시보드에서 연결하기를 클릭합니다.

아래와 같이 접속할 수 있는 가이드를 제공합니다.

다운로드 받은 pem파일은 리드 권한으로 최소화 하고 ssh 클라이언트 접속 합니다.

결과

위와 같이 했을 경우 아래와 같이 "Permissions 0555" 에러 발생할 수 있습니다.

The authenticity of host 'ec2-3-34-192-17.ap-northeast-2.compute.amazonaws.com (3.34.192.17)' can't be established.
ECDSA key fingerprint is SHA256:sBCH/6kroLB89QA4VBvyV3ntx8CvtV5wjPUvAQOE4hg.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'ec2-3-34-192-17.ap-northeast-2.compute.amazonaws.com,3.34.192.17' (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0555 for 'ec2-key-pair.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "ec2-key-pair.pem": bad permissions
ec2-user@ec2-3-34-192-17.ap-northeast-2.compute.amazonaws.com: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

그럴경우, sudo 명령어로 실행하면 접속이 가능합니다.

sudo ssh -i "ec2-key-pair.pem" ec2-user@ec2-3-34-192-17.ap-northeast-2.compute.amazonaws.com

접속이 되었습니다. 😄

The authenticity of host 'ec2-3-34-192-17.ap-northeast-2.compute.amazonaws.com (3.34.192.17)' can't be established.
ECDSA key fingerprint is SHA256:sBCH/6kroLB89QA4VBvyV3ntx8CvtV5wjPUvAQOE4hg.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'ec2-3-34-192-17.ap-northeast-2.compute.amazonaws.com,3.34.192.17' (ECDSA) to the list of known hosts.

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-172-31-1-4 ~]$
728x90
반응형
728x90

SSH를 활용하여 EC2 인스턴스에 접속할 수 있는 방법을 알아보겠습니다.


먼저 접속할 EC2를 생성해보겠습니다.

1. EC2 인스턴스 생성하기

1.1 인스턴스 시작

EC2 대시보드에서 인스턴스시작 버튼을 클릭합니다.

1.2 AMI 선택

EC2에 가장 최적화된 Amazon Linux 2 AMI (HVM), SSD Volume Type을 선택합니다.

1.3 인스턴스 유형 선택

사용목적에 따라 자원은 선택가능합니다. 테스트를 위해 프리티어를 사용합니다.

1.4 인스턴스 세부 정보 구성

모두 default 값으로 두고 다음으로 넘어갑니다.

1.5 스토리지추가

스토리지도 기본값으로 선택하고 다음을 클릭합니다. EBS 스토리지는 30GB까지는 무료입니다.

(참고)https://aws.amazon.com/ko/ebs/pricing/

1.6 태그추가

리소스의 인식할 수 있는 Key-Value로 입력합니다.

  • 키 : Name, 값: TestServer

1.7 보안그룹 구성

새 보안 그룹을 생성하고 SSH, HTTP, HTTPS 프로토콜을 선택합니다.

SSH 는 소스에 내 IP를 입력 하고 저장하고 검토 및 시작을 클릭합니다.

1.8 인스턴스 시작 검토

[시작하기]를 클릭합니다.

1.9 키 페어 생성

EC2 서버에 접근하기 위한 새 키 페어 생성을 선택하고, 키페어를 다운로드 받습니다.

다운로드 받은 키페어는 EC2 서버에 접속하기 위한 개인키로 활용 됩니다.

2. 생성결과

2~3분 정도 후 생성 결과를 확인할 수 있습니다.

728x90
반응형
728x90

AWS 람다(Lambda)는 기본적인 라이브러리만 제공하고, 필요한 라이브러리를 import 하더라도 실행되지 않습니다. 따라서 머신러닝(Machine Learning)이나 크롤링 등을 개발하기 위해서는 추가적인 라이브러리 사용을 위해 필요한 라이브러리를 압축해서 올려서 사용해야 합니다.

웹 크롤링에 많이 사용되는 BeautifulSouprequests 라이브러리를 활용해서 API 서버를 구현해보겠습니다.

1. 디렉토리를 만들고 BeatifulSoup과 requests 라이브러리를 설치합니다.

설치된 파일은 아래 계층구조로 zip파일로 압축 해야 라이브러리를 인식할수 있습니다.

Python : python, python/lib/python3.7/site-packages(사이트 디렉토리)

mkdir python \
cd python

# 현재 폴더 위치에 설치하도록 -t 옵션을 붙입니다.
pip3 install bs4 -t .
ptp3 install requests -t .

# 상위 폴더에서 설치한 파일을 압축합니다.
cd ..
zip -r crawls.zip .

2. Lambda Layers 활용하여 공통으로 사용하는 라이브러리를 등록합니다.

Lambda Layers는 버전별로 수정이 불가능하고 만약 수정이 필요하다면 zip파일을 다시 올리고 새로운 리비전이 생성됩니다.

3. 함수 생성 및 Layer 추가

크롤링 함수를 생성합니다.

Layer에 라이브러리를 추가합니다.

4. 코드 입력

삼성전자의 PBR 값을 구하는 코드를 작성해보겠습니다.

import json
import requests
from bs4 import BeautifulSoup

def lambda_handler(event, context):
    # TODO implement
    fs_url = 'http://comp.fnguide.com/svo2/asp/SVD_Finance.asp?pGB=5&cID=&MenuYn=Y&ReportGB=D&NewMenuID=103&stkGb=701&gicode=A005930'
    fs_page = requests.get(fs_url)

    soup = BeautifulSoup(fs_page.text, "html.parser")

    corp_info_list = soup.find("div", {"id":"corp_group2"})

    print(corp_info_list.prettify())

    data = corp_info_list.select("dl")
    pbr = data[6].select("dd")[1].string

    json_data = {
        'pbr' : pbr
    }

    return {
        'statusCode': 200,
        'body' : json.dumps(json_data)
    }

작성한 코드를 테스트 하기 위한 이벤트를 구성합니다.

Lambda는 기본 128MB, 3초 Time-out입니다. 데이터 크롤링 위해 메모리와 Time-Out을 늘립니다.

5. 결과 확인

Reference

  1. https://beomi.github.io/2018/11/30/using-aws-lambda-layers-on-python3/
  2. https://medium.com/@rabter/aws-lambda-layer를-사용하는-방법-how-to-use-aws-lambda-layers-c206ba40d4cc
728x90
반응형

+ Recent posts