AWS Systems Manager Parameter Store
Parameter Store は、パラメータと呼ばれる名前付き値の一元化された設定データストアです。パラメータとは、テキストのブロック、名前のリスト、パスワード、AMI ID、ライセンスキーなど、Parameter Store に保存されるデータのことです。Parameter Store を使用すると、設定データの大規模な保存、整理、取得を安全に実行できます。
Parameter Store により環境全体の設定管理が簡素化されます。値をハードコーディングしたり、断片化されたストレージソリューションに依存したりすることなく、ランタイムにアプリケーションが重要データにアクセスする方法を標準化できます。このようにして、一貫性を維持し、ガバナンスを適用し、より安全で保守可能なシステムを構築します。
Parameter Store では次のパラメータータイプをサポートしています。
-
Stringこのタイプは、環境名、エンドポイント URL、リソース識別子などのプレーンテキスト値に使用します。
-
StringListこのタイプは、プレーンテキスト値のカンマ区切りリストに使用します。例えば、値
subnet-123abc,subnet-456def,subnet-789ghiを保存しておくことができます。 -
SecureStringサービスエンドポイントやアカウント識別子など、暗号化が必要な設定値には
SecureStringを使用します。データベース認証情報、API キー、トークンなどのシークレットの場合は、AWS Secrets Manager をお勧めします。これは、自動ローテーションやクロスリージョンレプリケーションなどの専用のセキュリティコントロールを提供します。Parameter Store は、AWS Key Management Service を使用して値を暗号化します。
パラメータタイプに関する詳細については、「パラメータストアリファレンス」を参照してください。
アプリケーションデータはどこに保存する?
次の表を使用して、アプリケーションデータのサービスを選択します。
注記
ユーザー名、パスワード、その他のシークレットなどの認証情報を管理する場合は、AWS Secrets Manager を使用することをお勧めします。Secrets Manager は、データベース認証情報、API キー、サポートされているサードパーティ製ソフトウェア提供シークレットなどのシークレットを管理するために構築されています。詳細については、AWS Secrets Manager ユーザーガイド の「What is AWS Secrets Manager? ( とは?)」 を参照してください。
| 機能 | Parameter Store | AWS AppConfig | AWS Secrets Manager |
|---|---|---|---|
|
ユースケース |
|
|
|
|
一般的なデータ |
|
|
|
|
暗号化 |
|
保存データの AWS マネージド暗号化 (追加のカスタマーマネージドキーはオプション) |
AWS マネージドキーまたはカスタマーマネージドキーによる保存データの AWS KMS 暗号化 |
|
認証情報のローテーション |
なし |
該当しない |
自動 (ネイティブデータベース統合) |
|
Cost |
標準階層は無料、アドバンスト階層以上のスループットは有料 |
設定リクエストごとに課金 |
毎月のシークレットごと、および API コールごとに課金 |
|
デプロイ |
デプロイ前検証と自動ロールバックがないバージョニング |
CloudWatch Logs アラームでの段階的なロールアウト、デプロイ前検証、自動ロールバック |
ステージングラベルを使用したバージョニング |
Parameter Store の機能
Parameter Store でサポートされる機能は以下のとおりです。
-
一元的な設定更新
コードの変更や再デプロイなしで設定を更新できるので、運用の俊敏性が向上し、リスクが軽減されます。例えば、インベントリサービスの移行後に新しいエンドポイントを指すように /myapp/prod/inventory-service-endpoint を更新できます。
-
高性能スループットオプション
Parameter Store は、小規模なワークロードに適したデフォルトのスループットを提供します。より高いリクエストレートを必要とする大規模アプリケーションやレイテンシーの影響を受けやすいアプリケーションに対しては、追加料金で高スループットモードを有効にできます。
アプリケーションがパラメータを頻繁にまたは大規模に取得する場合は、スロットリングを避けるためにスループット設定を早期に評価してください。高スループット有効化の詳細については、「Parameter Store スループットの管理」を参照してください。
-
階層的パラメータ管理
パラメータ階層を使用して関連するパラメータをグループ化することで、環境やアプリケーション間で簡単に検出、管理、フィルタリングできます。例えば、命名規則 /env/computer-type/app/data を作成し、次に /dev/webserver/linux/approved-ami や /dev/webserver/windows/approved-ami などのアプリケーション固有のパラメータを作成できます。パス /dev/webserver を取得すれば開発環境のすべてのウェブサーバーパラメータを見つけることでき、/dev/webserver/linux を取得すれば Linux イメージパラメータのみを見つけることができます。
-
バージョニング
Parameter Store は、各パラメータの最新バージョンを 100 個保有しています。運用上の問題を調査するときに、以前の値を確認して再構築できます。
-
IAM との統合
IAM ポリシーを使用して、アプリケーションによるパラメータの読み取り、書き込み、一覧表示、または削除が可能かどうかを判断します。例えば、/myapp/prod/* というプレフィックスが付いたパラメータは読み取れるが、/myapp/dev/* は読み取れないアプリケーションロールを記述できます。暗号化されたパラメータを復号するアクセス許可をロールに付与することもできます。
-
他の AWS のサービス からのアクセシビリティ
他の AWS サービスのパラメータ値を参照できます。次に例を示します。
-
Lambda 関数でパラメータとシークレット Lambda 拡張機能を使用してパラメータとシークレットを取得する方法について説明します。
-
Amazon Elastic Container Service と AWS Fargate を使用すると、値が Parameter Store で一元管理される環境変数を挿入できます。
-
AWS CloudFormation テンプレートはパラメータ値を参照できます。
-
AWS AppConfig では、パラメータを参照する設定プロファイルを作成できるため、段階的なロールアウト、アラームベースのロールバック、組み込みのデータ検証などの機能を使用して、設定変更を安全にデプロイできます。
-
AWS CodeBuild では、ビルド時に Parameter Store から値が動的に取得される環境変数を定義できます。
-
-
共有アカウントアクセス
オプションで、設定データを 1 つの AWS アカウント に一元管理し、アクセスを必要とする他のアカウントとパラメータを共有します。詳細については、「Parameter Store での共有パラメータの使用」を参照してください。
-
OS のパッチ適用
Amazon EC2 では、AMI (AMI) ID をハードコーディングする代わりにパラメータを参照することで、新しいインスタンスのオペレーティングシステムを指定できます。このアプローチにより、インスタンスはパッチが適用された最新のイメージと更新されたイメージを自動的に使用します。 AWS およびオペレーティングシステムベンダーは、現在の AMI バージョンを追跡するパブリックパラメータを提供するため、更新を手動で管理する必要はありません。また、独自のパラメータを定義して一元管理されたゴールデン AMI を参照することもできます。これにより、組織全体で一貫性のある承認済みの設定を簡単に適用できます。
-
イベントと通知
パラメータ変更イベントにサブスクライブして、Parameter Store のワークフローを自動化します。また、変更イベントを使用して有効期限を適用し、指定した期間内にパラメータがローテーションされなかったときに通知を受け取ることもできます。
Parameter Store のパラメータ階層
Parameter Store には、ストレージ制限を制御するさまざまなパラメータ階層が用意されています。制限とは AWS アカウントとリージョンのパラメータの最大数とサイズです。階層またはアドバンスト階層を使用するように各パラメータを個別に設定します。
標準パラメータとアドバンストパラメータは混在させることができます。例えば、同一の AWS アカウントとリージョンに最大で 100,000 個のアドバンストパラメータと 10,000 個の標準パラメータを含めることができます。次の表は、各パラメータタイプでサポートされているさまざまな機能を示しています。
以下の表では、パラメータ階層の違いについて説明しています。
| 機能またはユースケース | スタンダード | アドバンスト |
|---|---|---|
|
ユースケース |
ほとんどの設定データと小規模ワークロードに適しています。これがデフォルトです。 |
より厳しい制限、より大きな値、またはパラメータポリシーが必要な場合に最適です。 |
|
最大パラメータ (AWS アカウント および AWS リージョン あたり) |
10,000 |
100,000 |
|
最大値サイズ |
4 KB |
8 KB |
|
パラメータポリシー |
サポート外 |
サポート 詳細については、「Parameter Store でのパラメータポリシーの割り当て」を参照してください。 |
|
AWS アカウント 間の共有性 |
サポート外 |
サポート 詳細については、「Parameter Store での共有パラメータの使用」を参照してください。 |
|
アップグレードとダウングレードの可能性 |
アップグレード可 |
ダウングレード不可 |
|
Cost |
追加料金なし |
料金対象 詳細については、「Parameter Store 向けの AWS Systems Manager 料金 |
ほとんどの設定データには標準パラメータを使用します。アドバンストパラメータは、標準パラメータがサポートしていない機能が必要な場合にのみ使用します。
標準パラメータとアドバンストパラメータの詳細な比較については、「パラメータ階層の選択」を参照してください。