成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

AWS寶典:如何在亞馬遜EC2上部署API?

譯文
開發 前端 Linux
對于剛接觸AWS(亞馬遜網絡服務)的人來說,學習起來難度相當大。于是我們為讀者整理出了若干條最佳實踐,做成這篇簡短教程。除了亞馬遜EC2(彈性計算云)外,我們還會使用Ruby Grape這種微型框架來構建API接口,并使用Nginx代理系統來處理訪問控制。

【51CTO精選譯文】我們覺得亞馬遜是一種用來運行API(應用編程接口)的出色平臺,因為你可以全面控制應用程序堆棧。對于剛接觸AWS(亞馬遜網絡服務)的人來說,學習起來難度相當大。于是我們為讀者整理出了若干條***實踐,做成這篇簡短教程。除了亞馬遜EC2(彈性計算云)外,我們還會使用Ruby Grape這種微型框架來構建API接口,并使用Nginx代理系統來處理訪問控制。最棒的是,本教程中提到的所有一切都是完全免費的!

就該教程而言,你需要基于Ruby的運行中API和Thin服務器。要是沒有這樣一個API,你只要克隆示例軟件庫,如下所述(參閱“部署應用程序”部分)。

現在,我們將開始構建和配置亞馬遜EC2實例。要是你已經有了EC2實例(無論是不是微型實例),就可以直接跳到下一步:準備部署的實例。

構建和配置EC2實例

首先不妨注冊亞馬遜彈性計算云(Amazon EC2)。就我們的要求而言,免費服務http://aws.amazon.com/free/就夠用了,它可以滿足所有的基本要求。一旦設立好了帳戶,進入到AWS管理控制臺下面的EC2儀表板,點擊Launch Instance(啟動實例)按鈕。這會讓你進入到一個彈出窗口,你可以在里面繼續下一步:

•選擇經典向導。

•選擇AMI(Ubuntu Server 12.04.1 LTS 32位和微型實例),Instance Details(實例細節)的其他所有設置都不用改動,隨它保持默認值。

•創建密鑰對,并下載密鑰對――這將是你用來與服務器之間建立SSH連接的密鑰對,密鑰對非常重要!

•為防火墻添加入站規則,源地址始終是0.0.0.0/0(HTTP、HTTPS、ALL ICMP和Ruby Thin服務器使用的TCP端口3000)。

準備部署的實例

現在,我們已讓實例構建并運行起來,我們可以直接通過控制臺來連接(Windows用戶可以通過PuTTY來連接)。鼠標右擊實例,連接實例,并選擇Connect with a standalone SSH Client(使用獨立的SSH客戶端來連接)。

 

 

逐步完成下列步驟,在給出的實例中將用戶名改成ubuntu(而不是root)。

 

 

完成這一步后,你就連接到了實例。我們還需要安裝新的軟件包。一些軟件包需要root登錄資料(憑證),所以你需要設置一個新的root密碼:sudo passwd root。然后以root用戶身份登錄:su root。

現在已有了root登錄資料,執行:

sudo apt-get update

使用exit命令切換回到普通用戶,并安裝所有的必需軟件包:

•安裝rvm、ruby和git需要的一些庫:

sudo apt-get install build-essential git zlib1g-dev libssl-dev libreadline-gplv2-dev

imagemagick libxml2-dev libxslt1-dev openssl zlib1g libyaml-dev libxslt-dev autoconf libc6-

dev ncurses-dev automake libtool bison libpq-dev libpq5 libeditline-dev

sudo apt-get install libreadline6 libreadline6-dev

•安裝git(在Linux上,而不是來自源文件):http://www.git-scm.com/book/en/Getting-Started-Installing-Git

•安裝rvm:https://rvm.io/rvm/install/

•安裝ruby

•rvm install 1.9.3

•rvm use 1.9.3 --default

部署應用程序

我們的示例Sentiment API位于Github上。試著克隆軟件庫:

git clone git@github.com:jerzyn/api-demo.git

你可以在這里再次審查構建和部署該應用程序方面的代碼及教程:

http://www.3scale.net/2012/06/the-10-minute-api-up-running-3scale-grape-heroku-api-10-minutes/

還有這里:

http://www.3scale.net/2012/07/how-to-out-of-the-box-api-analytics/

要注意其中的變化(我們使用的只是v1,因為代理系統需要完成驗證)。

現在你可以部署應用程序,只要運行命令:bundle install.

現在你可以開啟Thin服務器:thin start.

