'Server/AWS'에 해당하는 글 49건

AWS CLI

Server/AWS 2018. 7. 26. 14:41

AWS CLI(Command Line Interface) 는 AWS 서비스와 상호 작용하는 명령을 제공하는 오픈 소스 도구이다.

Linux 나 Windows 등의 원하는 터미널 프로그램에서 AWS Management 콘솔이 제공한 모든 기능을 사용할 수 있다.

콘솔이 제공하는 모든 기능을 사용할 수 있지만, 반드시 cli 를 사용해야만 하는 경우도 있으니 참고하자.

 

 

설치

 

Linux 든 Windows 든 AWS cli 배포 방식이 pip 이므로, python 이 먼저 설치되어야 한다.

윈도우라 하더라도 최신 버전을 필요로 하는 기능들이 많아 간편한 업데이트를 위해 pip 설치를 하는 것이 좋다.

윈도우 기준으로 python 사이트에서 python 을 설치 한 후 path 를 추가하고 아래와 같이 AWS cli 를 설치하고 업데이트 할 수 있다.

 

$ pip install awscli
$ pip install awscli --upgrade --user
cs

 

 

자격 증명 등록

 

대부분의 경우 자격 증명(credential) 을 필요로 하므로, 자격 증명을 로컬 파일에 저장해 놓을 수 있다.

 

~/.aws/credentials
 
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
 
~/.aws/config
 
[default]
region=us-west-2
output=json
cs

 

이렇게 사용자 디렉토리에 두개의 파일로 나누어 access_key, secret_key, region, output 등을 수동으로 설정할 수도 있고, aws configure 명령으로 설정할 수도 있다. 또한 여러 profile 을 관리할 때는 --profile name 옵션을 사용하여 등록하고 선택하여 사용할 수 있다.

 

$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: ENTER

$ aws configure --profile user2
...

$ aws configure list-profiles
default
user2

# default profile을 변경
$ export AWS_DEFAULT_PROFILE=user2 (linux)
$ set AWS_DEFAULT_PROFILE=user2 (windows)
cs

 

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

NAT gateway

Server/AWS 2017. 12. 9. 22:14



AWS Lambda 에서 외부에서 자료를 읽어와 VPC 의 RDS 에 저장하는 function 을 만들었다.

RDS 저장을 위해 Lambda 에 VPC 를 설정하면 외부 통신이 안되고, VPC 를 빼버리면 RDS 저장이 안되고.


기본적으로 Lambda 에 VPC 를 설정하면 선택된 서브넷으로만 접근을 할 수 있다.

Lambda 는 Public IP 가 없기 때문에 Internet Gateway 를 사용할 수 없고, 대신에 NAT Gateway 에 EIP 를 할당하여 사용할 수 있다.


Lambda 설정시 VPC 를 선택하면 아래와 같은 주의문을 볼 수 있다.


When you enable VPC, your Lambda function will lose default internet access. If you require external internet access for your function, ensure that your security group allows outbound connections and that your VPC has a NAT gateway.

-> 외부 인터넷 접근을 위해 시큐리티 그룹에 아웃바운드를 허용하고, NAT gateway 를 설정하라는...



NAT(Network Address Translation) gateway 은 자체 IP 를 할당하여 private 서브넷에 속한 인스턴스들을 외부망으로 보낼 수 있도록 한다.

NAT gateway 은 public 서브넷을 지정하여 IP 할당하면 생성 완료되며, private 서브넷과 연결된 라우팅 테이블에 nat-xxxxxxx 를 업데이트하면 설정 끝.

그리고 lambda 서블릿에 해당 private 서브넷을 설정하고, outbound 가능한 security group 을 선택하면 완료!


VPC 의 일반적인 EC2 와 Lambda 에서 외부망 통신하는 플로우는 다음과 같다.


VPC EC2(EIP) -> Public Subnet -> Routing Table(IGW) -> Internet Gateway -> Internet

VPC Lambda -> Private Subnet -> Routing Table(NAT) -> NAT Gateway(EIP) -> Public Subnet -> Routing Table(IGW) -> Internet Gateway -> Internet


Lambda 에서 간단히 inline Python 소스를 만들어 테스트 해 볼 수 있다.


from urllib import request
def lambda_handler(event, context):
 
response = request.urlopen('https://www.google.com/')
return response
cs


Timeout 걸리면 실패. 응답이 있으면 성공.


VPC 는 꽁짜지만, NAT gateway 가 유료라는 건 함정.




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Free Tier Email

Server/AWS 2016. 1. 13. 01:02

AWS Free Tier

 

 

프리 티어 연장하기!
뭐 별로 한 것도 없는데 벌써 1년이 지났네. 과금 전에 후딱 계정 삭제. 크...
계정을 어케 생성했었는지 기억도 가물가물...
어짜피 회사꺼 쓰느라 사용하지도 않는데 그래도 더 맘편하게 놀아줄 공간이 필요하지...

 

 

프리 티어 가입시 받게 되는 3통의 이메일.
메일 내용은 이제 막 가입한 사용자에게 무엇부터 시작하면 되는지 잘 알랴줌~

 

 

1. Welcome to Amazon Web Services

 

