{ALB}アクセスログの作成の有効化

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-access-logs.html

 

-- 1. コマンド等のインストール

-- 1.1 aws cli version 2 インストール

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

aws --version

-- 1.2 jqインストール
sudo yum -y install jq


-- 2. EC2インスタンス作成

アベイラビリティーゾーンで少なくとも 1 つの EC2 インスタンスを起動します

-- ap-northeast-1a

aws ec2 run-instances \
--image-id ami-0404778e217f54308 \
--instance-type t3.nano \
--key-name key1 \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=instance01}]' \
--instance-market-options '{"MarketType": "spot","SpotOptions": {"SpotInstanceType": "one-time"}}' \
--subnet-id subnet-11111111111111111

-- ap-northeast-1c

aws ec2 run-instances \
--image-id ami-0404778e217f54308 \
--instance-type t3.nano \
--key-name key1 \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=instance02}]' \
--instance-market-options '{"MarketType": "spot","SpotOptions": {"SpotInstanceType": "one-time"}}' \
--subnet-id subnet-22222222222222222


aws ec2 describe-instances


-- 3. Apacheインストール
Apacheウェブサーバーを各 EC2 インスタンスにインストール

sudo yum -y update
sudo yum -y install httpd

sudo systemctl start httpd
sudo systemctl status httpd
sudo systemctl enable httpd

sudo su -

cd /var/www/html
echo $(hostname) > index.html


sudo yum -y install elinks
elinks http://localhost/

 

 


-- 4. ロードバランサーの作成
※internal-ALBを作成


aws elbv2 create-load-balancer \
--name alb01  \
--subnets subnet-11111111111111111  subnet-22222222222222222 \
--security-groups sg-33333333333333333 \
--scheme internal


aws elbv2 describe-load-balancers
aws elbv2 describe-load-balancers| jq -r .LoadBalancers.LoadBalancerArn

 

 

-- 5. ターゲットグループの作成

aws elbv2 create-target-group \
--name target01 \
--protocol HTTP \
--port 80 \
--vpc-id vpc-44444444444444444 \
--ip-address-type ipv4 \
--target-type instance

aws elbv2 describe-target-groups
aws elbv2 describe-target-groups| jq -r .TargetGroups.TargetGroupArn

aws elbv2 describe-target-group-attributes \
--target-group-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:targetgroup/target01/5555555555555555

 

aws elbv2 register-targets \
--target-group-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:targetgroup/target01/5555555555555555  \
--targets Id=i-66666666666666666 Id=i-77777777777777777


aws elbv2 describe-target-health \
--target-group-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:targetgroup/target01/5555555555555555

 


-- 6. リスナーの作成

aws elbv2 create-listener \
--load-balancer-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:loadbalancer/app/alb01/8888888888888888 \
--protocol HTTP \
--port 80  \
--default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:targetgroup/target01/5555555555555555


aws elbv2 describe-listeners \
--load-balancer-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:loadbalancer/app/alb01/8888888888888888

aws elbv2 describe-listeners \
--load-balancer-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:loadbalancer/app/alb01/8888888888888888 | jq -r .Listeners[].ListenerArn


-- 7. S3 バケットを作成する


aws s3 mb s3://bucket123

aws s3 ls


-- 8. バケットポリシーの作成

vim a.json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::582318560864:root"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::bucket123/test/AWSLogs/999999999999/*"
    }
  ]
}


aws s3api put-bucket-policy \
--bucket bucket123 \
--policy file://a.json

aws s3api get-bucket-policy \
--bucket bucket123

 

-- 9. アクセスログ作成の有効化

aws elbv2 describe-load-balancer-attributes \
--load-balancer-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:loadbalancer/app/alb01/8888888888888888

aws elbv2 modify-load-balancer-attributes \
--load-balancer-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:loadbalancer/app/alb01/8888888888888888 \
--attributes '[
      {
          "Value": "true",
          "Key": "access_logs.s3.enabled"
      },
      {
          "Value": "test",
          "Key": "access_logs.s3.prefix"
      },
      {
          "Value": "bucket123",
          "Key": "access_logs.s3.bucket"
      }
  ]'

 

 

 

-- 10. アクセスログの確認

curl -v -X GET http://internal-alb01-0000000000.ap-northeast-1.elb.amazonaws.com

aws s3 ls s3://bucket123 --recursive


