Amazon RDS サービスレイヤー - AWS OpsWorks

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon RDS サービスレイヤー

重要

AWS OpsWorks Stacks は新規顧客を受け付けなくなりました。既存のお客様は、2024 年 5 月 26 日までは OpsWorks コンソール、 API、 CLI、および CloudFormation リソースを通常どおり使用できますが、その時点でこれらのリソースは廃止されます。この移行に備えて、できるだけ早くスタックを AWS Systems Manager に移行することをおすすめします。詳細については、AWS OpsWorks Stacks サポート終了に関する FAQ および AWS Systems Manager アプリケーションマネージャへの AWS OpsWorks Stacks アプリケーションの移行 を参照してください。

Amazon RDS サービスレイヤーとは、Amazon RDS インスタンスを意味します。このレイヤーで表すことができるのは既存の Amazon RDS インスタンスのみであるため、Amazon RDS console (Amazon RDS コンソール) または API を使用して事前にインスタンスを作成しておく必要があります。

Amazon RDS サービスレイヤーをスタックに組み込む基本的な手順は次のとおりです。

  1. Amazon RDS コンソール、API、CLI のいずれかを使用してインスタンスを作成します。

    インスタンスの ID、マスターユーザー名、マスターパスワード、データベース名は必ず記録しておいてください。

  2. Amazon RDS レイヤーをスタックに追加するために、Amazon RDS インスタンスをスタックに登録します。

  3. レイヤーをアプリケーションにアタッチします。これによって、Amazon RDS インスタンスの接続情報がアプリケーションの deploy属性 に追加されます。

  4. deploy 属性で言語固有のファイルまたは情報を使用し、アプリケーションを Amazon RDSインスタンスに接続します。

    アプリケーションをデータベースサーバーに接続する方法の詳細については、「アプリケーションのデータベースサーバーへの接続」を参照してください。

警告

インスタンスのマスターパスワードおよびユーザー名に使用した文字に、アプリケーションサーバーが対応していることを確認します。例えば、Java App Server レイヤーでは、いずれかの文字列に & が含まれていると、XML 解析エラーが発生し、Tomcat サーバーを起動できません。

セキュリティグループの指定

Amazon RDS インスタンスを AWS OpsWorks スタックで使用するためには、データベースまたは VPC のセキュリティグループで、該当する IP アドレスからのアクセスが許可されている必要があります。本稼働環境用のセキュリティグループでは、データベースにアクセスする必要のある IP アドレスにそのアクセス権を限定するのが一般的です。代表的な例として、データベースを管理するためのシステムのアドレスや、データベースへのアクセスを必要とする AWS OpsWorks スタックインスタンスのアドレスがあります。AWS OpsWorksスタックは、リージョンでのスタックの初回作成時に、レイヤーのタイプごとに Amazon EC2 セキュリティグループを自動的に作成します。AWS OpsWorks スタックインスタンスにアクセスを提供する簡単な方法は、AWS OpsWorks スタックの適切なセキュリティグループを Amazon RDS インスタンスまたは VPC に割り当てることです。

既存の Amazon RDS インスタンスのセキュリティグループを指定するためには
  1. Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで [Instances] (インスタンス) をクリックし、適切な Amazon RDS インスタンスを選択します。[Instance Actions]、[Modify] の順にクリックします。

  3. [Security Group] の一覧から次のセキュリティグループを選択し、[Continue]、[Modify DB Instance] の順にクリックしてインスタンスを更新します。

    • AWS-OpsWorks-DB-Master-Server (security_group_id) セキュリティグループ

    • インスタンスがデータベースに接続する、アプリケーションサーバーレイヤーのセキュリティグループ。グループ名には、レイヤー名を含めます。例えば、PHP App Server インスタンスへのデータベースアクセスを提供するには、[AWS-OpsWorks-PHP-App-Server] (AWS-OpsWorks-PHP-App-Server) グループを指定します。

新しい Amazon RDS インスタンスを作成する場合は、Launch DB Instance ウィザードの [Configure Advanced Settings] (詳細設定) ページで適切な AWS OpsWorks スタックセキュリティグループを指定することができます。このウィザードを使用する方法については、「MySQL DB インスタンスを作成して MySQL DB インスタンス上のデータベースに接続する」を参照してください。

VPC セキュリティグループの指定方法については、「VPC のセキュリティグループ」を参照してください。

Amazon RDS インスタンスをスタックに登録する

スタックに Amazon RDS サービスレイヤーを追加するには、そのスタックにインスタンスを登録する必要があります。