想直接訪問API(即沒有任何安全或訪問控制):your-public-dns:3000/v1/words/awesome.json(你可以在實例細節窗口中的AWS EC2儀表板>實例中找到你的公共DNS)。

 

 

如果還想使用Nginx,你需要創建一個彈性IP地址。在AWS EC2儀表板里面,在與實例相同的區域里面創建彈性IP,并將該IP與它關聯起來(你沒必要為彈性IP花一分錢,只要它與你同一區域里面的實例關聯起來)。

 

 

選項:如果你想為亞馬遜實例分配自定義域,就要做一件事:

•將A記錄添加到域的DNS記錄,以便將該域與你之前創建的那個彈性IP地址對應起來。你的域提供商應該會為你提供設置A記錄(IPv4地址)的某種方式,或者它會為你提供編輯域名稱服務器的方式。如果提供商不允許你直接設置A記錄,找到一項DNS管理服務,在上面將你的域注冊為一個區(zone),該服務就會在域提供商的管理面板你提供需要輸入的名稱服務器。然后,你可以為域添加A記錄。一些可能的DNS管理服務包括ZoneEdit(基礎版免費)和亞馬遜route 53等。

至此,你的API已向世人開放。這既是好事又是壞事――說它是好事,是因為可以與人共享API;說它是壞事,是因為要是不實行速率限制(rate limit),幾個應用程序就會耗盡你服務器的資源,而且你也不知道誰在使用你的API、API在如何使用。解決辦法就是,為你的API添加一些管理功能。

借助3scale啟用API管理功能