aws s3 cp s3://bucket123/test/AWSLogs/999999999999/elasticloadbalancing/ap-northeast-1/2022/05/05/999999999999_elasticloadbalancing_ap-northeast-1_app.alb01.8888888888888888_20220505T0100Z_172.31.12.34_xxxxxxxx.log.gz -  | gzip -dc 


-- 11. クリーンアップ

 


-- バケットの削除

aws s3 ls
aws s3 rb s3://bucket123  --force

 


-- リスナーの削除

aws elbv2 describe-listeners \
--load-balancer-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:loadbalancer/app/alb01/8888888888888888


aws elbv2 delete-listener \
--listener-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:listener/app/alb01/8888888888888888/aaaaaaaaaaaaaaaa


-- ターゲットグループの削除

aws elbv2 describe-target-groups

aws elbv2 deregister-targets \
--target-group-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:targetgroup/target01/5555555555555555 \
--targets Id=i-66666666666666666 Id=i-77777777777777777

aws elbv2 delete-target-group \
--target-group-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:targetgroup/target01/5555555555555555

 


-- ロードバランサーの削除

aws elbv2 describe-load-balancers

aws elbv2 delete-load-balancer \
--load-balancer-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:loadbalancer/app/alb01/8888888888888888

 

-- EC2インスタンスの削除

aws ec2 describe-instances

aws ec2 terminate-instances --instance-ids i-66666666666666666
aws ec2 terminate-instances --instance-ids i-77777777777777777

 

 

MySQLクライアント

(22)

sudo apt update -y
sudo apt install mysql-client

mysql -h 192.168.137.66 -u root -p test

 

(11)
https://tweenpath.net/install-mysql-client-on-debian-10-buster/

 

apt update -y
apt install default-mysql-client

mysql -h 192.168.137.66 -u root -p test

 

(7)

yum update -y

-- mariaDB削除
yum remove -y mariadb-libs
rm -rf /var/lib/mysql/

-- yum リポジトリの追加
yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm


yum search mysql

-- 公開鍵インストール
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

-- インストール
yum install -y mysql-community-client


mysql -h 192.168.137.66 -u root -p test

 

(2019)

https://dev.mysql.com/downloads/installer/

Setup Type: Client only

PATH追加
C:\Program Files\MySQL\MySQL Workbench 8.0


mysql -h 192.168.137.66 -u root -p test

 

{APIGateway}HTTP API のログ記録の設定

https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/http-api-logging.html


-- 1. コマンド等のインストール

-- 1.1 aws cli version 2 インストール

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

aws --version

-- 1.2 jqインストール
sudo yum -y install jq


-- 2. IAMロール作成
vim role01.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

aws iam create-role \
--role-name role01 \
--assume-role-policy-document file://role01.json


-- 3. ポリシーをロールにアタッチ
aws iam attach-role-policy \
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole \
--role-name role01

-- 4. Lambda関数作成

vim test.js

exports.handler = async (event) => {
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};


chmod 755 test.js
zip test.zip test.js

aws lambda create-function \
--function-name func01 \
--zip-file fileb://test.zip \
--handler test.handler  \
--runtime nodejs14.x  \
--role arn:aws:iam::999999999999:role/role01


aws lambda list-functions | grep func01

aws lambda get-function --function-name func01

 


-- 5. HTTP API を作成する

aws apigatewayv2 create-api \
--name api01 \
--protocol-type HTTP \
--target arn:aws:lambda:ap-northeast-1:999999999999:function:func01

 

aws apigatewayv2 get-apis
aws apigatewayv2 get-apis| jq -r .Items.ApiId


aws apigatewayv2 get-api \
--api-id 1111111111


aws apigatewayv2 get-integrations \
--api-id 1111111111

aws apigatewayv2 get-integrations \
--api-id 1111111111| jq -r .Items.IntegrationId


aws apigatewayv2 create-route \
--api-id 1111111111 \
--route-key 'ANY /func01' \
--target integrations/2222222


aws apigatewayv2 get-routes \
--api-id 1111111111

 


aws apigatewayv2 get-deployments \
--api-id 1111111111


aws apigatewayv2 get-stages \
--api-id 1111111111

 

 

-- 6. Lambda関数に権限を追加する

aws lambda add-permission \
--function-name func01 \
--statement-id apigw \
--action lambda:InvokeFunction \
--principal apigateway.amazonaws.com \
--source-arn "arn:aws:execute-api:ap-northeast-1:999999999999:1111111111/*/*/func01"

 

