ラベル AWS for Beanstalk の投稿を表示しています。 すべての投稿を表示
ラベル AWS for Beanstalk の投稿を表示しています。 すべての投稿を表示

2020年5月22日金曜日

AWS beanstalk (for Laravel)

1)composerコマンドをMacにインストールする
brew install composer

メモ:
Composer は、PHPのパッケージ管理ツールです。


2)Lalabelをインストールする。
composer create-project --prefer-dist laravel/laravel eb-laravel

3)beanstalkにアップするために、圧縮を行う。
zip ../laravel-default.zip -r * .[^.]* -x "vendor/*"

4)先ほど、圧縮したlaravel-default.zip”をアップロードを行う。


5)ソースコード先のローカルファイルに”laravel-default.zip”が選択していること。


6)アプリケーションの作成を押す。

…….作成中。













完成したようだ。

7)このままだと、直接アクセスすると、パーミッションエラーが表示されるので
Document rootの設定を行う。

1)設定  > ソフトウェア  > 変更を行う。


8)ドキュメントルートに/publicと記載する。

9)対象のurlに移動すると、表示されたようだ

10)EC2でリバースプロキシを作成する
------------------------------------------------------------------
server {
    listen       8888;                                  
    server_name  13.113.1.123;        <-------リバースプロキシのIP(通常は、ドメイン名を記載する)
    location / {
        proxy_pass http://13.230.81.99;   <--------対象のプロキシ先(AWS beanstalk: Lalabel)
    }
}
-------------------------------------------------------------------


11)AWS側でも、該当するEC2(nginxで作成した、リバースプロキシ)のセキュリティグループで
今回追加したポート番号”8888”を開ける。

12)上記設定後に、PC上からCurlコマンドを投入するか、ブラウザ上で以下のURLを投入してみる。
curl http://13.113.1.123:8888


以下、nginx(リバースプロキシ) —>Lalabel間のパケットをキャプチャをしてみた。
②内部でキャプチャを行う。

[キャプチャしたイメージ]
①PC —>  ②Nginx(プロキシサーバ)   —->③lalabel(beanstalk) 


beanstalk EB CLIコマンド導入方法 for Mac

1)念の為、brewコマンドのアップデートを行う
brew update

2)eb cliコマンドの導入を行う。
brew install awsebcli

3)バージョンを確認してみる
eb --version

Beanstalk for Auto Scaling

Auto Scalingグループ:
①環境タイプ:負荷分散
②インスタンス:最小1 最大:3  <---スケーリングする数を指定する


AWS Baenstalk (wordpress作成)

1)ウェブサーバー環境選択

2)環境の設定
①環境名:入力する
②ドメイン:無記入にした
③今回、wordpressで使用する言語はphpなので指定した。

④コードのアップロード:wordpress本体(公式からダウンロードした)のソースコードをアップロードする。
⑤環境の作成を行う。

[作成中……]

3)デプロイミス(アップしたwordpress本体がzip形式じゃなかったのでエラーになる)

4)zip形式のwordpressをアップして再デプロイする

5)成功した。


6)デプロイ前に、設定に移動して、ソフトウェアの変更にて、以下の入力を行う。

ドキュメントルート:/wordpress


7)次に設定画面からデータベースの変更内にて、ユーザ名とパスワードの設定を行う。

8)DBが完成するまで待つ。


9)指定のURLに移動すれば、以下の画面が表示される。


10)以下、入力を行う。
①データベース名:データベース名を入力
②ユーザ名:設定画面からデータベースの変更で記載したユーザ名
③パスワード:設定画面からデータベースの変更で記載したパスワード

④データベースのホスト名:以下のエンドポイントを記載。




AWS Beanstalkの構成変更方法

ダッシュボードから設定を選ぶと以下の変更可能な詳細箇所が現れるので、用途に応じて変更すること

Laravel for Docker x Beanstalk

アーキテクト:
lara-docker/
|----docker-compose.yml
|----nginx/
|         |-----Dockerfile
|         |-----default.conf
|
|------laravel/
|           |-----Dockerfile
|
|------.ebextensions(beanstalkの環境設定)
|------Dockerrun.aws.json(beantalkのECS用のデプロイファイル)


