AWS 認証情報に問題があります。~/.aws/credentials に作成した資格情報ファイルは、AWS ドキュメントに書かれているとおりに使用しました。ただし、Apacheはそれを読み取ることができません。
まず、次のエラーが発生しました。
インスタンス プロファイル メタデータ サーバーから認証情報を取得中にエラーが発生しました。Amazon EC2 内で実行していない場合は、クライアントを作成するときに「key」および「secret」オプションで AWS アクセス キー ID とシークレット アクセス キーを指定するか、インスタンス化された Aws\Common\Credentials CredentialsInterface オブジェクトを指定する必要があります。
次に、インターネットで見つけたいくつかの解決策を試しました。たとえば、HOME 変数を確認しようとしました。/home/ubuntu でした。Web サーバー ディレクトリでなくても、資格情報ファイルを /var/www ディレクトリに移動しようとしました。何も機能しませんでした。私はまだ同じエラーが発生していました。
2 番目の解決策として、CredentialsProvider を直接呼び出して、クライアントのディレクトリを示すことができることがわかりました。
https://forums.aws.amazon.com/thread.jspa?messageID=583216
エラーは変更されましたが、機能させることができませんでした:
/.aws/credentials から資格情報を読み取ることができません
また、パスを示す代わりに、CredentialsProvider の既定のプロバイダーを使用できることもわかりました。
私は試してみましたが、同じエラーが発生し続けます:
/.aws/credentials から資格情報を読み取ることができません
この情報が必要な場合に備えて、私は aws/aws-sdk-php (3.2.5) を使用しています。私が使用しようとしているサービスは、AWS Elastic Transcoder です。私の EC2 インスタンスは Ubuntu 14.04 です。Capifony を使用してデプロイされた Symfony アプリケーションを実行します。
この本番サーバーで試す前に、~/.aws/credentials ファイルのみで完全に機能する開発サーバーで試してみました。この開発サーバーは、実稼働サーバーの正確なコピーです。ただし、デプロイには Capifony を使用しません。これは、プロジェクトの通常の git クローンです。また、本番サーバーには OS 用とアプリケーション用に 1 つずつあるのに対し、EBS ボリュームは 1 つしかありません。
ああ!また、資格情報ファイルのアクセス許可/所有者が両方のサーバーで同じであり、それらが同じであるかどうかも確認しました。私は 777 を試してみて、何かを変えられるかどうかを確認しました。
誰かアイデアがありますか?