Laravel – DynamoDB

composerからライブラリを導入

$ composer require baopham/dynamodb

app.phpにライブラリを呼び出し

'providers' => [
    //
    BaoPham\DynamoDb\DynamoDbServiceProvider::class,
]

設定ファイルの出力

$ php artisan vendor:publish

IAMを事前に設定しておき、config/dynamodb.phpに設定ファイルが生成されるので、それに応じて.envに以下の様に記載。

DYNAMODB_KEY=***
DYNAMODB_SECRET=***
DYNAMODB_REGION=ap-northeast-1

挿入(insert)を行う場合は以下の様な感じで。

<?php

namespace App\Dynamo;

use BaoPham\DynamoDb\DynamoDbModel as Model;

/**
 * Class ItemUse
 * @package App
 */
class ItemUseJob extends Model
{
    /**
     * @var string
     */
    protected $table = 'item_use_jobs';

    public function saveJob($item_id, $job_id){
        $this->item_id = $item_id;
        $this->job_id  = $job_id;
        parent::save();
    }
}

https://github.com/baopham/laravel-dynamodb

EC2にてSSM(Session Manager)を利用する

プライベートサブネットでもコンソールが弄れる様に、EC2でSession Managerを使って操作ができる様にする。

・SSHでなくても操作が可能になる
・外部と繋がっていないインスタンスも可能(少し語弊があるかも)

手順1. IAMからロールの作成

EC2からSSMが利用できる様にロールの設定を行う、ここではAmazonEC2RoleforSSMを選択、その後わかりやすい様に名前を付けて保存。

手順2. EC2作成

EC2作成時、IAMロールに先程保存したRoleを指定。既存インスタンスを指定する場合は「IAM ロールの割り当て/置換」から行う、今回はAmazon Linux 2を選択した。

手順3. Systems Managerから操作

Systems ManagerよりSession Managerを選択すると、許可したEC2が出現するはず。表示されない場合は、インスタンスの再起動等を行うと良いかも知れない。またSSMのバージョンが古い場合も現れないので、必要に応じてインスタンスでパッケージを更新する必要あり。

Amazon Linux 2にMariaDB 10.2インストール

インスタンスを新規に立てた直後を想定

# 既存削除(postfixも削除されるので注意)
[ec2-user@ip-10-0-0-181 ~]$ sudo yum remove mariadb-libs
# extrasよりcommonとかlibをインストール
[ec2-user@ip-10-0-0-181 ~]$ sudo amazon-linux-extras install lamp-mariadb10.2-php7.2=stable

# yumよりインストール
[ec2-user@ip-10-0-0-181 ~]$ sudo yum install mariadb-server mariadb-devel
# 起動
service mariadb start

# 自動起動
systemctl enable mariadb