我們將充分利用使用方便的3scale API管理服務,而不是從事重復性工作,從頭開始實行速率限制、訪問控制和分析。注冊獲得免費的3scale帳戶(http://www.3scale.net/),通過幾個提供的鏈接,激活并登錄進入到新實例。你***次登錄時,可以選擇這個選項:創建一些示例數據,那樣你擁有之后用到的一些API密鑰。下一步,你可能要瀏覽一下系統功能(可選),然后開始實施工作。

想立即獲得一些結果,我們就要從開發過程中用到的沙盒代理系統開始入手。然后,我們還將配置Nginx代理系統,它可以擴展規模,以適應標準的生產部署環境。API代理系統的配置方面有一些說明文檔,詳見:https://support.3scale.net/howtos/api-configuration/nginx-proxy。想了解更高級的配置選項,可以參閱:https://support.3scale.net/howtos/api-configuration/nginx-proxy-advanced。

一旦你進入到了3scale帳戶,在主儀表板屏幕上啟動你的API,或者進入到API->選擇Service ‘API’(服務API)->側欄中的Integration(集成)->Proxy(代理)。

 

 

設好API后端部分的地址――這必須是個彈性IP地址,除非自定義域已設置好,包括http協議和端口3000?,F在,你可以保存并啟動沙盒代理系統,通過訪問沙盒端點來測試API(在創建了一些應用程序登錄資料后): http://sandbox-endpoint/v1/words/awesome.json?app_id=APP_ID&app_key=APP_KEY。其中,APP_ID和APP_KEY是你在***登錄到3scale帳戶后創建的其中一個示例應用程序的ID和密鑰(如果你錯過了帳戶創建這一步,只要創建開發者帳戶以及該帳戶里面的應用程序)。

不用應用程序登錄資料試一下,接下來使用不正確的登錄資料試一下;然后一旦通過驗證,在你定義的任何速率限制范圍之內和之外再試一下。只有其表現讓你滿意,你才需要為Nginx下載配置文件。

注意:一旦遇到錯誤,就要檢查你是否能直接訪問API:your-public-dns:3000/v1/words/awesome.json。要是該API不可用,那么你就要檢查AWS實例是否在運行、Thin服務器是否在該實例上運行。

部署Nginx代理系統以實現訪問控制

為了簡化這一步,我們建議你安裝出色的OpenResty Web應用程序,它基本上捆綁了標準的Nginx核心以及幾乎所有必要的第三方Nginx內置模塊。

安裝依賴項:sudo apt-get install libreadline-dev libncurses5-dev libpcre3-dev perl

編譯和安裝Nginx:

•cd ~

•sudo wget http://agentzh.org/misc/nginx/ngx_openresty-1.2.3.8.tar.gz

•sudo tar -zxvf ngx_openresty-1.2.3.8.tar.gz

•cd ngx_openresty-1.2.3.8/

•./configure --prefix=/opt/openresty --with-luajit --with-http_iconv_module -j2

•make

•sudo make install

現在,你可以從3scale代理頁面下載Nginx配置文件了;在配置文件中,進行下列更改:

•編輯來自nginx下載的配置文件

•在第28行(上一行是更改服務器名稱的信息),輸入正確的域(你的彈性IP或自定義域名)

•在第78行,將路徑改為指向與配置文件一同下載的.lua文件。

我們幾乎大功告成了!***一個步驟是開啟NGINX代理系統,讓一些流量通過它。要是它還沒有運行(切記:首先得開啟那臺Thin服務器),務必進入到EC2實例終端(你之前通過SSH連接的那個終端),然后現在開啟它:

sudo /opt/openresty/nginx/sbin/nginx -p /opt/openresty/nginx/ -c /opt/openresty/nginx/conf/YOUR-CONFIG-FILE.conf

***一步將是驗證流量正常通過,并通過了應有的驗證。為此,訪問:

http://your-public-dns/v1/words/awesome.json?app_id=APP_ID&app_key=APP_KEY

其中,APP_ID和APP_KEY是你想通過API調用來訪問的那個應用程序的密鑰和ID。一旦證實一切都正常運行,你就需要阻止公眾通過端口3000對API后端部分進行訪問,端口3000繞過了任何訪問控制機制。

要是Nginx配置方面遇到了一些問題,或者需要介紹更詳細的指南,我鼓勵你閱讀配置Nginx代理系統方面的這篇指南文章: https://support.3scale.net/howtos/api-configuration/nginx-proxy。你完全可以對你的API網關進行定制。如果你想深入探究3scale的系統配置(比如用法和API流量的監控),歡迎瀏覽“快速入門”指南(https://support.3scale.net/get-started/fast-track-integration)和實用指導(https://support.3scale.net/howtos/basics#manage-admins)。
 

英文:http://www.3scale.net/2013/02/quickstart-tutorial-on-how-to-deploy-an-api-on-amazon-ec2-for-amazon-web-services-aws-rookies/?utm_source=Outbrain&utm_campaign=AWS-Q3

責任編輯:林師授 來源: 51CTO
相關推薦

2014-08-26 11:07:15

技術周刊

2014-11-14 10:06:06

AWSEC2 Contain亞馬遜

2013-06-03 09:24:34

公有云計算亞馬遜EC2API

2018-02-23 15:15:31

UbuntuAnsibleAmazon EC2

2017-12-02 12:42:57

AWSEC2

2014-08-18 11:17:03

AWS EC2Salt Cloud

2012-03-09 15:30:26

亞馬遜EC2云計算

2012-06-20 15:26:40

亞馬遜EC2云計算

2009-03-30 17:25:17

Amazon亞馬遜Eclipse

2012-11-15 09:30:59

亞馬遜EC2云計算

2014-07-02 21:24:09

AWSAmazon EC2

2017-04-20 19:15:32

Linux服務器AWS EC2

2009-12-14 15:34:53

2020-12-01 15:47:49

AWSEC2macOS

2018-05-17 22:16:07

Amazon EC2Web服務

2011-04-25 09:06:55

亞馬遜EC2

2015-08-21 17:47:38

Docker安全EC2容器服務

2011-05-07 09:14:18

亞馬遜EC2Redhat Linu云計算

2012-02-07 09:01:15

亞馬遜EC2云服務

2011-03-09 10:53:45

亞馬遜EC2VMware虛擬機鏡像
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线不卡视频 | 久草网免费 | 亚洲午夜三级 | 欧美一级在线 | 天天爽一爽 | 日韩精品在线观看网站 | 一区二区三区亚洲 | 久久婷婷国产 | 午夜精品一区二区三区在线观看 | 亚洲精品小视频在线观看 | 久久国产精品久久久久久 | 国产一区二区久久久 | 欧美成人二区 | 九九99靖品 | 中文字幕国产精品 | 一区二区免费在线观看 | 日韩高清一区 | 99精品久久 | 夜久久| 91精品久久久久久久久 | 在线观看视频一区 | 欧美激情a∨在线视频播放 成人免费共享视频 | eeuss国产一区二区三区四区 | 久久久免费精品 | 人人精品 | 蜜臀网| 成人小视频在线免费观看 | 亚洲九九 | av免费观看网站 | 在线观看视频91 | 伊人超碰在线 | 国产在线一区二区 | 99热.com| 一区二区三区av | 成人国产毛片 | 天天色图| 高清国产午夜精品久久久久久 | 国产在线一区二区三区 | 自拍偷拍亚洲视频 | 少妇一级淫片免费放播放 | 久久精品视频网站 |