AWS でのプロジェクト
進化するボット
.NET と AWS Toolkit for Visual Studio を使用
モジュール 5: デプロイとクリーンアップ
このモジュールでは、AWS CodeBuild と AWS CodeDeploy を使用してチャットボットを EC2 にデプロイし、またリソースをクリーンアップして課金されないようにします。
概要
以下に示すステップごとの手順に従い、チャットボットのアプリケーションをデプロイしてリソースをクリーンアップします。各ステップの番号をクリックして、セクションを展開します。
所要時間
30 分
使用するサービス
CodeDeploy、CodeBuild、EC2、AWS CodeStar
実装手順
-
ステップ 1: デプロイする
-
オプション 1: Linux サーバーにデプロイする
a.AWS コンソールで [サービス] をクリックし、[開発者用ツール] で [CodeStar] を選択します。
b.[Create a new project] をクリックし、ASP.NET Core Web Application テンプレートを選択します。
c."プロジェクト名" を指定し、リポジトリとして CodeCommit を選択し、[次へ] をクリックします。
d.[AWS CodeStar would like permission to administer AWS resources on your behalf (AWS CodeStar には、お客様の代わりに AWS リソースを管理するためのアクセス許可が必要です)] チェックボックスをオンにし、[Create Project (プロジェクトを作成する)] をクリックします。
e.キーペアを選択し、[I acknowledge that I have access to the private key file for this key pair (mytestkeypair.pem), and that without this file, I won’t be able to log into my instance. (このキーペアのプライベートキーファイル (mytestkeypair.pem) へのアクセス権があり、このファイルなしではインスタンスにログインできないことを理解しています)] チェックボックスを オンにします。
f.プロジェクトコードを編集する方法を選択できます。この選択はいつでも変更できますが、ここでは、[コマンドラインツール] をクリックして、任意のオペレーティングシステムの設定手順に従います。
g.この手順では、コマンドラインで CodeCommit からプロジェクトリポジトリをクローンします。
h.さまざまな製品や Git インポーターを使用できます。ただし、お持ちでない場合は、当社がこの操作を手動ですばやく実行する方法に対応します。モジュール 4 で github リポジトリからクローンしたコードを利用し、新しくクローンした CodeCommit リポジトリのすべてのコードをそのコードに置き換えます (.NET チャットボットコードを貼り付ける前に、古いすべてのコードを必ず削除します)。
i.コマンドラインでクローンしたディレクトリに移動し、以下のコマンドを実行します。1.
git add -A
2.git commit -m "adding Chatbot code"
3.git push origin master
j.[Skip] をクリックします。コードのダッシュボードが表示され、継続的デプロイのプロセスが示されます (他にも多数のオプションがありますが、特にこのオプションを調べることをお勧めします)。
k.Visual Studio のソリューションファイルが格納されているプロジェクトディレクトリで、appspec.yml ファイルと buildspec.yml をコピーします。
l.Visual Studio のソリューションファイルが格納されているプロジェクトディレクトリで、フォルダを作成して scripts という名前を付けます。
m.クローンしたリポジトリの Linux Deployment ディレクトリにあるすべてのファイルを前のステップで作成した scripts ディレクトリにコピーします。
n.アプリケーションエンドポイントリンクをクリックし、チャットボットアプリケーションを表示し、テストします。⚐ 注意: 詳細については、GitHub プロジェクトにあるドキュメントを参照してください。
-
オプション 2: Windows サーバーにデプロイする
a.必ず us-east-1 (バージニア北部) リージョンまたは eu-west-1 (アイルランド) リージョンの AWS アカウントにログインします。
b.GitHub 認証情報を使用して、GitHub アカウントにログインします。
c.AWS CloudFormation を使用し、テンプレートをクリックして us-east-1 リージョンでインフラストラクチャスタックを作成します。 こちらからCloudFormation テンプレートをダウンロードして、任意のリージョンで AWS CloudFormation サービスでテンプレートを実行することもできます。
d.AWS CloudFormation コンソールのウェブページにリダイレクトされます。そこで、インフラストラクチャのリソースを作成するために必要なパラメータを掲載した画面が表示されます。パラメータのスタック名とアプリケーションの必要値を入力します。
e.別のブラウザウィンドウを開き、GitHub アカウントに進みます。GitHub アカウントの [Settings] をクリックしてから [Personal Access Tokens] をクリックし、repo スコープおよび admin:repo_hook スコープで新しいトークンを作成します。前述の両スクリプトで、必ずすべてのサブオプションを選択してください。
f.AWS CloudFormation ウェブページに戻り、前のステップで生成された GitHub の値を用いて GitHubOAuthToken パラメータを入力します。
g. デプロイするソリューションがある VPC と、その VPC のパブリックサブネット (インターネットゲートウェイがアタッチされたもの) を選択します。
h. キーペア名を選択します。キーペア名についての詳細は、こちらをクリックしてください。
i.必要に応じてインスタンスタイプを変更しますが、変更不要の場合は所定のデフォルト値のままにします。
j.OSTtype フィールドで、ターゲットとする EC2 インスタンス用の OS (Windowsなど) を選択し、[Next] ボタンをクリックします。
k.[Options] と [Advanced] セクションはデフォルトのオプションのままにし、[Next] ボタンをクリックします。
l.確認画面で、必ず [I acknowledge that AWS CloudFormation might create IAM resources with custom names (AWS CloudFormation が 顧客名で IAM リソースを作成する可能性があることを承知します)] の隣にあるチェックボックスをクリックします。
m.スタックを作成し、ステータスが [CREATE_COMPLETE] と表示されるまで、フルスタックおよび必要なリソースがすべて [Events] タブで作成されていることを監視します。
n.CodePipeline を調べてアプリケーションが GitHub から CodeBuild、CodeDeploy にいたる全体の CD/CI プロセスを通過していることを確認します。このプロセスにより、アプリケーションが end 1 の EC2 にデプロイされます。
o.アプリケーションが正常にデプロイされたら、CloudFormation の [Outputs] タブに進み、URL 値をクリックしてチャットボットアプリケーションがお使いの環境で実行されていることを確認します。⚐ 注意: 詳細については、GitHub プロジェクトにあるドキュメントを参照してください。
-
-
ステップ 2: クリーンアップしてリソースを削除する
-
オプション 1: CodeStar の手順
a.コンソールの CodeStar ページに進みます。
b.プロジェクトの右上にある [Eclipse] を選択します。下記のスクリーンショットを参照してください。
c.[Delete] オプションを選択します。
d.プロジェクト名を入力し、削除されたことを確認します。[Delete associated AWS resources along with CodeStar project] の隣にあるチェックボックスは操作しないでください。詳細をご確認ください。
e.[Delete] ボタンを押します。
-
オプション 2: CloudFormation の手順
a.コンソールで [CloudFormation] ページに進みます。
b.スタックを選択します。
c.[Actions] ドロップダウンメニューに進みます。
d.[Delete Stack] オプションを選択します。
e.[Yes, Delete] ボタンを押します。
-
-
ステップ 3: その他のリソースを削除する
Lambda
a.コンソールで [Lambda] ページに進みます。
b.タイトルの左側にあるバブルをクリックし、リストから関数を選択します。
c.[Actions] を押し、[Delete] をクリックします。Lex
a.コンソールで [Lex] ページに進みます。
b.タイトルの左側にあるバブルをクリックし、リストからボットを選択します。
c.[Actions] を押し、[Delete] をクリックします。Cognito
a.コンソールで [Cognito] ページに進みます。
b.[Manage Federated Identities] をクリックします。
c.[Federated Identity] をクリックします。
d.右上にある [Edit Identity Pool] をクリックします。
e.[Delete Identity Pool] まで下向きにスクロールしてボタンをクリックします。その後、赤い削除ボタンをクリックして確認します。⚐ 注意: これらの手順は、GitHub プロジェクトの [Documentation] フォルダにも格納されています。
おめでとうございます。
アマゾン ウェブ サービスを使用して .NET で Amazon Lex チャットボットを構築しました。
友達とチャットボットを共有しましょう。次は何を構築されるのでしょうか。今から楽しみです。