标签归档:aws

RSS feed of aws

在Amazon Linux 使用 Let's encrypt 免费的SSL

在Amazon Linux 使用 Let's encrypt 免费的SSL

如果你使用ELB来做负载均衡,在AWS上可以很方便的使用SSL。如果不使用ELB就需要自己来配置SSL。
Let's encrypt 提供期限为三个月的免费SSL证书,到期之后需要renew,官方还提供自动renew的工具certbot

certbot

certbot 是一个自动申请和续期SSL证书的工具。在官网certbot.eff.org可以找到各种OS和Web服务器下的安装方法。常见的Ubuntu和CentOS安装起来十分方便。

Amazon Linux

在AWS EC2上,官方推荐的是OS是Amazon Linux,基于RHEL 6源码重新编译的,提供了Amazon自己的工具和源。certbot的安装方式类似于RHEL 6/CentOS 6

申请SSL证书步骤

  • ssh到Server
  • 下载certbot
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
  • 执行certbot
sudo ./certbot-auto --debug ...

继续阅读

boto遍历S3

遍历S3

首先你需要一个有S3 list权限的key,如果bucket里面的文件很多的话,推荐使用分页来遍历

session = boto3.Session(aws_access_key_id=<s3_aws_key_id>,
                            aws_secret_access_key=<s3_aws_secret_key>,
                            region_name='us-east-1')
    s3 = session.resource('s3')
    client = session.client('s3')
    paginator = client.get_paginator('list_objects')
    for result in paginator.paginate(Bucket=<s3_bucket>, Prefix=<s3_path_prefix>:
        for content in result.get('Contents'):
            if content.get('Size') > 0:
                print content.get('Key')

分页默认大小是1000,可以修改PageSize,改小可以减少响应时间

paginator ...

继续阅读

AWS S3 本地测试环境的搭建

s3 本地测试环境的搭建

s3 ninja

http://s3ninja.net/ s3 ninja 在本地模拟S3 API, 而且自带一个管理界面, 但是需要修改代码或者增加配置,把endpoint_url指定为 http://localhost:9444/s3

如果我们不想修改代码,可以通过一些简单的配置把请求导向本地 s3 ninja

s3 virtual hosted-style and path-style access

访问s3 bucket上的文件,有两种方式:

# example bucket名字 johnsmith  文件 homepage.html

# Path Style
http://s3.amazonaws.com/johnsmith/homepage.html

# Virtual Hosted–Style
http://johnsmith.s3.amazonaws.com/homepage ...

继续阅读

使用Python操作亚马逊DynamoDB

使用Python操作亚马逊DynamoDB

DynamoDB 是亚马逊AWS提供的一种完全托管的NoSQL数据库,省去部署/监控/维护数据库环节,给开发者节约了大量时间。 而且亚马逊提供了一个本地模拟环境用于测试和开发,我们可以使用本地的DynamoDB.local来学习和熟悉DynamoDB的API。

下载DynamoDB.local

从亚马逊的官方文档可以找到下载地址

解压之后:

dynamodb_local_2015-07-16_1.0$java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
Initializing DynamoDB Local with the following configuration:
Port:   8000
InMemory:   false
DbPath: null
SharedDb:   true
shouldDelayTransientStatuses:   false
CorsParams: *

在浏览器中打开http://localhost:8000/shell/,你会看到DynamoDB javascript shell,在网页上你可以试试javascript API的用法。

image

Boto3

在试用之后javascript ...

继续阅读

使用Python操作亚马逊S3

使用Python操作亚马逊S3

亚马逊S3(Amazon Simple Storage Service) 为开发人员和IT团队提供安全、耐久且扩展性高的对象存储。 可以理解为一个在线的网盘,而且这个网盘可以通过程序上传,下载,获取外链。亚马逊按照存储空间和请求次数收费。

对小公司来说是一个稳定的在线存储,可以减少维护成本。

boto3 Python SDK

目前官方推荐的Python SDK 是boto3 https://github.com/boto/boto3

接下来进入正题,直接看代码把。:

from boto3.session import Session

session = Session(aws_access_key_id='<key>', \
    aws_secret_access_key='<key>', \
    region_name='us-east-1')

s3 = session.resource('s3')
client = session.client('s3')

#上传
data = open('~/beakup.gif', 'rb ...

继续阅读

如何在亚马逊ec2上部署django应用

如何在亚马逊ec2上部署django应用

很多时候我们会在环境配置上花大量的时间,这里我记录了一下我配置的过程,希望能节省大家一些的时间。

我的环境是amazon ec2,选择的操作系统是Amazon Linux AMI 2015.03 (HVM) ,选择的最常见的部署方案 nginx + gunicorn + django + mysql

mysql

首先安装mysql-sever:

$sudo yum install mysql-server mysql mysql-devel
$sudo chown mysql.mysql -R /var/lib/mysql

修改配置文件/etc/my.cnf:

[mysqld]
datadir=/var/lib/mysql # 数据文件存放的位置,修改成适合的位置

character-set-server=utf8 # 设置默认编码

[client]
default-character-set=utf8 # 设置默认编码

启动mysql:

$sudo service mysqld ...

继续阅读