Amazon RDS インスタンスをスタックに登録するためには
  1. AWS OpsWorks スタックコンソールで、ナビゲーションペインの [Layer] (レイヤー) をクリックし、[+ Layer] (+ レイヤー) または [Add a layer] (レイヤーの追加) をクリックして [Add Layer] (レイヤーを追加する) ページを開き、[RDS] (RDS) タブをクリックします。

  2. 必要に応じて、スタックのサービスロールを更新します(「スタックのサービスロールの更新」を参照)。

  3. [RDS] タブをクリックして、利用可能な Amazon RDS インスタンスを一覧表示します。

    注記

    ご使用のアカウントに Amazon RDS インスタンスが存在しない場合、[RDS] タブの [Add an RDS instance] (RDS インスタンスを追加) をクリックして作成できます。Amazon RDS コンソールが表示され、[Launch a DB Instance] ウィザードが開始されます。Amazon RDS コンソールに直接移動して [Launch a DB Instance] (DB インスタンスを開始) をクリックするか、Amazon RDS API または CLI を使用することもできます。Amazon RDS インスタンスを作成する方法の詳細については、「Getting Started with Amazon RDS」(Amazon RDS のご利用開始にあたって) を参照してください。

  4. 目的のインスタンスを選択し、[User] と [Password] に、それぞれ適切なユーザーとパスワードの値を設定して、[Register to Stack] をクリックします。

    重要

    Amazon RDS インスタンスを登録に使用するユーザーとパスワードが、有効なユーザーとパスワードに確実に対応していることを確認する必要があります。対応していない場合、アプリケーションからインスタンスに接続できません。ただし、レイヤーを編集して、ユーザーとパスワードに有効な値を指定したうえで、再度アプリケーションをデプロイすることはできます。

Amazon RDS サービスレイヤーをスタックに追加すると、AWS OpsWorks スタックは ID を割り当て、関連付けられている Amazon RDS 設定を、スタック設定およびデプロイ属性の [:opsworks][:stack] 属性に追加します。

注記

登録済み Amazon RDS インスタンスのパスワードを変更する場合は、AWS OpsWorks スタックでパスワードを手動で更新し、アプリケーションを再デプロイして、そのスタックのインスタンスのスタック設定およびデプロイ属性を更新する必要があります。

スタックのサービスロールの更新

すべてのスタックには [IAM service role] (IAM サービスロール) が割り当てられていて、AWS OpsWorks スタックが他の AWS サービスでユーザーに代わって実行できるアクションはそのサービスロールで指定されています。Amazon RDS インスタンスをスタックに登録するためには、そのサービスロールで Amazon RDS へのアクセス許可が AWS OpsWorks スタックに付与されている必要があります。

ご使用のいずれかのスタックに対し、Amazon RDS サービスレイヤーを初めて追加するときは、必要なアクセス許可がサービスロールに存在しない可能性があります。その場合、[Add Layer] (レイヤーの追加) ページの [RDS] タブをクリックしたときに、次のメッセージが表示されます。

[Update] (更新) をクリックすると、AWS OpsWorks スタックがサービスロールのポリシーを次のように更新します。

{"Statement": [{"Action": ["ec2:*", "iam:PassRole", "cloudwatch:GetMetricStatistics", "elasticloadbalancing:*", "rds:*"], "Effect": "Allow", "Resource": ["*"] }] }
注記

更新を実行する必要があるのは 1 回だけです。更新済みのロールがその後すべてのスタックで自動的に使用されます。

Amazon RDS サービスレイヤーとアプリケーションの関連付け

Amazon RDS サービスレイヤーは、追加後、アプリケーションに関連付けることができます。

  • Amazon RDSサービスレイヤーとアプリケーションの関連付けは、アプリケーションの作成時に行うか、後からアプリケーションの設定を編集することによって行います。

  • Amazon RDS レイヤーとアプリケーションの関連付けを解除するには、アプリケーションの設定を編集して、異なるデータベースサーバーを指定するか、サーバーの指定を削除します。

    Amazon RDS レイヤーはスタックに属したままであり、別のアプリケーションに関連付けることができます。

Amazon RDS インスタンスをアプリケーションに関連付けると、AWS OpsWorks スタックはそのデータベース接続情報をアプリケーションのサーバーに配置します。各サーバーインスタンスのアプリケーションは、この情報を使用して、データベースに接続できます。Amazon RDS インスタンスへの接続方法の詳細については、「アプリケーションのデータベースサーバーへの接続」を参照してください。

スタックからの Amazon RDS サービスレイヤーの削除

登録している Amazon RDS サービスレイヤーをスタックから削除するには

Amazon RDS サービスレイヤーの登録を解除するには
  1. ナビゲーションペインの [Layers] (レイヤー) をクリックし、Amazon RDS サービスレイヤーの名前をクリックします。

  2. [Deregister] をクリックし、レイヤーの登録を解除することを確認します。

この手順によってスタックからはレイヤーが削除されますが、基になる Amazon RDS インスタンスは削除されません。インスタンスとデータベースはアカウント内に維持され、他のスタックに登録することができます。Amazon RDS コンソール、API、CLI のいずれかを使用してインスタンスを削除する必要があります。詳細については、「DB インスタンスの削除」を参照してください。