AWS AppConfig Javaサンプル
V2-2024
概要
このプロジェクトは、コード変換のためのAmazon Q開発者エージェントのデモです。これは、AWS SDKを使用してAWS AppConfigサービスに保存されている構成に基づいて、月の映画の無料リストを表示するJava 1.8ベースのマイクロサービスアプリケーションです。このアプリケーションは2020年に最初にオープンし、Spring Boot 2.x、Log4J 2.13.x、Mockito 1.x、Javax、Junit 4などのライブラリのレガシーバージョンを使用しています。
コード変換のAmazon Q開発者エージェントは、ファイルのコード言語バージョンを整備することができます。 JetBrainのモジュールと、Visual Studioコードのプロジェクトまたはワークスペース全体を変換できます。 Amazon Qは、最初にソース言語バージョンでコードを作成し、コードを変換するために必要な情報があることを確認します。 Amazon Qがコードを正常に変換した後、統合開発環境(IDE)の変更を確認して受け入れます。詳細については、コード変換作業のためのAmazon Q開発者エージェントの方法を参照してください。
Code TransformationのAmazon Q開発者エージェントがJavaのアップグレードを加速する方法と3つの方法を参照してください。
インストール手順
地元
- ローカルIDEでアプリケーションをコンパイルします
- 新しい端末を開き、
java -jar .targetmovie-service-0.1.0.jar - 以下のAWSセクションのステップ1に従って、デフォルトのAWSアカウントプロファイルでAppConfig構成を設定します
- ブラウザを開き、http:// localhost:8080/movies/getMoviesにアクセスしてください
- 有料映画のリストを見ることができるはずです
aws
ステップ1:AWS AppConfigでアプリケーション、環境、構成プロファイルを作成する
- AWS Systems Managerコンソールを開きます。
- 左のナビゲーションペインで、AWS appconfigを選択し、[開始]をクリックします
- AWS AppConfigウェルカムページが表示されている場合は、左ナビゲーションでアプリケーションの作成をクリックします。
- 名前については、アプリケーションの名前を入力します。 ( myContainerApplication )オプションの説明を追加して、アプリケーションにタグを適用できます。 [アプリケーションの作成]を選択します。
- アプリケーションが作成された後、環境と構成プロファイルが作成された環境を選択したページに向けられ、環境の名前( myContainerApplicationProductionEnvironment )と環境のオプションの説明を入力します。また、オプションでタグを追加して、この環境にAmazon CloudWatchアラームを構成することもできます。
- 上部ナビゲーションで、アプリケーション名を選択し、[構成プロファイルと機能フラグ]タブで、[構成プロファイルとFreeform構成の作成]を選択します。
- 名前( myContainerApplicationConfigurationProfile )と構成プロファイルにオプションの説明を入力します。
- 構成ソースの下で、AWS AppConfigホストconfiguration.underコンテンツを選択し、JSONを選択し、次のコンテンツを貼り付けて、次に選択します。
{
"movies": [
{
"id": 1,
"movieName": "The Shawshank Redemption"
},
{
"id": 2,
"movieName": "City of God"
},
{
"id": 3,
"movieName": "Memento"
},
{
"id": 4,
"movieName": "The Intouchables"
},
{
"id": 5,
"movieName": "Stardust"
},
{
"id": 6,
"movieName": "Apocalypto"
},
{
"id": 7,
"movieName": "Taxi Driver"
},
{
"id": 8,
"movieName": "No Country for Old Men"
},
{
"id": 9,
"movieName": "Planet 51"
},
{
"id": 10,
"movieName": "The Beach"
}
]
}
- (オプション)検証器を追加して、構成を検証できます。詳細については、AWS AppConfigドキュメントのバリデーターについて確認してください。
- [構成プロファイルの作成]を選択します。
- [展開]を選択します。
- 環境、ホストされた構成バージョン、展開戦略、および展開プロセスを開始するオプションの説明を選択します。
- カスタム展開戦略を作成するには、展開戦略の作成を選択します。または、AWS AppConfigが提供する事前定義された展開戦略のいずれかを選択します。詳細については、AWS AppConfigドキュメントで展開戦略の作成を確認してください。この投稿の目的のために、 appconfig.linear50centevery30secondsの展開戦略を選択しました。
注:選択した展開戦略によっては、この操作が完了するまでに数分かかる場合があります。展開状態が完了するとすぐに、構成がアプリケーションで利用できます。
** v1-2020 **
注:AppConnFig関連の機能を試してみたい場合にのみ、このバージョンを使用してください。
概要
これは、AWS AppConfigを使用したコンテナワークロードへのブログ投稿アプリケーション構成の展開で説明されているように、AWS AppConfig Javaアプリケーションのデモです。このデモは、Java MicroservicesアプリケーションをAWS AppConfigサービスと統合する方法と、アプリケーション構成を効率的に管理するためのメモリキャッシュを実装する方法を示しています。
AWS AppConfigは、AWSのお客様が、EC2インスタンス、コンテナ、AWSラムダ、モバイルアプリ、IoTデバイス、およびオンプレミスサーバーでホストされているアプリケーション全体で、検証済み、制御、監視の方法ですばやく展開できるようにします。
このサンプルコードは説明しています
- コンテナ化されたアプリケーションのアプリケーション構成をアプリケーションコードから分離する方法。
- AWS AppConfigを使用して、アプリケーション構成を管理および展開します。
- コンテナ化されたアプリケーションでアプリケーション構成を自動化および効率的に管理する方法。
このデモでは、CloudFormationテンプレートを使用して、Amazon Elastic Container Service ClusterとAWS Fargateタスクを展開します。ユーザーはこのリポジトリをクローンし、Docker画像を作成し、Amazon Elastic Container Registryにプッシュし、AWS AppConfigサービスと対話します。
このアプリケーションには、AWS AppConfigサービスからの応答をキャッシュするためにキャッシュ層が組み込まれています。構成値を取得するための後続の呼び出しは、最初にキャッシュをチェックし、キャッシュから応答を返します。キャッシュが空の場合、AWS AppConfig APIに電話をかけて値を取得します。キャッシュの有効期限は、プロパティのTTLセットに基づいています。
インストール手順
地元
- ローカルIDEでアプリケーションをコンパイルします
- 新しい端末を開き、
java -jar .targetmovie-service-0.1.0.jar - 以下のAWSセクションのステップ1に従って、デフォルトのAWSアカウントプロファイルでAppConfig構成を設定します
- ブラウザを開き、http:// localhost:8080/movies/getMoviesにアクセスしてください
- 5つの有料映画のリストを見ることができるはずです
aws
ステップ1:AWS AppConfigでアプリケーション、環境、構成プロファイルを作成する
- AWS Systems Managerコンソールを開きます。
- 左のナビゲーションペインで、AWS AppConfigを選択します。
- AWS appconfigウェルカムページが表示されている場合は、[構成データの作成]をクリックします。それ以外の場合は、[アプリケーションの作成]をクリックします。
- 名前については、アプリケーションの名前を入力します。 ( myContainerApplication )オプションの説明を追加して、アプリケーションにタグを適用できます。 [アプリケーションの作成]を選択します。
- アプリケーションが作成された後、環境と構成プロファイルが作成された環境を選択したページに向けられ、環境の名前( myContainerApplicationProductionEnvironment )と環境のオプションの説明を入力します。また、オプションでタグを追加して、この環境にAmazon CloudWatchアラームを構成することもできます。
- 上部ナビゲーションで、アプリケーション名を選択し、[構成プロファイル]タブで[構成プロファイルの作成]を選択します。
- 名前( myContainerApplicationConfigurationProfile )と構成プロファイルにオプションの説明を入力します。
- 構成ソースの下で、AWS AppConfigホストconfiguration.underコンテンツを選択し、JSONを選択し、次のコンテンツを貼り付けて、次に選択します。
{
"boolEnableFeature": true,
"intItemLimit": 5
}
- (オプション)検証器を追加して、構成を検証できます。詳細については、AWS AppConfigドキュメントのバリデーターについて確認してください。
- [構成プロファイルの作成]を選択します。
- [展開]を選択します。
- 環境、ホストされた構成バージョン、展開戦略、および展開プロセスを開始するオプションの説明を選択します。
- カスタム展開戦略を作成するには、展開戦略の作成を選択します。または、AWS AppConfigが提供する事前定義された展開戦略のいずれかを選択します。詳細については、AWS AppConfigドキュメントで展開戦略の作成を確認してください。この投稿の目的のために、 appconfig.linear50centevery30secondsの展開戦略を選択しました。
注:選択した展開戦略によっては、この操作が完了するまでに数分かかる場合があります。展開状態が完了するとすぐに、構成がアプリケーションで利用できます。
ステップ2:Amazon ECSおよびAmazon ECR、およびAWS CloudFormationを使用して関連するネットワークコンポーネントを使用してベースアプリケーションを設定します
- CloudFormationコンソールを開き、[スタックを作成]をクリックして、[新しいリソースで]オプションを選択します。
- 次の画面では、「テンプレートの指定」セクションで「テンプレートファイルのアップロード」を選択し、repo /templates /ecs-cluster.ymlからダウンロードしたファイルを提供します。
- [次へ]をクリックし、スタックに「ecscluster-dev」などの名前を付け、環境パラメーターの値としてdevを選択します。最後の画面では、「機能」セクションのチェックボックスをチェックし、最後に[スタックの作成]ボタンをクリックすることを忘れないでください。
ステップ3:コードリポジトリをクローンし、Dockerコンテナを作成し、Amazon ECRに公開
- Git Cloneこのリポジトリ
- Amazon Elastic Container Registry Consoleに移動し、作成したリポジトリをクリックして[[プッシュ]コマンドの表示をクリックします。
- コマンドプロンプトのコードリポジトリに移動し、プッシュコマンドを実行してプロジェクトをアップロードします。
- アップロードが完了したら、リポジトリの画像のURLをコピーします。このURLを、次のセクションで説明したAWSクラウド形成テンプレートの入力パラメーター(ImageUrl)として使用します。
ステップ4:Fargateタスクを作成し、AWS CloudFormationを使用してAWS FargateでAmazon ECSにコンテナアプリケーションを展開する
- CloudFormationコンソールを開き、[スタックを作成]をクリックして、[新しいリソースで]オプションを選択します。
- 次の画面では、「テンプレートの指定」セクションで「テンプレートファイルのアップロード」を選択し、Repo /Templates /fargate-task.ymlからダウンロードしたファイルを提供します。
- [次へ]をクリックし、「Fargate-Task-Dev」などのスタックに名前を付けます。環境パラメーターの値として「dev」を選択します。
- ImageUrlパラメーターの前のステップで取得した画像URLを提供し、残りのパラメーターをデフォルトとして残します。
- [次へ]をクリックして、オプションでタグを定義します。もう一度クリックします。最後の画面では、「機能」セクションのチェックボックスをチェックし、最後に[スタックの作成]ボタンをクリックすることを忘れないでください。
ステップ5:展開されたアプリケーションを確認し、AppConfig構成データを更新し、更新された構成を展開する
- AWS CloudFormationコンソールに移動し、作成したFargate-Task-Devスタックを開きます
- ロードバランサーの出力をクリックして外部ルールをコピーします
- ロードバランサーに外部URLを使用してアプリケーションを確認します。 http:// externalurl/movies/getmovies
- 次に、AWS AppConfigの構成値を変更し、コンテナアプリケーションにどのように反映されるかを確認します。
- AWS AppConfigコンソールを開き、アプリケーションをクリックして[構成プロファイル]タブに移動し、作成した構成プロファイルをクリックします
- [ホストされている構成バージョン]で作成された[作成]をクリックすると、構成データを編集できる新しい画面が開きます。
- 構成値を編集し、[HOSTED CONFIGURATIONバージョン]ボタンの作成をクリックします。
- 次に、[展開を開始]をクリックし、環境、最新のホスト構成バージョン、展開戦略、および展開プロセスを開始するオプションの説明を選択します。
- 展開が完了したら、アプリケーションURLに再度アクセスして、すぐに反映される変更を確認します。
- アプリケーションがその後のAWS AppConfigへの呼び出しで更新された値を取得したため、この変更はコンテナアプリケーションを再起動する必要はないことに注意してください。
掃除
このプロセス全体で作成されたすべてのリソースを削除し、追加コストを防ぎます。
appconfig
- ホストされた構成
- 構成プロファイル
- 環境
- 応用
ベースコンテナアプリケーションとファーゲートタスク
- AWS CloudFormationコンソールに移動します
- Fargate-Task-Dev Stackを選択し、[削除]をクリックします
- ECSCluster-DEVスタックを選択し、[削除]をクリックします
ライセンス
このサンプルコードは、MIT-0ライセンスの下でライセンスされています。ライセンスファイルを参照してください。