Skip to content

Commit e315abb

Browse files
tbrandtbrandaws
andauthored
AWS CloudShell を利用したデプロイ方法の確立 (#669)
* fix * fix * fix * fix * Update DEPLOY_ON_CLOUDSHELL.md --------- Co-authored-by: Taichiro Suzuki <[email protected]>
1 parent 6eeaeaf commit e315abb

File tree

5 files changed

+119
-2
lines changed

5 files changed

+119
-2
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ Generative AI(生成 AI)は、ビジネスの変革に革新的な可能性
111111
112112
GenU のデプロイには [AWS Cloud Development Kit](https://aws.amazon.com/jp/cdk/)(以降 CDK)を利用します。Step-by-Step の解説、あるいは、別のデプロイ手段を利用する場合は以下を参照してください。
113113
- [Workshop](https://catalog.workshops.aws/generative-ai-use-cases-jp)
114+
- [AWS CloudShell を利用したデプロイ方法 (手元の環境を用意することが難しい場合)](/docs/DEPLOY_ON_CLOUDSHELL.md)
114115
- [動画によるデプロイ手順の紹介](https://www.youtube.com/watch?v=9sMA17OKP1k)
115116

116117
まず、以下のコマンドを実行してください。全てのコマンドはリポジトリのルートで実行してください。
@@ -171,7 +172,6 @@ npm run cdk:deploy
171172
- [アップデート方法](/docs/UPDATE.md)
172173
- [ローカル開発環境構築手順](/docs/DEVELOPMENT.md)
173174
- [リソースの削除方法](/docs/DESTROY.md)
174-
- [AWS 上で完結するデプロイ方法 (手元に環境を用意することが難しい場合)](/docs/DEPLOY_ON_AWS.md)
175175
- [ネイティブアプリのように利用する方法](/docs/PWA.md)
176176
- [ブラウザ拡張機能を利用する](/browser-extension/README.md)
177177

deploy.sh

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
echo "--------------------------"
6+
echo " _____ _ _ "
7+
echo " / ____| | | | |"
8+
echo "| | __ ___ _ __ | | | |"
9+
echo "| | |_ |/ _ \ '_ \| | | |"
10+
echo "| |__| | __/ | | | |__| |"
11+
echo " \_____|\___|_| |_|\____/ "
12+
echo "--------------------------"
13+
14+
# コマンド引数の処理
15+
while [[ $# -gt 0 ]]; do
16+
case "$1" in
17+
-c|--cdk-context)
18+
cdk_context_path="$2"
19+
shift 2
20+
;;
21+
-h|--help)
22+
echo "-c, --cdk-context ... Path to the cdk.json file"
23+
echo "-h, --help ... Show this message"
24+
exit 0
25+
;;
26+
*)
27+
echo "Unknown option: $1"
28+
exit 1
29+
;;
30+
esac
31+
done
32+
33+
pushd /tmp
34+
35+
# /tmp に存在するリポジトリを念の為削除
36+
rm -rf generative-ai-use-cases-jp
37+
38+
# GenU を clone
39+
git clone https://github.com/aws-samples/generative-ai-use-cases-jp
40+
41+
pushd generative-ai-use-cases-jp
42+
43+
# npm パッケージのインストール
44+
npm ci
45+
46+
# cdk.json が指定されている場合は上書きする
47+
if [[ -n "$cdk_context_path" ]]; then
48+
echo "Overwrite the cdk.json by $cdk_context_path"
49+
cp -f $cdk_context_path packages/cdk/cdk.json
50+
fi
51+
52+
# CDK の bootstrap
53+
npx -w packages/cdk cdk bootstrap
54+
55+
# デプロイの実行
56+
npm run cdk:deploy
57+
58+
# デプロイした CloudFront の url を取得
59+
weburl=`aws cloudformation describe-stacks --stack-name GenerativeAiUseCasesStack --output json | jq -r ".Stacks[0].Outputs[] | select(.OutputKey==\"WebUrl\") | .OutputValue"`
60+
61+
echo "*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"
62+
echo "Welcome to GenU: $weburl"
63+
echo "*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"

docs/DEPLOY_ON_AWS.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
# AWS 上で完結するデプロイ方法 (手元に環境を用意することが難しい場合)
1+
# (DEPRECATED) AWS 上で完結するデプロイ方法 (手元に環境を用意することが難しい場合)
2+
3+
> [!Caution]
4+
> この手順は AWS Cloud9 が新規のお客様向けアクセスを閉じたことを受け、非推奨手順となりました。
5+
> AWS 上で完結するデプロイ方法については [CloudShell を利用したデプロイ方法](/docs/DEPLOY_ON_CLOUDSHELL.md) をご参照ください。
6+
> また、AWS Cloud9 からの移行については [こちら](https://aws.amazon.com/jp/blogs/news/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/) のブログをご参照ください。
27
38
AWS CloudShell と AWS Cloud9 を利用することで、手元の環境に依存しないデプロイが可能です。(デプロイが AWS 上で完結します。)
49

docs/DEPLOY_ON_CLOUDSHELL.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# AWS CloudShell を利用したデプロイ方法 (手元の環境を用意することが難しい場合)
2+
3+
## cdk.json の編集
4+
5+
GenU では cdk.json の context 以下をカスタマイズすることで、デプロイオプションを指定できます。
6+
利用可能なデプロイオプションについては [デプロイオプション](/docs/DEPLOY_OPTION.md) をご参照ください。
7+
一旦、[デフォルトの cdk.json](/packages/cdk/cdk.json) で構わないという場合は、こちらの手順をスキップしていただいて構いません。
8+
9+
デプロイオプションを指定する場合は、[デフォルトの cdk.json](/packages/cdk/cdk.json) をダウンロード (GitHub ページ右上のダウンロードボタンからファイルをダウンロードできます) し、context 以下を変更してファイルを保存してください。
10+
11+
## CloudShell の起動
12+
13+
[CloudShell](https://console.aws.amazon.com/cloudshell/home) を起動します。
14+
前述した手順で cdk.json をカスタマイズした場合は、右上 Actions の Upload file からカスタマイズした cdk.json をアップロードしてください。
15+
16+
## deploy.sh のダウンロードと実行権限の付与
17+
18+
CloudShell 上で以下のコマンドを実行し、`deploy.sh` というスクリプトをダウンロードします。
19+
また、ダウンロード後に deploy.sh に実行権限を付与しています。
20+
21+
```bash
22+
wget https://raw.githubusercontent.com/aws-samples/generative-ai-use-cases-jp/refs/heads/main/deploy.sh -O deploy.sh
23+
chmod +x deploy.sh
24+
```
25+
26+
## deploy.sh の実行
27+
28+
以下のコマンドで `deploy.sh` を実行します。
29+
なお、`--cdk-context` オプションでカスタマイズした cdk.json へのパスを指定しています。(特に何もせず前述した手順で Upload files した場合はこのパスになります。)
30+
cdk.json が別のパスにある場合は、適宜引数の値を変更してください。
31+
32+
```bash
33+
./deploy.sh --cdk-context ~/cdk.json
34+
```
35+
36+
なお、cdk.json のカスタマイズが必要ない場合は `--cdk-context` の指定は不要です。
37+
その場合、[デフォルトの cdk.json](/packages/cdk/cdk.json) の設定でデプロイされます。
38+
39+
```bash
40+
./deploy.sh
41+
```
42+
43+
デプロイ途中に確認プロンプトが表示されるので、`y` と入力して Enter して進めてください。
44+
デプロイ完了時に CloudFront の URL が表示されます。その URL をブラウザで開くことで GenU にアクセスできます。
45+
46+
なお、これらの手順を実行する場合も [Amazon Bedrock の Model access](https://console.aws.amazon.com/bedrock/home#/modelaccess) から利用するモデルの有効化が必要です。
47+
デフォルトの cdk.json を使っている場合は、[デフォルトの cdk.json](/packages/cdk/cdk.json) の modelRegion において modelIds と imageGenerationModelIds で指定されたモデルが有効化されているかを確認してください。

docs/UPDATE.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
GenU は頻繁にアップデートされています。
44
機能追加・改善に加え、セキュリティ文脈のアップデートが入ることもありますので、定期的にリポジトリの main ブランチを pull して再デプロイすることをお勧めします。
55

6+
[AWS CloudShell を利用したデプロイ方法](/docs/DEPLOY_ON_CLOUDSHELL.md) を利用している場合、常に最新の main ブランチをデプロイするため、再度 `deploy.sh` を実行するとアップデートされます。(以下の手順は不要です。)
7+
68
## main ブランチを pull する
79

810
すでにリポジトリを clone 済みで、初回デプロイが完了していることを想定しています。

0 commit comments

Comments
 (0)