aws lambda get-policy \
--function-name func01 | jq -r .Policy  | jq .


-- 7. API をテストする

curl https://1111111111.execute-api.ap-northeast-1.amazonaws.com/func01

 

-- 8. ロググループの作成

aws logs create-log-group --log-group-name lg01

aws logs describe-log-groups --log-group-name-prefix lg01


-- 9. ステージのログ記録の有効化

aws apigatewayv2 update-stage \
--api-id 1111111111 \
--stage-name '$default' \
--access-log-settings '{"DestinationArn": "arn:aws:logs:ap-northeast-1:999999999999:log-group:lg01:*","Format": "$context.identity.sourceIp - - [$context.requestTime] \"$context.httpMethod $context.routeKey $context.protocol\" $context.status $context.responseLength $context.requestId"}'

 

 

-- 10. クリーンアップ

-- ロググループの削除

aws logs describe-log-groups --log-group-name-prefix lg01
aws logs delete-log-group --log-group-name lg01

 

 

-- HTTP APIの削除
aws apigatewayv2 get-apis

aws apigatewayv2 delete-api \
--api-id 1111111111

 

-- Lambda関数の削除
aws lambda get-function --function-name func01
aws lambda delete-function --function-name func01


-- ロールの削除
aws iam list-roles | grep role01

aws iam detach-role-policy \
--role-name role01 \
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole

aws iam delete-role --role-name role01

 

Oracleクライアント

(22)

https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html


Basic Package (ZIP)
SQL*Plus Package (ZIP)


sudo mkdir -p /opt/oracle

unzip instantclient-basic-linux.x64-19.15.0.0.0dbru.zip
unzip instantclient-sqlplus-linux.x64-19.15.0.0.0dbru.zip

sudo mv instantclient_19_15 /opt/oracle

sudo apt install libaio1


export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_15:$LD_LIBRARY_PATH
export PATH=/opt/oracle/instantclient_19_15:$PATH
export NLS_LANG=JAPANESE_JAPAN.AL32UTF8


sqlplus test/test@192.168.137.65:1521/pdb1.example.com

 

ネットワークファイルは下記に格納
/opt/oracle/instantclient_19_15/network/admin

 

(11)

https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html


Basic Package (ZIP)
SQL*Plus Package (ZIP)


mkdir -p /opt/oracle

unzip instantclient-basic-linux.x64-19.15.0.0.0dbru.zip
unzip instantclient-sqlplus-linux.x64-19.15.0.0.0dbru.zip

mv instantclient_19_15 /opt/oracle

apt install libaio1


export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_15:$LD_LIBRARY_PATH
export PATH=/opt/oracle/instantclient_19_15:$PATH
export NLS_LANG=JAPANESE_JAPAN.AL32UTF8


sqlplus test/test@192.168.137.65:1521/pdb1.example.com

 

ネットワークファイルは下記に格納
/opt/oracle/instantclient_19_15/network/admin

 

 

(7)

https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

Basic Package (RPM)
SQL*Plus Package (RPM)

yum install oracle-instantclient19.15-basic-19.15.0.0.0-1.x86_64.rpm
yum install oracle-instantclient19.15-sqlplus-19.15.0.0.0-1.x86_64.rpm


export NLS_LANG=JAPANESE_JAPAN.AL32UTF8

sqlplus test/test@192.168.137.65:1521/pdb1.example.com

ネットワークファイルは下記に格納
/usr/lib/oracle/19.15/client64/lib/network/admin

 

(2019)

https://www.oracle.com/jp/database/technologies/instant-client/winx64-64-downloads.html

instantclient-basic-windows.x64-19.14.0.0.0dbru.zip
instantclient-sqlplus-windows.x64-19.14.0.0.0dbru.zip

zipファイルを展開し、下記に格納

C:\oracle\instantclient_19_14

PATH追加

Visual Studio 2017 redistributable のインストール

sqlplus test/test@192.168.137.65:1521/pdb1.example.com

ネットワークファイルは下記に格納
C:\oracle\instantclient_19_14\network\admin

 

 

NextCloud

(20)


https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-nextcloud-on-ubuntu-20-04-ja

-- 1. 事前設定
sudo vim /etc/hosts

192.168.137.169 mmm169

sudo apt update && sudo apt upgrade

-- 2. Nextcloudのインストール
sudo snap install nextcloud
snap changes nextcloud
snap info nextcloud
snap connections nextcloud

