分类目录归档:Aws

汇总的一些报错解决方法

1、no module named _sqlite3

安装:

yum install sqlite-devel

重新编译新的python版本

./configure

make

make install

如果你使用pyenv管理多个版本,就用pyenv install -v 2.7.12 重新覆盖安装就可以了。

2、安装mysql-python:报 error: command ‘gcc’ failed with exit status 1

解决:
yum -y install mysql-devel libxml2 libxml2-dev libxslt* zlib gcc openssl

公有云会淘汰那些运维职业?

在现在,公有云的发展,绝对不容我们每个运维人忽视,它带给我们运维人翻身便利的同时,也对我们运维的某些岗位带来了冲击,以下以我个人理解随着公有云的发展那些岗位会被影响:

第一,IDC基础运维岗位,就是负责在公司安装机器、上架插线的岗位,会被逐渐替换掉,因为IAAS,即基础实施即服务,公有云现在基本都在做的这块,人家都把这块做出服务卖了,如果价格便宜,所以公司是在没必要自己做这些毫无价值的内容了。

第二,网络工程师岗位,网络工程师一直以来市场需求就不高,那随着公有云的成熟,就更不要网络工程师的存在了,因为公有云都帮你实现好了,而且超出你的期望满足你的需求,所以这些岗位会慢慢缩减,但不会消失,一些高手还可以去BAT发展,但要趁早了。

第三,服务器硬件评测工程师,就是在物理机时代,公司为了更好的选择好机器不出问题,保证业务的稳定,所以在公司设立对各个厂家服务器评测的工程师,因为使用云了,基本的硬件内容就不需要去考虑了,性能也不用考虑了,公有云可以随时动态调整云主机配置,这部分岗位会大大缩减,但不会消失,因为BAT还是需要的。

以上只是个人的一些理解,不代表权威, 同时做运维的兄弟进行交流。

常用AWS POLICY

自己常用的policy,分享出来,希望大家可以用得到,以后在此基础上持续更新:

受限的合作方:

受限的资源:

 

EC2;

 

CloudFront服务发布二

接上篇,给合作方建好后,以为没事了,谁知过了2天,运营的人跑过来说也需要这个bucket的访问权限,只需要其中一个目录的上传删除权限即可,而且研发方已经建好了目录,好吧,作为一个优秀的运维人员,咱们是来者不拒呀,开工,建IAM用户,细节不废话了,这里我们主要讲如何设置用户的policy,建好用户后进入用户权限设置页,直接设置inline policy,json如下:

这样就设置好了,因为运营基本都是技术小白,所以还得提供个操作S3的工具,研发那边指定要选择S3 Browser,不知为何,其实CloudBerryLab我也测试了,两种工具都可以,然后填入key,加入一个扩展的bucket(add external bucket), 输入

点创建就完成了,其他不用调整,运营人员就可以对这个目录有上传和删除权限了,如果上传后马上是访问不到的,没关系,稍等几分钟就可以访问了,可能是cdn需要同步的原因。

