AWSで作成したRDSの設定を.envの設定で接続/DB_HOST,DB_DATABASE…

AWSで作成したRDSを、Laravelの.envに正しく設定する方法を解説致します。

Laravelでローカルで使っている人でも、.envでデータベースの設定はしていると思います。
どんな設定項目があるでしょうか。

DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD= 

こちらを正しく設定していくことで、LaravelからRDSとの接続が可能です。
(通常のアーキテクトでは、Webサーバー(EC2)から、RDSへ接続をしていると思いますが)

DB_CONNECTION
 → RDSで選択した、RDSのアプリケーション
   mysqlを選択したので、mysql

DB_HOST
 → RDSで作成したエンドポイントを設定

DB_PORT
 → RDSで設定したPORT番号を設定します。
   DBサーバーの場合は、主に3306が設定されます。

DB_DATABASE
 → RDSで作成したDatabaseの名称を設定します。

DB_USERNAME
DB_PASSWORD
 → データベースに接続可能なユーザー、パスワードを設定します。
   RDS作成時にマスターユーザー名とパスワードを設定することになるので、そちらを設定してください。

以上です。

AWS ECRでDocker Loginするまで。AWSCLIを使って。

AWSのECRというサービスをご存知でしょうか。
Dockerを利用して、AWSへデプロイしたい場合にはDocker レポジトリとして利用されるサービスです。

AWSもDockerも学習したての頃、最初のログインで躓いてしまいました。
その時の、躓きポイントを紹介して参ります。

ポイント:
・AWS CLIでコマンドからログインしよう
・ログインする場合には、config でprofileを設定し、活用しよう
・ログインするのは、AWSのアカウント情報(IAM情報)でECRへログイン

こちらの話でお届けします。

今回、一番参考になると思われる読者の方は

「詳しく分からないが、ECRにログインしなくては。でも、ログインって何情報を使って、どういうコマンドでログインすればいいのか。」といった疑問を持った方かと思います。

参考記事:

全体を通して、参考にさせて頂いた記事は、「AWS CLIを使ってECRにDockerイメージを登録する」です。

1:AWS CLIでコマンドからログインしよう

まずは、AWS CLIを使っていきましょう。AWSのGUI(コンソール画面)でも進めていけるのでしょうが、サンプル情報もCLIの情報を基にしているものが多いですし、ログとして残していけるCLIをお勧めします。

windowsでCLIを活用していくためには、こちらを参考にしました。
このまま進めていけば、CLIの活用はすんなり進めることができました。

2: ログインする場合には、config でprofileを設定し、活用しよう

CLIで、config情報を設定することが出来ます。下記コマンドを使います。

aws configure

これ、何のために実行するのか??と、疑問の方もいるかもしれません。
ECRに限らず、CLIからAWSサービスを利用していく際に、ユーザーのログイン情報などを使うシーンがあります。
その際に、いちいち情報を打ち込んだり、コピペしたりする手間を省く目的で使われます。

で、1点気に掛けるといいのは、config情報の登録をuser名を付けて同時に設定することが可能です。
( 複数のconfig情報を登録して、利用する場合に用いる必要があるわけですね。 ) 何も設定しないと、defaultという名称になっているはずです。

コマンドとしては下記です。

aws configure user1( 任意のusername )

3: ログインするのは、AWSのアカウント情報(IAM情報)でECRへログイン

さぁ、それでは、今回の記事の本題です。ここから、ECRへログインしていきます。CLIでのコマンドは下記です。

aws ecr get-login-password --profile 設定A | docker login --username AWS --password-stdin 設定B

私は、最初に勘違いしていたのが、docker loginに含めるべき情報が、docker hubの情報だと勘違いしていました。正直、冷静に考えればそんなハズもないのですが。
色々な情報が欠けていると、見当はずれ間違いを起こしてしまうものですね。

で、ここでログインするべき情報はAWSのアカウント情報(IAM情報)です。

上記のコマンドで、利用者個別で変更する部分は、設定A・設定Bです。

注意して頂きたいのは、CLIのversionによって、コマンドが異なってきます。
今回、使用しているコマンドは v2のコマンドです。
こちらの記事を参考にしてます。

設定A:configで設定した、profile名称。

設定A:configで設定した、profile名称。
>2: ログインする場合には、config でprofileを設定し、活用しよう
にて、解説した部分です。
ここで設定した、aws configure user1 であれば、設定Aにuser1と記します。

設定B: ECRのリポジトリで作成したURI

設定Bは、ECRでレポジトリを作成した際のURIを活用します。今回の記事では、URIの紹介をしておりませんが、冒頭にお伝えした記事にてその作り方が紹介されております。非常に簡単に作れると思います。そこで作成したURIを貼り付けます。

AWSのコンソール画面でもURIは確認することができます。

以上で、コマンドを実行して、

Login Succeeded

と表示されればログイン完了です。

【windows編】AWSのEC2へssh接続するコマンドを紹介

AWSにssh接続するコマンドを紹介します。
簡潔に下記がそのコマンドです。

ssh -i 公開鍵のファイル ec2-user@IPアドレス

公開鍵のファイル

公開鍵のファイル:ディレクトリの場所も指定する必要があります。
例えば、 \Users\Desktop\ssh\aws-and-infra-ssh-key.pem
※ \Users\Desktop\ssh まではディレクトリで、それ以降がファイル名です。

IPアドレス

EC2のインスタンスで登録されているIPアドレスです。
(※Elastic IP を関連付けている場合は、Elastic IP)
確認場所は、

EC2 > インスタンス > 使用するインスタンスを選択

そして、下部に存在するタブの中から「説明」を指定すると
「 IPv4 パブリック IP」という項目で、確認できます。