1)docker-compose.ymlを作成する。
①nginxの作成
②laravelの作成
--------------------docker-compose.yml--------------------------------------------
version: '2'
services:
  nginx:
    image: nginx
    ports:
      - "80:80"
  laravel:
    image: laravel
-----------------------------------------------------------------------------------------


2)nginxの初期設定ファイルの記載を行う
①laravelのドキュメント先を指定する。
②PHP-fpm関連で、fastcgiの記述を行う。

vi docker/nginx/default.conf
----------------------default.conf------------------------------------------------------
server {
    listen       80;
    server_name  localhost;

    location / {
        # Laravelのドキュメントルート設定
        root   /var/www/laravel/public;

        fastcgi_split_path_info  ^(.+\.(?:php|phar))(/.*)$;   
        fastcgi_intercept_errors on;

        fastcgi_index  index.php;
        include        fastcgi_params;
        # FastCGIの向き先をLaravelコンテナに設定
        fastcgi_pass   laravel:9000;
   # FastCGI サーバに渡されるべきパラメータを設定(一般的な設定)
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED $document_root$fastcgi_path_info;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
----------------------------------------------------------------------------------------


3)nginxのDockerfileの作成を行う
①nginxとalfinelinuxを指定する
②上記で、作成したdefault.confを導入先のdockerにコピーを行う。

vi docker/nginx/Dockerfile
------------------ Dockerfile ---------------------------------------------------------
FROM nginx:1.17-alpine

# ローカルから設定ファイルをコピー
COPY  default.conf /etc/nginx/conf.d/default.conf
-----------------------------------------------------------------------------------------


4)laravelのDockerfile作成を行う
①amazonlinuxを導入する
②php-pecl-zip:zipを使えるようにするファイル。
③php7.3をインストール
④php-dom:phpとMySQLを接続するプラグイン
⑤composerのインストール
⑥Laravelをインストールする。
⑦Laravelのプロジェクトの作成する。
⑧php-fpmのインストールを行う

-----------------------Dockerfile-----------------------------------------------------------
FROM amazonlinux:2 as vender

# PHPインストール
RUN amazon-linux-extras install -y php7.3
RUN yum install -y php-pecl-zip php-mbstring php-dom

# Composerインストール
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
RUN php composer-setup.php
RUN php -r "unlink('composer-setup.php');"
RUN mv composer.phar /usr/local/bin/composer

# 環境変数設定
# root でのインストールを許可する設定
ENV COMPOSER_ALLOW_SUPERUSER 1
#
ENV COMPOSER_HOME "/opt/composer"
ENV PATH "$PATH:/opt/composer/vendor/bin"

# Laravelインストール
RUN composer global require "laravel/installer"

# Laravelプロジェクト作成
WORKDIR /var/www
RUN composer create-project laravel/laravel laravel

FROM php:7.3-fpm-alpine

# ビルド用コンテナから必要なコンテンツをコピー
COPY --from=vender --chown=www-data:www-data /var/www/ /var/www/
--------------------------------------------------------------------------------------------------

5)Nginxのコンテナのビルドを行う
docker build nginx/. -t nginx 


6)Laravelのコンテナのビルドを行う
docker build laravel/. -t laravel


7)docker-composeを起動する。
docker-compose up


8).ebextensionsの作成を行う
mkdir .ebextensions


9)00permission.configの作成
(Laravelのパブリックディスクの権限設定)

vi 00permission.config
---------------00permission.config-------------------------------------
container_commands:
  01chmod_storage:
    command: "chmod -R 777 ./storage"
----------------------------------------------------------------------------

②composer.configの作成
(Laeravelのドキュメントルート用)

vi composer.config
------------- composer.config -------------------------------------------
option_settings:
  aws:elasticbeanstalk:container:php:phpini:
    document_root: /public
-----------------------------------------------------------------------------


Beanststalk:

1)beanstalkのデプロイ用のファイルの作成を行う。
------------------------------------------------------------------------------
{
  "AWSEBDockerrunVersion": 2,
  "volumes": [
    {
      "name": "laravel-app",
      "host": {
        "sourcePath": "/var/app/current/"
      }
    },
    {
      "name": "laravel-storage",
      "host": {
        "sourcePath": "/var/app/current/storage/"
      }
    }
  ],
  "containerDefinitions": [
    {
      "name": "laravel-app",
      "image": "XXXXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/laravel-php:latest",
      "environment": [
        {
          "name": "Container",
          "value": "PHP"
        }
      ],
      "essential": true,
      "memory": 128,
      "mountPoints": [
        {
          "sourceVolume": "laravel-app",
          "containerPath": "/var/www/laravel",
          "readOnly":"true"
        },
        {
          "sourceVolume": "laravel-storage",
          "containerPath": "/var/www/laravel/storage"
        }
      ],
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 80
        }
      ]
    }
  ]
}
---------------------------------------------------------------------------



ebコマンドによるLaravelデプロイについて

目的:
ebコマンドを使ってbeanstalk上でデプロイを行う。

前提:
①ebコマンドが使用出来ること 

手順:
1)作成済みのlaravelプロジェクトフォルダに移動する
cd /Users/endo/laravel/eb-laravel


フォルダのイメージ:
Laravelプロジェクトフォルダ
    |
    |-----.ebextensions      
    |-----.elasticbeanstalk 
    |-----.gitignore              
    |-----Laravel関連のファイル 


1)ebの初期化を行う
eb init -i

①regionを選択する。
②対象のアプリケーションを選択。
③すでに、laravelのプロジェクトフォルダ内phpファイル類があるため確認された内容だと思う。
④対象のPHPのバージョンを選択
⑤SSH経由でログイン対象なので” Y “にする。
⑥対象のkeyPairを選択する

2)以下、ファイルが作成されていることを確認


3)eb createでアプリケーションの作成を行う。
4) eb deployを実施して、Laravelをデプロイさせる。

5).ebextensionファイルの設定

やりたいこと:
単純にeb deployしただけだと、ドキュメントフォルダの指定がないので
エラーが出るので、以下の環境変数に記載を行う。

①以下、フォルダを作成する。
mkdir .ebextensions

②php.ini.configというファイルを作成する。
vi composer.config
----------------- composer.config -----------------------------
option_settings:
  aws:elasticbeanstalk:container:php:phpini:
    document_root: /public  <-------対象コメント記載する。
--------------------------------------------------------------------

③再デプロイを行う
eb deploy

2020年5月21日木曜日

node (hello world)

express test
cd test
npm install


今回、以下の2点を修正を行う
ls -la

vi  bin/www
nodejsをbeanstalkにあげる場合、内部のnginxでプロキシーでルーティングをしていて
8081をデフォにしているので、それに合わせて以下も修正した。
(beanstalkのnginx内部で修正すれば、他のポートでもルーティングできるっぽい)

次に、hellloworldの記入を行う。
vi routes/index.php


beanstalkの初期設定:
①初期化と環境の作成を行う。
eb init -i
eb create

②以下を行うことでbeanstalkにデプロイを行う場合
今回作成した、nodejsのプロジェクトファルダー内部で以下を実施すること
eb deploy

③beanstalkのコンテナオプションのノードオプションに以下を入力する。

地味ながら表示可能である

Yii 1xの導入方法

http://127.0.0.1/yii/requirements/

フォルダーの階層:
yii      :(本体)
yiitest:(作成したアプリ)

1)以下の場所に移動する。
cd /var/www/html

2)yiiのソースコードをドウンロードする。
wget wget https://github.com/yiisoft/yii/releases/download/1.1.21/yii-1.1.21.733ac5.tar.gz

3)解凍する
tar zxvf yii-1.1.21.733ac5.tar.gz

4)名前が長いので変更する
mv mv yii-1.1.21.733ac5 yii

5)アプリを作成する。
php yii/framework/yiic webapp yiitest

6)以下のアドレスを投入する。



beanstalkの設定:
注意:Yii1.x(ver 1.1.21)は、php7.2までしかサポートしてないので7.3は選択しないこと!!

php 7.2 for beanstalk


Lambda + SSM Run Commandで、数十台のEC2のuserdata結果を一括確認する

コードを1枚貼って、テストイベントを実行するだけで、 全台の確認結果が返ってくる手順です。 [ゴール] Nameタグが web-* / api-* / batch-* のEC2すべてに確認コマンドを流し、 NGの台だけ を結果に表示します。確認対象のuserdata(Ubu...