搞完运营,研发又来了,说*.json的文件不能缓存,我当时就很奇怪,不缓存的东西为毛放CDN上呢?我说为什么不直接放到nginx上处理这种不变的文件,当时讨论了一大堆,还是要建不缓存机制,打开CloudFront页面,找到Invalidations,然后点击create invalidations, 输入:/*.json,点击创建即可,这样就不缓存以.json结尾的文件了,到此需求才全部结束。

CloudFront服务发布

最近公司要在海外上新业务,采用了亚马逊的CloudFront服务,源站采用的是S3服务,这也是亚马逊推荐的成熟架构,因为这次是合作,所以源站的数据主要是由对方上传,所以需要建一个bucket,给对方设置好上传下载的权限即可,基本需求就是这样,我们看来如何完成:

首先第一步先建立bukcet, 例如名称可以叫www.mindg.cn,具体建立过程就不说了,不管用web console还是用API都很简单,我们来进入下一步,因为是要对方访问,所以需要建立一个IAM用户,建立过程也不多说了,需要注意的是不用给用户设置密码,用户生成的key字符串一定要下载下来,因为亚马逊建用户时那个key页面只能看到一次,如果不下载以后在想得到就没可能了。

经过以上操作,bucket,iam用户都已经建立完毕,接下来我们来设置他们的policy,先设置用户的,用户直接设置INLINE的策略,因为要给bucket所有的权限,所有能给的全部给,这是我的第一版体policy设置:

{
  “Version”: “2012-10-17″,
  “Statement”: [
    {
      “Sid”: “Stmt1385176073000″,
      “Effect”: “Allow”,
      “Action”: [
        “s3:AbortMultipartUpload”,
        “s3:DeleteObject”,
        “s3:DeleteObjectVersion”,
        “s3:GetBucketAcl”,
        “s3:GetBucketLocation”,
        “s3:GetBucketLogging”,
        “s3:GetBucketNotification”,
        “s3:GetBucketPolicy”,
        “s3:GetBucketRequestPayment”,
        “s3:GetBucketVersioning”,
        “s3:GetBucketWebsite”,
        “s3:GetLifecycleConfiguration”,
        “s3:GetObject”,
        “s3:GetObjectAcl”,
        “s3:GetObjectTorrent”,
        “s3:GetObjectVersion”,
        “s3:GetObjectVersionAcl”,
        “s3:GetObjectVersionTorrent”,
        “s3:ListAllMyBuckets”,
        “s3:ListBucket”,
        “s3:ListBucketMultipartUploads”,
        “s3:ListBucketVersions”,
        “s3:ListMultipartUploadParts”,
        “s3:PutBucketAcl”,
        “s3:PutBucketLogging”,
        “s3:PutBucketNotification”,
        “s3:PutBucketPolicy”,
        “s3:PutBucketRequestPayment”,
        “s3:PutBucketVersioning”,
        “s3:PutBucketWebsite”,
        “s3:PutLifecycleConfiguration”,
        “s3:PutObject”,
        “s3:PutObjectAcl”,
        “s3:PutObjectVersionAcl”
      ],
      “Resource”: [
           “arn:aws:s3:::www.mindg.cn/*”,
           “arn:aws:s3:::www.mindg.cn”
      ]
    }
  ]
}

这样设置完是否OK呢,当然给这么大的权限,是肯定没问题的,不过有一个条件,就是如果你的S3只有一个bucket,这样设置是没有问题的,但如果你还有其他bucket,比如www.mindg2.cn,那么这么设置完,这个用户也是可以看到的,只是没权限操作而已,当然我不想让对方看到我有多少bucket的,所以我进行了修改,最后的policy如下:

经过这么设置,他就只能看自己的bucket了其它他是看不到的,不过通过awscli操作的时候,要显示的指定bucket的名,就是得跟上bucket名称。

以上完成,把key发给对方,对方就可以上传数据了,等上传完毕,然后建立发布(可以同步建发布,不必等数据上传完毕),建发布比较简单,只要注意以下几点就可以了,缓存的过期时间要跟研发确定好,第二如果将来要需要域名CNAME到亚马逊建立发布后的CDN地址,就需要在

Alternate Domain Names
(CNAMEs)

这个框里把将来要解析的域名写上,例如www.mindg.cn

到这里基本大功告成了,接下来测试下上传的文件吧,咦?怎么报没有权限呢,直接在S3中打开也是报没权限,好吧,我们其实还差一步,因为默认放到bucket里的文件是隐私的设置,其他人是无法访问的,这么一说你可能就明白了,可反过来一想困难又来了,我已经上传了上千个图片了,或者以后我每上传的文件都要手工设置成公共模式吗,哦,NO,上帝救救我,,呵呵。。其实大可不必,其实再给bucket设置一条策略即可(建议测试的时候就上传了一个文件,全部测试好再上传真正的业务文件),找到bucket,右键–>属性,然后点Edit bucket policy,输入以下json字符:

{
“Version”: “2008-10-17″,
“Statement”: [
{
“Sid”: “AddPerm”,
“Effect”: “Allow”,
“Principal”: {
“AWS”: “*”
},
“Action”: “s3:GetObject”,
“Resource”: “arn:aws:s3:::www.mindg.cn/*”
}
]
}

再次访问上传的图片或文件,已可以正常访问了,本次需求完成。