使用 Elastic Beanstalk 快速添加测试环境的步骤
情况
由於我一段時間沒有觸碰它,所以有些地方感到有點迷茫,所以將其作為備忘錄來記錄下來。
我將嘗試建立一個WordPress的可擴展環境,並簡單地進行操作。
以下步驟僅適用於測試環境,並不包括域名設置等相關操作。
本次可以在管理界面慢慢操作。
如果按照这个步骤准备测试环境,可以用来测试beanstalk的操作,以及进行运营时动作确认,比如当更改RDS实例类型时会有多少停机时间等等。
组成
基本上可以组成各种不同的配置,但这次我们将采用以下的形式。
将RDS放在Beanstalk之外进行管理是默认的方法,
但这次为了测试目的,我们将包括RDS在Beanstalk的管理范围内。
警告
RDSをBeanstalk管理下に置くとBeanstalkの環境、アプリケーションを削除するとDBも一緒に削除される動きとなりますのでご注意ください。またRDBでは削除防止機能がありこちらを設定していると削除されませんがBeanstalk管理下のセキュリティグループなどが残る場合がありました。
建立步骤(跳过的项目将按照默认进行)
1.AWSコンソール画面にログインしてElastic Beanstalkの管理画面に入ります。
2.『新しい環境の作成』をクリックします。(『新しい環境の作成』がない場合は左メニューから『環境』を選択します。)
3.ウェブサーバーにチェックを入れ『選択』をクリックします。
4.任意のアプリケーション名を入力します。(今回はTestWp)。
5.『管理されたプラットフォーム』を選択、プラットフォームからPHPを選択します。
6.こちらからwordpressのzip版をダウンロードします。
7.『コードのアップロード』を選択し、『ファイルを選択』ボタンを押して6で落としたzipをアップロードします。
8.『より多くのオプションの設定』をクリックします。
ここからは順番を間違えると設定できないことがありました。(2021年1月現在)
9.容量の『編集』をクリックして環境タイプの『負荷分散』を選択し、他はデフォルトのまま保存します。
10.データベースの『編集』をクリックして『mysql』を選択、エンジンバージョンは『最新のもの(数字が大きいもの)』を選択。
インスタンスクラスは『t2.micro』を選択。ユーザー名、パスワードは任意の半角英数、乱数字16文字を入力します。
このユーザー名、パスワードはあとで使うのでメモしておきましょう。これらが入力できたら『保存ボタン』を押します。
11.データベースの保存ができたらネットワークの『編集』をクリックします。
するとアベイラビリティーゾーンというチェックが3つ出てくるので全てチェックして『保存ボタン』を押します。
12.『環境の作成』をクリックして構築を開始します。大体〜15分くらいで完了します。
ここでエラーが出た方は左メニューのログからエラーをダウンロードするとエラーログ ファイルを見ることができます。
WordPress的安装工作
1.beanstalkコンソール画面左メニューからアプリケーションをクリック。
作成したアプリケーションのリンクをクリックしてアプリケーションのコンソール画面に移動します。
ヘルスでエラーが出ている場合は最後のエラーが出たらという項目を参考にしていただければと思います。
2.XXXXXXXX.ap-northeast-1.elasticbeanstalk.comのようなURLリンクがありますので
XXXXXXXX.ap-northeast-1.elasticbeanstalk.com/wordpress
のように/wordpressをつけてブラウザでアクセスします。
3.wordpressインストール画面が出ます。
ここで設定を間違えると最初からやり直しor
セキュリティグループを設定してsshログインしなければならないので慎重に進めてください。
『さあ始めましょう』をクリック。
データベース名:ebdb
※ebdbはelasticbeanstalkのデフォルトで設定されているデータベース名。
ユーザー名:構築手順10でメモしたもの
パスワード:構築手順10でメモしたもの
データベースのホスト名:beanstalkコンソール画面左メニューから設定をクリック。データベースの項目のエンドポイントを入力。
xxxxxx.ap-northeast-1.rds.amazonaws.com:3306のような値。
テーブル接頭子:任意の値を入力。デフォルトでもOK。
『送信』をクリック。
4.『インストール実行』をクリック。
5.サイトのタイトル:任意の名前を入力
ユーザー名:任意のユーザー名を入力。wordpress管理画面にログインする時に使用するものなのでメモしておきます。
パスワード:デフォルトのものをコピーしておきます。これもwordpress管理画面にログインする時に使用するものです。
メールアドレス:任意のメールアドレスを入力。wordpressから確認メールが飛んでくる。
検索エンジンでの表示:今回はテスト環境なのでチェックなし。
『WordPressをインストール』をクリック。
6.『ログイン』をクリック。
7.手順5で入力したユーザーとパスワードを入力し『ログイン』をクリックします。
8.wordpressのダッシュボードに入れたと思います。左上のサイト名→『サイトを表示』をクリックするとトップページが表示されます。
トップページアドレスはXXXXXXXX.ap-northeast-1.elasticbeanstalk.com/wordpress
管理画面アドレスはXXXXXXXX.ap-northeast-1.elasticbeanstalk.com/wordpress/wp-admin
のような形になっていると思います。
如果出现错误的话
当构建过程一直进行到最后且出现以下错误时
Stack named 'awseb-e-mkdpvzmrgt-stack' aborted operation. Current state: 'CREATE_FAILED' Reason: The following resource(s) failed to create: [FileSystem, loadbalancersg].
Creating security group named: sg-xxxxxxxx failed Reason: CIDR block xxx.xxx.xxx.xxx is malformed (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterValue; Request ID: xxxxxxxxxxx; Proxy: null)
可能性之一是VPC的设置出了问题。
在我的环境中,当我从第11个设置步骤的界面重新创建默认VPC时,问题就解决了。
如果进行了多次测试并销毁环境,VPC和安全组等可能会在某个时间点残留下来。
一个常见的个人错误示例是在beanstalk控制台之外的EC2或RDS控制台上删除了beanstalk管理下的EC2或RDS。
迷恋之处
url需要加上/wordpress
好久不碰了,结果突然着迷了。
当访问XXXXXXXX.ap-northeast-1.elasticbeanstalk.com时,会出现403错误。
由于EC2内部根目录被设置为/var/www/html,
因此必须访问XXXXXXXX.ap-northeast-1.elasticbeanstalk.com/wordpress,
才能安装WordPress。
这次我尝试在WordPress上建立了一个测试环境,但我认为在Python或Ruby上也同样可以轻松构建可扩展的环境。虽然直接在Beanstalk上搭建很容易,但最好先从像EC2和RDS这样的架构开始,否则一旦出现问题,处理起来会变得困难。
我个人印象中,对于像“希望快速将常见的Web应用程序架构扩展”的情况,Beanstalk可能是一个不错的选择。在这种应用中,使用此服务可以通过CLI部署环境并结合Route53、CloudFront等工作(Linux相关和网络知识也是必需的)。只需几千元每月,就能在短时间内构建一个带有CDN和可扩展原型的环境。(我认为还可以通过添加RDS复制实例来实现可扩展性)。在我看到的环境中,几千元的成本中大约有一半是由ALB承担的,所以如果将ALB删除(我记得以前是不能这样做的),并使用预留实例来运行EC2和RDS,可以大大降低成本。