0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【AWS】LaravelアプリをEC2デプロイ⑤【SNS / Chatbot編】

Last updated at Posted at 2022-06-03

0. はじめに

大阪のLaravel初学者サウナーこと、kazumakishimoto(@kazuma_dev)です!
自動デプロイ(CodeDeploy)の開始と終了をSNS / ChatbotSlack通知させる方法です。

0-1. 前回記事

  • 【AWS】LaravelアプリをEC2デプロイ【まとめ編】

  • 【AWS】LaravelアプリをEC2デプロイ①【CloudFormation / EC2 / RDS編】

  • 【AWS】LaravelアプリをEC2デプロイ②【Route53編】

  • 【AWS】LaravelアプリをEC2デプロイ③【ACM / ELB編】

  • 【AWS】LaravelアプリをEC2デプロイ④【CircleCI / CodeDeploy編】

0-2. 全体の流れ

1.Slack
2.SNS
3.Chatbot
補足
Reference
次回記事

0-3. 本記事の対象者

  • CodeDeployの自動デプロイ開始と終了をSlack通知させたい

0-4. 事前準備

  • AWSアカウント作成済み
  • Slackアカウント作成済み
  • リージョンはアジアパシフィック(東京)ap-northeast-1
  • grflhogeはサンプル名なので適宜変更して下さい

0-5. 要件

  • Slackワークペース作成
  • CodeDeployで通知ルールの作成
  • Chatbotでチャネルの作成

0-6. 本番環境

ツール バージョン
OS Amazon Linux 2
nginx 1.12
PHP 7.4.28
Laravel 6.20.44
MySQL 5.7.37
Composer 1.10.26
Node.js 13.14.0

0-7. AWS構成図

aws

1. Slack

  • Slackの手順に従って進んでください
    image.png
    image.png
    image.png

2. SNS

image.png
image.png
image.png
image.png

3. Chatbot

3-1. チャネル作成

image.png
image.png
image.png
image.png

3-2. service-linked role作成

  • 『AWS ChatbotはSlackのチャネル設定を作成できません。』のエラーが発生するため、Chatbotにiam:CreateServiceLinkedRoleのインラインポリシーを作成
AWS Chatbot was unable to create the service-linked role for account xxxxxxxxxxxx. Rate exceeded (Service: AmazonIdentityManagement; Status Code: 400; Error Code: Throttling; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Proxy: null). Learn more https://docs.aws.amazon.com/chatbot/latest/adminguide/using-service-linked-roles.html.

image.png
image.png
image.png
image.png

JSON
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole",
                "iam:UpdateRoleDescription",
                "iam:DeleteServiceLinkedRole",
                "iam:GetServiceLinkedRoleDeletionStatus"
            ],
            "Resource": "*"
        }
    ]
}

image.png

  • 『Slackチャネルを設定』に戻って再び『設定』を押下してみると完了

3-3. 自動デプロイ実行

  • 開発ブランチでcommit→GitHubにpush
    image.png

補足

開発環境(FW/ツールのバージョンなど)

ツール バージョン
Vue.js 2.6.14
jQuery 3.4.1
PHP 7.4.1
Laravel 6.20.43
MySQL 5.7.36
Nginx 1.18.0
Composer 2.0.14
npm 6.14.6
Git 2.33.1
Docker 20.10.11
docker-compose v2.2.1
PHPUnit 8.0
CircleCI 2.1
heroku 7.59.4
MacBook Air M1,2020
macOS Monterey 12.3
Homebrew 3.3.8

ディレクトリ構造

【ルートディレクトリ】
├─ .circleci
│   └─ config.yml
├─ aws / CloudFormation
│   └─ ec2.yml
├─ docker
│   └─ mysql
│   └─ nginx
│   └─ php
│   └─ phpmyadmin
├─ src
│   └─ 【Laravelのパッケージ】
└─ docker-compose.yml

Reference

次回記事

  • 【AWS】LaravelアプリをEC2デプロイ⑥【S3編】

  • 【AWS】LaravelアプリをEC2デプロイ⑦【API編】

  • 【AWS】お役立ちリンク集【随時更新】

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?