프리티어 소개 - http://aws.amazon.com/ko/free/
계정 접속 - https://console.aws.amazon.com
요금 정책 - http://aws.amazon.com/ko/pricing/
지원 센터 - https://aws.amazon.com/ko/premiumsupport/
AWS 시작 설명서 - http://aws.amazon.com/ko/documentation/gettingstarted/
AWS Marketplace - https://aws.amazon.com/marketplace

 

 

2. AWS Support (Basic) Sign-Up Confirmation

 

AWS 의 SDK, CLI, API 를 사용한다면, 요청한 자원에 권한이 있는 사용자 인지를 인증하기 위한 access keys 를 제공해야 한다.
계정의 access keys 관리 - https://console.aws.amazon.com/iam/home?#security_credential

 

 

3. Your AWS Account is Ready - Get Started Now

 

- AWS 관리 콘솔에 접근.
- EC2 인스턴스를 시작.
- Marketplace 에서 EC2 에 최적화된 인기있는 소프트웨어를 검색.

 

AWS 시작 설명서 - http://aws.amazon.com/ko/documentation/gettingstarted/
개발자 시작 튜토리얼 - http://aws.amazon.com/ko/developers/getting-started/
AWS Tool 다운로드 - http://aws.amazon.com/ko/tools/

 

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

AWS 시간 설정

Server/AWS 2015. 2. 21. 13:25

많은 로그들의 시간이 맞지 않음을 확인.


# date 
Fri Feb 13 09:41:28 UTC 2015


서버 시간이 안드로메다 ㅋㅋ
리눅스 설치를 국제 표준시로 맞춰 놓으셨구만.



한국 표준시(KST)로 변경하는 방법


# mv /etc/localtime /etc/localtime-ori
# ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
# date
Fri Feb 13 18:45:41 KST 2015

 

/etc/localtime 은 응용 프로그램에서 사용되는 로컬 시스템의 시간대를 구성하는 파일이다.

 

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

S3 setting

Server/AWS 2015. 2. 20. 00:54

웹서비스 가동시 필요한 이미지 파일이나 미디어 파일들은 별도의 독립적인 위치에 저장하면 매우 효과적이다.
웹서버를 여러대 운용할 경우 특히 유용하다. 아마존에서도 이러한 클라우드 스토리지 서비스를 제공한다.

 

S3(Simple Storage Service), 아마존에서 제공하는 클라우드 스토리지 서비스이다.
EC2 서비스와 독립적인 서비스로 미디어 서버로 사용하지 않더라도 여타 클라우드 스토리지 서비스와 동일하게 사용 가능하다.
S3에 저장되는 파일은 객체라 하고 객체는 버킷에 저장되게 된다. (객체=데이터 및 메타데이터, 버킷=컨테이너)

객체는 텍스트 파일, 사진, 동영상 및 기타 모든 종류의 파일들이 될 수 있다.
각 버킷마다 인터넷을 통해 접속할 수 있는 public DNS 를 갖기 때문에 보안 정책을 통해 다운로드가 가능하다.

 

 

 

 

S3 생성
Create Bucket 버튼을 클릭하여 버킷이름과 지역(region)을 선택한다. S3는 EC2 인스턴스처럼 지역을 선택하여 저장할 수 있다.
버킷 이름은 리전은 중복될 수 없으며 소문자만 입력이 가능하다.
Set Up Logging 버튼을 클릭하여 버킷에 액세스가 발생할 때마다 log를 남길 수도 있다.

 

S3 설정
버킷이 생성되었으면 해당 버킷을 클릭하여 상세 설정을 수정할 수 있다.

 

  • Permissions  메뉴는 버킷에 대한 권한 설정을 할 수 있으며 접근하는 모든 사람에게 리스트 읽기/쓰기 권한을 주려면 Grantee 에서 Everyone 을 선택하고 List 와 Upload/Delete 권한에 체크 하면 된다.
  • Static Website Hosting 메뉴는 웹서비스가 가능한 인터넷 주소 Endpoint 를 제공한다. Route53 서비스를 이용해서 소유하고 있는 도메인으로 변환도 가능하고, 정적인 서비스만 제공하므로 php, jsp, asp 등은 사용할 수 없다.
  • Logging 메뉴는 S3 생성시 보았던 액세스 log 설정을 수정할 수 있다.
    Events 메뉴는 데이터 유실시 관리자에게 알림을 발생해 주는 서비스이다.
  • Versioning 메뉴는 버킷에 버전을 활성화하면서 저장된 객체들에 대해 버전 관리를 가능하게 할 수 있다.
  • Lifecycle 메뉴는 점점 늘어나는 데이터를 저렴한 Glacier 스토리지로 이동할 수 있게 규칙을 정할 수 있다.예를 들어 /logs 디렉토리 안에는 계속해서 log 파일들이 생성되니 주기적으로 Glacier 스토리지로 옮기거나 삭제할 수 있다.
  • Tags 메뉴는 비용 할당 보고서에 표시되는 버킷 이름을 생성할 수 있다.

 

 

 


S3 에 객체 업로드

관리 콘솔이나 SDK, 클라이언트 툴(CloudBerry Explorer 등) 을 이용하여 원하는 버킷 객체를 업로드 할 수 있다.




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,