-- 3. 管理アカウントの設定
sudo nextcloud.manual-install nextclouduser nextcloudpassword

-- 4. 信頼できるドメインの調整
sudo nextcloud.occ config:system:get trusted_domains

sudo nextcloud.occ config:system:set trusted_domains 1 --value='192.168.*.*'
sudo nextcloud.occ config:system:get trusted_domains

-- 5. 自己署名証明書を使用したSSLのセットアップ
sudo nextcloud.enable-https self-signed


-- 6. Nextcloud Webインターフェイスへのログイン
https://192.168.137.169

 

 

(10)
https://cloudcone.com/docs/article/how-to-install-nextcloud-on-debian-10/


-- 1. Prerequisites

vi /etc/hosts

192.168.137.180 mmm180

apt update && apt -y upgrade

-- 2. Install Apache webserver

apt -y install apache2 libapache2-mod-php
systemctl status apache2


-- 3. Install PHP

apt -y install php php-gd php-curl php-zip php-dom php-xml php-simplexml php-mbstring

php -v

-- 4. Install MariaDB database

apt -y install mariadb-server php-mysql
mysql -u root -p

CREATE DATABASE nextclouddb;

GRANT ALL ON nextclouddb.* TO 'nextclouddb'@'localhost' IDENTIFIED BY 'password';

FLUSH PRIVILEGES;

EXIT;

-- 5. Download Nextcloud

cd /tmp
wget https://download.nextcloud.com/server/releases/nextcloud-16.0.1.zip
unzip nextcloud-16.0.1.zip
mv nextcloud /var/www/html

cd /var/www/html

chown -R www-data:www-data nextcloud
chmod -R 755 nextcloud

systemctl restart apache2

-- 6. Install  Nextcloud via a browser

http://192.168.137.180/nextcloud/index.php

nextclouduser
nextcloudpassword

 

 

 

(7)
https://www.aska-ltd.jp/jp/blog/38


-- 1. 必要パッケージインストール

yum install -y epel-release yum-utils unzip curl wget bash-completion

yum update -y


-- 2. Apacheインストール
yum install -y httpd


vi /etc/httpd/conf.d/nextcloud.conf


DocumentRoot /var/www/html/
ServerName 192.168.137.127

<Directory /var/www/html/nextcloud>
  Require all granted
  AllowOverride All
  Options FollowSymLinks MultiViews
</Directory>


systemctl enable httpd.service
systemctl restart  httpd.service
systemctl status httpd.service

-- 3. PHPインストール

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install -y php72w php72w-cli php72w-common php72w-curl php72w-gd php72w-mbstring \
 php72w-mysqlnd php72w-process php72w-xml \
 php72w-zip php72w-opcache php72w-pecl-apcu php72w-intl php72w-pecl-redis
 
yum install -y bzip2

-- 4. Nextcloudパッケージインストール

cd /tmp

wget https://download.nextcloud.com/server/releases/nextcloud-15.0.4.tar.bz2
wget https://download.nextcloud.com/server/releases/nextcloud-15.0.4.tar.bz2.md5

md5sum -c nextcloud-15.0.4.tar.bz2.md5 < nextcloud-15.0.4.tar.bz2

tar xf nextcloud-15.0.4.tar.bz2

cp -R nextcloud/ /var/www/html/
mkdir /var/www/html/nextcloud/data
chown -R apache:apache /var/www/html/nextcloud

systemctl restart httpd.service
systemctl status httpd.service

-- 5. MariaDBインストール

yum install -y mariadb mariadb-server

systemctl enable mariadb.service
systemctl restart mariadb.service
systemctl status mariadb.service

mysql_secure_installation

cp -pi /etc/my.cnf.d/server.cnf{,.orig}
vi /etc/my.cnf.d/server.cnf

[mariadb]
character-set-server = utf8mb4

[client]

# This group is not read by mysql client library,
# If you use the same .cnf file for MySQL and MariaDB,
# use it for MariaDB-only client options
[client-mariadb]
default-character-set = utf8mb4

systemctl restart mariadb
systemctl status mariadb

mysql -u root -p
show variables like "chara%";

CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON nextcloud.* TO 'nextcloud'@'localhost';
SHOW GRANTS FOR 'nextcloud'@'localhost';
EXIT;

-- 6. Nextcloud Webインターフェイスへのログイン

http://192.168.137.127/nextcloud

nextclouduser
nextcloudpassword

 

 

 

(2019)

サポートされていない模様