AWS でのプロジェクト
進化するボット
.NET と AWS Toolkit for Visual Studio を使用
モジュール 5: デプロイとクリーンアップ
このモジュールでは、CodeBuild と CodeDeploy を使用して Chatbot を EC2 にデプロイし、これらのモジュールで使用されている AWS リソースをクリーンアップして料金の発生を避けます。
概要
以下に示すステップごとの手順通りに、Chatbot のアプリケーションをデプロイしてリソースをクリーンアップします。各ステップの番号をクリックして、セクションを展開します。
所要時間
30 分
使用するサービス
CodeDeploy、CodeBuild、EC2
実装手順
-
ステップ 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.コマンドラインでクローンしたディレクトリに移動し、以下のコマンドを実行します。
i. git add .
ii. git commit -m "adding Chatbot code"
iii. git push
j.[スキップ] をクリックします。コードのダッシュボードが表示され、継続的デプロイのプロセスが示されます (他にも多数のオプションがありますが、特にこのオプションを調べることをお勧めします)。
k.Visual Studio のソリューションファイルが格納されているプロジェクトディレクトリで、appspec.yml ファイルと buildspec.yml をコピーします。
l.Visual Studio のソリューションファイルが格納されているプロジェクトディレクトリで、フォルダを作成し、そのフォルダに scripts という名前を付けます。
m.クローンしたリポジトリの Linux Deployment ディレクトリにあるすべてのファイルを前のステップで作成した scripts ディレクトリにコピーします。
n.アプリケーションエンドポイントリンクをクリックし、Chatbot アプリケーションを表示し、テストします。⚐ 注意: 詳細については、github プロジェクトの [ドキュメント] フォルダにある Step By Step Deployment of dotNet Chatbot - Linux.pdf を参照してください。
-
オプション 2: Windows サーバーにデプロイする
a.必ず us-east-1 (バージニア北部) リージョンまたは eu-west-1 (アイルランド) リージョンの AWS アカウントにログインします。
b.GitHub 認証情報を使用して、GitHub アカウントにログインします。
c.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 インスタンス用のオペレーティングシステム (Windows など) を選択し、[次へ] ボタンをクリックします。
k.[オプション] と [高級設定] セクションはデフォルトのオプションのままにし、[次へ] ボタンをクリックします。
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 の [出力] タブに進み、URL 値をクリックして Chatbot アプリケーションがご使用の環境で実行されていることを確認します。⚐ 注意: 詳細については、GitHub プロジェクトの [ドキュメント] フォルダにある Step By Step Deployment of dotNet Chatbot - Windows.pdf を参照してください。
-
-
ステップ 2: クリーンアップしてリソースを削除する
-
オプション 1: CodeStar の手順
a.コンソールの [CodeStar] ページに進みます。
b.プロジェクトの右上にある [3 点リーダー (…)] を選択します。
c.[削除] オプションを選択します。
d.プロジェクトの名前を入力して削除を確認します。[関連付けられた AWS リソースを保持しますが、AWS Codestar でプロジェクトを削除します] の横にあるチェックボックスをオフにします。詳細はこちら。
e.[削除] ボタンを押します。
-
オプション 2: CloudFormation の手順
a.コンソールで [CloudFormation] ページに進みます。
b.スタックを選択します。
c.[アクション] ドロップダウンメニューに進みます。
d.[スタックを削除] オプションを選択します。
e.[削除] ボタンを押します。
-
-
ステップ 3: その他のリソースを削除する
Lambda
a.コンソールで [Lambda] ページに進みます。
b.タイトルの左側にあるバブルをクリックし、リストから関数を選択します。
c.[Actions] を押し、[Delete] をクリックします。Lex
a.コンソールで [Lex] ページに進みます。
b.タイトルの左側にあるバブルをクリックし、リストからボットを選択します。
c.[Actions] を押し、[Delete] をクリックします。Cognito
a.コンソールで [Cognito] ページに進みます。
b.[フェデレーション ID を管理する] をクリックします。
c.[フェデレーション ID] をクリックします。
d.右上にある [Edit Identity Pool] をクリックします。
e.[Delete Identity Pool] まで下向きにスクロールしてボタンをクリックします。その後、赤い削除ボタンをクリックして確認します。⚐ 注意: これらの手順については、GitHub プロジェクトの [ドキュメント] フォルダにある dotNet Chatbot CleanUp and Deletion Instructions.pdf を参照してください。