ぽれいんのブログ

エンジニアになるために覚えたことを日記に付けます。

tarコマンド

はじめに

インフラエンジニア初学者のぽれいんと申します。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

 

<参考>

【 tar 】コマンド――アーカイブファイルを作成する/展開する:Linux基本コマンドTips(40) - @IT

 

 

 

 

tarコマンド

 

アーカイブ

tar -cvf 作成ファイル(.tar) 対象ファイル1 対象ファイル2

 

圧縮してアーカイブ

tar -czvf 作成ファイル(.tgz) 対象ファイル1 対象ファイル2

 

閲覧

tar -tf アーカイブファイル

 

解凍

tar -xzvf アーカイブファイル(圧縮ファイル)

 

 

 

以上!!!!!!!!!!!!!

ログを整形して表示

はじめに

インフラエンジニア初学者のぽれいんと申します。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

 

 

 

 

やりたいこと

本日は業務においてaccess_logを整形して表示する作業が必要だったので、その時に利用したコマンドを備忘録として残したいと思います。

 

作業の流れ

1.access_logを作業ディレクトリに移動させる

2.access_logの中で必要な箇所の位置を特定する

3.ログの必要な箇所を抜き出し、.logファイルにリダイレクトする

4..logファイルをffftpを使って実機に持ってきてサクラエディタでより細かく整形

 

実践

access_logを作業ディレクトリに移動させる

$ sudo su -
# mkdir /opt/work/log && cd /opt/work/log
# cp /var/log/httpd/access_log-20211116 /opt/work/log/access_log

 

access_logの中で必要な箇所の位置を特定する

(以下は16:00:00からのログが欲しいので

16:00:00の1つ目のログを抜き出し番号を確認している)

# head -n 1 /opt/work/log/access_log
# grep -n "16:00:00" access_log | head -n 1

ログの必要な箇所を抜き出し、.log.txtファイルにリダイレクトする

# tail -n +6275033 access_log | awk '{print $4 "" $7 "" $10} | awk -F ':' '{print $2 ":" $3 ":" $4}' > edit.log.txt 
# tail -n +1111111 access_log | awk '{print $4 "" $7}' | awk -F ':' '{print $2 ":" $3 ":" $4}' | sort | uniq -c > accesscount.txt

.log.txtファイルをffftpを使って実機に持ってきてサクラエディタで細かく整形!!

 

 

 

以上!!!!!!!!!!!!!

ECサイト構築

はじめに

インフラエンジニア初学者のぽれいんと申します。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

<参考>

EC2 インスタンスに、EC-CUBE4 を構築する - Qiita

 

 

 

 

 

 

本日のやりたいこと

今回はAmazonEC2のインスタンス上にECサイトを構築する。

ECサイトにはEC-cubeを使用。

 

使用環境

 

 

構築の流れ

①サーバセットアップ(時刻合わせ & 文字コード統一)

②各種ソフトウェアインストール

③Composerインストール

④各種設定の変更

⑤データベースセットアップ

EC-cubeインストール

 

いざ、構築!

 

サーバセットアップ

rootユーザに移行

sudo su -

時刻合わせ

timedatectl set-timezone Asia/Tokyo

文字コード統一

sed -i "s/en_US\.UTF-8/ja_JP\.UTF-8/g" /etc/sysconfig/i18n

 

各種ソフトウェアインストール

Apacheインストール

yum install -y httpd

AmazonLinuxの追加パッケージのphpをインストール

amazon-linux-extras install -y php7.2

php-fpmインストール

yum install -y php-mbstring php-xml php-intl

Gitインストール

yum install -y git

MariaDBインストール

yum install -y mariadb mariadb-server

ec2-userのセカンダリグループにapacheを追加

usermod -a -G apache ec2-user

/var/www/ディレクトリの所有者と権限を変更

chown -R ec2-user:apache /var/www
chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

ソフトウェアの自動起動設定をオンにして起動

systemctl enable httpd && systemctl start httpd
systemctl enable php-fpm && systemctl start php-fpm
systemctl enable mariadb && systemctl start mariadb

 

Composerインストール

Composerのインストール

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
rm composer-setup.php
sudo mv composer.phar /usr/local/bin/composer

 

各種設定の変更

httpd.confを編集

cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org 
vi /etc/httpd/conf/httpd.conf
--------------以下を編集---------------
<IfModule mime_module>
Addtype application/x-httpd-php .php  ← 追加
</IfModule>

<Directory "/var/www/html">
AllowOverride None
 ↓
AllowOverride All

</Directory>
---------------------------------------

php.iniを編集

cp /etc/php.ini /etc/php.ini.org
vi /etc/php.ini
--------------以下を編集---------------
memory_limit = 128M
  ↓
memory_limit = 512M

---------------------------------------

プラグインインストールでメモリが原因で失敗しないようにするため。

Apache再起動

systemctl restart httpd

 

データベースセットアップ

データベースの初期設定

mysql_secure_installation
⑴ Enter current password for root (enter for none):
  データベースのrootユーザのパスワードはまだ設定されてないので
  何も入力せずにenterを押す。
⑵ enter current password for root (enter for none):
  データベースの root ユーザーのパスワードをこれから設定したいので
'Y' と入力して Enter を押す。
⑶ Set root password? [Y/n]
  安全なパスワードを 2回入力
  New password:
  Re-enter new password:
  Password updated successfully!
⑷ 以下全部 Y を入力

---以下MariaDB内での操作---

EC-cubeのデータベースを作成

CREATE DATABASE `ec_cube_database`;

EC-cube用ユーザを作成

CREATE USER 'ec_cube_user'@'localhost' IDENTIFIED BY '1234';

EC-cube用ユーザにEC-cubeデータベースの権限付与

GRANT ALL on ec_cube_database.* to 'ec_cube_user'@'localhost';

 

EC-cubeインストール

/var/www/htmlに移動

cd /var/www/html

EC-cubeのgitをインポート

git clone https://github.com/EC-CUBE/ec-cube.git

権限を変更

chmod 764 ec-cube/bin/console

/var/www/html/ec-cube/に移動

cd ec-cube/

Composerインストールを実行

composer install

環境変数を設定

bin/console eccube:install

Database Url [sqlite://avr/eccube.db]:
> mysql://$ユーザ名:$パスワード@localhost/$データベース名
$ユーザ名     → 今回の場合は"ec_cube_user"
$パスワード    → 今回の場合は"1234"
$データベース名  → 今回の場合は"ec_cube_database"

動作確認

http://パブリックDNS/ec-cube/

 

f:id:porain:20211027141055p:plain

ECサイト

 

以上!!!!!!!!!!!!!

AWSSAA取得した件について

はじめに

インフラエンジニア初学者のぽれいんと申します。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

 

先日、AWSソリューションアーキテクトアソシエイトの資格を受験に行きました。

結論から言うと、、、、

724

でぎりっぎり合格することができました。

合格点が720点ということで4点ありがとう。。。。。

 

所感としてはやっぱり、めちゃくちゃ難しかったっていう印象が強い。。。

途中全然わからない部分があったが、もう半泣き状態で問題解いてました。

 

最近の傾向とかがあるのかもしれないけど、

S3AWS LambdaAWS WAFをしっかり学習することをオススメします!

自分の学習方法として、AWS JapanのYoutubeチャンネルでAWSのオンラインセミナーのアーカイブを見ました。

これめちゃくちゃ、構造の理解ができるのでオススメです!

 

www.youtube.com

 

 

 

以上!!!!!!!!!!!!!

AWSSAA~重要サービス~

はじめに

インフラエンジニア初学者のぽれいんと申します。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

<参考>

books.rakuten.co.jp

AWS IAM(ユーザーアクセスと暗号化キーの管理)| AWS

 

 

 

 

今回のやりたいこと

AWSソリューションアーキテクトアソシエイトの学習のためにAWSのサービスで最重要の次に重要なサービスを簡単にまとめたいと思います。需要があればご覧ください。

 

Route53

Route53AWSDNSサービス。WebコンソールやAPIから、簡単にドメイン情報やゾーン情報を設定・管理できる。Route53は単にドメインDNS情報を管理するだけでなく、ネットワークトラフィックのルーティングや接続先のシステム状況に応じた接続先の変更など、オプション機能も持っている。

ドメイン管理

ドメインの取得からゾーン情報の設定までRoute53で一貫した管理が可能。ドメインの年間利用料は通常のAWSの利用料の請求に含まれるため、別途支払いの手続きも不要です。自動更新機能もありドメインの更新漏れといったリスクも回避できる。

ホストゾーンとレコード情報

ホストゾーンとはレコード情報の管理単位を表す。通常はドメイン名。たとえば、「example.com」のレコード情報を管理する場合のホストゾーンは「example.com」となる。レコード情報は、ドメイン名とIPアドレスを変更するための情報。

レコード情報には、AレコードMXレコードCNAMEレコードといった種類があるが、Route53で特徴的なレコードとしてAliasレコードがある。Aliasレコードはレコード情報に登録する値として、CloudFrontやELB、S3などのAWSリソースFQDNを指定できる。CNAMEとの違いとしてZone Apexも登録できる。Zone Apexとは、最上位ドメインのこと。

トラフィックルーティング

要件や構成に応じて適切なトラフィックルーティングを指定することで可用性や応答性の高いシステムを構築することができる。

・シンプルルーティングポリシー

標準的な1対1のルーティング

・フェイルオーバールーティングポリシー

アクティブ/スタンバイ方式で、アクティブのシステムのヘルスチェックが失敗したときにスタンバイに切り替えることができる。S3と連携させることで、本番システム障害時にSorryサーバの静的コンテンツを表示させることができる。

・位置情報ルーティングポリシー

日本からのアクセスは日本語のコンテンツが配置されたWebサーバに接続するといった制御ができる。

・地理的近接性ルーティングポリシー

リソースの場所に基づいてトラフィックをルーティングし、必要に応じてトラフィックをある場所のリソースから別の場所のリソースに移動する際に使用。

レイテンシールーティングポリシー

複数箇所にサーバーが分散されて配置されている場合に、遅延がもっとも少ないサーバにリクエストをルーティングする。特定サーバだけ高負荷になった場合にリクエストを分散できる。

・複数値回答ルーティングポリシー

1つのレコードに異なるIPアドレスを複数登録して、ランダムに変換されたIPアドレスに接続する。ヘルスチェックがNGになったIPアドレスは返却されないため、正常に稼働しているサーバにのみアクセスを分散できる。

・加重ルーティングポリシー

指定した比率で複数のリソースにトラフィックをルーティングする際に使用。拠点をまたがってリソースの異なるサーバが配置されている場合にリクエスト比率を調整することができる。

 

CloudWatch

CloudWatchは運用監視を支援するマネージドサービス。リリース後安定した運用をすることで利用者の満足度を上げていくことが非常に重要。

概要

CloudWatchは各AWSリソースの状態を定期的に取得する。この状態をメトリクスという。AWSがあらかじめ定義しているメトリクスを標準メトリクスという。標準メトリクスにメモリ使用率がないことはよく知られている。そのため、カスタムメトリクスと呼ばれる利用者が独自に作成したメトリクスを利用することで使用が可能。

CloudWatch logs

CloudWatch logsはログをモニタリングするサービス。使用するには独自のエージェントをインストールする必要がある。このエージェントを介して各EC2ログをCloudWatch logsに収集する。CloudWatchと同様に、このアラームをトリガーにしてアクションを定義することが可能。

CloudWatch Events

CloudWatch Eventsは独自のトリガーと何かしらの後続アクションとの組み合わせを定義するサービス。独自のトリガーをイベントソース、後続アクションをターゲットと呼ぶ。ターゲットに既存のAWSリソースに対するアクションを定義する。

CloudTrail

CloudTrailAWSに関する操作ログを自動的に取得するサービス。CLISDKを用いたAPI操作によって、AWSリソースを操作したり、AWSリソースから情報を取得できる。CloudWatch logsと連携させることで不正な操作を早期に発見できる。

 

CloudFormation

AWS CloudFormationAWSリソースを自動構築するためのサービス。構築されるAWSリソースはスタックと呼ばれる。スタックは、テンプレートと呼ばれる設計図に基づいて構築される。

利用の流れ

①CloudFormationテンプレートを作成

②テンプレートを適用

③CloudFormationスタックが作成される

④③に紐づく形でAWSリソースが自動構築される

 

CloudFront

Amazon CloudFrontはHTMLファイルやCSS、画像、動画といった静的コンテンツをキャッシュし、オリジンサーバのかわりに配信するCDNサービス。

CloudFrontのバックエンド

CloudFrontはCDNのため、元となるコンテンツを保持するバックエンドサーバ(オリジンサーバ)が必要。オリジンサーバとして、EC2、ELB、S3の静的ホスティングを利用することができる。また、オンプレミスのサーバを指定することが可能なため今のシステム構成を変更することなくCloudFrontを導入することでイベント等のアクセス増に備えることができる。

ディストリビューション

CloudFrontは配信するコンテンツの内容によって異なる2つのディストリビューションがある。ダウンロードディストリビューションはHTTPやHTTPSを使いHTMLやCSS、画像などのデータの配信に利用。ストリーミングディストリビューションRTMPを使って動画のストリーミング配信をする際に利用。RTMPは時代の変化とともに2020年12月をもってサポートを終了。

キャッシュルール

頻繁にアップロードされる静的コンテンツはキャッシュ期間を短くし、あまり変更されないコンテンツ(画像・動画)はキャッシュ期間を長くするといった設定が必要。

 

ElastiCache

Amazon ElatiCacheは、AWSが提供するインメモリ型データベースサービス。高頻度で参照するデータや検索に時間がかかるデータセットをメモリ上に保持することでシステムのパフォーマンス向上に寄与する。

種類

ElastiCacheは2種類のエンジンをサポートしている。

Memcached

スタンダードで広く使われるエンジンでデータ処理パフォーマンスの向上に特化したキャッシュシステム。

・マルチスレッド

・非永続化

・単純なデータアーカイブ(String,Objects)

・メンテナンスが簡単

Radis

Memcachedより多くのデータが使えて、キャッシュ用途だけでなく、メッセージブローカーやキューを構成する要素としても利用される。

・シングルスレッド

・永続化

・多数のデータベースアーカイブ

・Atomic処理

・Pub/sub メッセージング

・リードレプリカ/フェイルオーバ

 

SQS

Amazon Simple Queue ServiceAWSが提供するフルマネージドなメッセージキューイングサービス。キューイングサービスを介すことで疎結合になる。

SQSの機能

SQSの機能として、キューの管理とメッセージの管理の2つがある。キューとは、メッセージを管理するための入れ物のようなもので、作成すれば管理する必要がなく、エンドポイントと呼ばれるURLを介して利用する形になる。

キューの種類

キューはStandardキューとFIFOキューの2種類ある

Standardキュー

メッセージの配信順序を保証せず、同一のメッセージが2回配信される可能性がある。

FIFOキュー

メッセージの配信順序を保証する。秒あたりの処理件数はStandardキューに劣る。

ロングポーリングとショートポーリング

キューのメッセージ取得方法として、ロングポーリングショートポーリングがある。両者の違いは、SQSのキュー側がリクエストを受けた際の処理にある。デフォルトのショートポーリングの場合はリクエストを受けるとメッセージの有無にかかわらず即レスを返す。これに対しロングポーリングはメッセージがない場合は設定されたタイムアウトのギリギリまでレスポンスを返さない。ショートポーリングはAPIの呼び出し回数も多くコストがかかる。複数のキューを単一スレッドで処理するような例外的ケース以外はロングポーリングを利用する。

可視性タイムアウト

メッセージは受信しただけでは削除されない。クライアント側から削除指示を受けたときに削除される。SQSには同じメッセージの受信を防止する機能として可視性タイムアウトがある。デフォルト設定値は30秒で最大、12時間まで延長可能。

デッドレターキュー

デッドレターキューは処理できないメッセージを別のキューに移動する機能。指定された回数処理が失敗したメッセージを通常のキューから除外してデッドレターキューに移動する。デッドレターキューを上手く使うと、アプリケーション側の例外処理を大幅に簡素化できる

メッセージキュー

キューに格納できるメッセージの最大サイズは256KB。文字列の情報に十分なサイズだが、画像情報などを扱うには足りない。SQSでは大きなサイズのデータはS3DynamoDBに格納し、そこへのパスやキーといったポインター情報を受け渡すことで対応する。

 

SNS

Amazon Simple Notification Serviceはプッシュ型の通知サービス。マルチプロトコルのため、複数のプロトコルに簡単に配信できる。利用できるプロトコルSMS、email、HTTP/HTTPS、SQSに加え、iOSAndroidなどのモバイル端末へのプッシュ通知、Lambdaとの連携などが利用できる。メッセージをプロトコルごとに変換する部分はSNSが行うので、通知する人(Publisher)はプロトコルの違いを意識することなく配信できる。SNSSQSCloudWatchなどと組み合わせてシステム間の連携や外部への通知などに利用する。

SNSの利用

SNSはトピックという単位で情報を管理する。システムの管理者は、メッセージを管理する単位でトピックを作成する。トピックの利用者には通知する人(Publisher)と通知される人(Subscriber)がいる。Subscriberは利用するトピックと受け取るプロトコルを登録する。これを購読という。

 

以上!!!!!

 

 

AWSSAA~最重要サービス~

はじめに

インフラエンジニア初学者のぽれいんと申します。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

<参考>

books.rakuten.co.jp

AWS IAM(ユーザーアクセスと暗号化キーの管理)| AWS

 

 

 

 

今回のやりたいこと

AWSソリューションアーキテクトアソシエイトの学習のためにAWSのサービスで最重要なサービスを簡単にまとめたいと思います。需要があればご覧ください。

 

IAM

AWS Identify and Access Management(IAM)では、AWSのサービスやリソースへのアクセスを安全に管理できる。IAMを使用すると、AWSのユーザとグループを作成および管理し、アクセス権を使用してAWSリソースへのアクセスを許可および拒否できる。

ポイント

  • 利用者ごとのIAMユーザ作成
  • 最小権限の原則
  • AWSリソースからのアクセスにはIAMロールを使う

利用者ごとのIAMユーザの作成

AWSにはアカウント作成時に作られたAWSルートアカウントがある。AWSルートアカウントは、利用者の追跡やアクセス制限が難しいため、原則として通常の運用には使わない。ユーザごとにIAMユーザを発行し、パスワードポリシー多要素認証(MFA)を設定する。ユーザ本人しか利用できないようにすることで誰がリソースを操作したか追跡できるようになる。(操作の追跡にはCloudTrailを利用し、設定履歴の確認にはAWS Configを利用。)

最小権限の原則

IAMユーザIAMロールは必要な操作権限を最小限に付与することが重要。たとえば、通常の開発者にはネットワークの操作権限は不要で、運用者にはインスタンスの起動停止のみで十分な場合が多い。業務で必要な権限以外を与えないことで、万が一アクセス権を奪われても被害を最小限に抑えることができる。

AWSリソースからのアクセスにはIAMロールを使う

IAMロールは、AWSリソースなどサービスに対して付与できる。たとえば、EC2インスタンスにロールを付与することでインスタンスのプログラムからAWSを操作できるようになる。プログラムにIAMユーザのアクセスキー・シークレットキーを付与すると、キー流出の危険性は高くなる。できる限りロールを使用する。

 

VPC

Amazon virtyual Private Cloud(VPC)は利用者ごとのプライベートなネットワークをAWS内に作成する。VPCはインターネットゲートウェイと呼ばれるインターネット側への出口を付けることで直接インターネットに出ていくことが可能。また、オンプレミスの各拠点へ繋げるために仮想プライベートゲートウェイを出口として、専用線のサービスであるDirect ConnectVPN経由で直接的にインターネットに出ることなく各拠点と接続することも可能。(VPC内に配置できないサービスとしてS3CloudWatchDynamoDBなどがある。)

 

EC2(+EBS)

Amazon Elastic Conpute Cloud(EC2)は仮想サーバを提供するコンピューティングサービス。インスタンスという単位でサーバが管理され簡単にサーバを構築することが可能。そのため、オンプレミス環境に比べてサーバ調達のリードタイムを非常に短くできる。また、インスタンス性能を決めるほかの重要な要因として、ディスク機能であるElastic Block Store(EBS)がある。EC2では通常の通信で使用するネットワーク帯域とEBSで使用する帯域を共有している。そのため、ディスクI/O、外部とのリクエストともに多く発生する場合、帯域が足りなくなることがある。このようなときに利用できるのがEBS最適化インスタンス

EBSのボリュームタイプ

EBSのボリュームタイプはSSDが2種類、HDDが2種類の4種類ある。

※旧世代のマグネティックと呼ばれるHDDのストレージタイプもあるが、新規で作成する際は現行のボリュームタイプから最適なものを選ぶ。また、各タイプの性能を最大限活かすにはEBSへのアクセスを最適化したEC2インスタンスの利用がおすすめ。

 

汎用SSD

「汎用」という名前が示すとおり、EBSの中で最も一般的な、SSDをベースとしたボリュームタイプ。EC2インスタンスを作成する際のデフォルトのボリュームタイプとしても利用される。性能の指標としてIOPSを用いて31IOPS/GBから最大16,000IOPS/ボリュームまで容量に応じたベースライン性能がある。1TB未満のボリュームには、一時的なIOPSの上昇に対応できるようにバースト機能が用意されており、容量に応じて一定期間3,000IOPSまで性能を向上させることができる。このベースライン性能やバースト機能を用いても必要なIOPSを満たすことができない場合は次のプロビジョンドIOPSの利用を検討する。

プロビジョンドIOPS SSD

プロビジョンドIOPSはEBSの中で最も高性能な、SSDをベースとしたボリュームタイプ。RDSやEC2インスタンスでデータベースサーバを構成する際など、高いIOPS性能が求められる際に利用する。IOPSの高いユースケースと高いスループットが必要なユースケースの両方に適したストレージタイプ。

スループット最適化 HDD

スループット最適化HDDはHDDをべーすとしたスループット重視のボリュームタイプ。ログデータに対する処理やバッチ処理のインプット用ファイルなど大容量ファイルを高速に読み取るようなユースケースに適している。スループットを性能指標として用いており、1TBあたり40MB/秒、最大で500MB/秒のベースライン性能がある。

Cold HDD

Cold HDDは4つのストレージタイプの中でストレージとしての性能はそれほど高くないが最も低コストなボリュームタイプ。利用頻度が少なく、アクセス時の性能もそれほど求められないデータをシーケンシャルにアクセスするようなユースケースアーカイブ領域の用途に適している。1TBあたり12MB/秒、ボリュームあたり最大250MB/秒のベースライン性能がある。

 

ELB(+Auto Scaling)

Elasstic Load Balancing(ELB)は3タイプのロードバランサーがある。

  • Classic Load Balancer(CLB)
  • Application Load Balancer(ALB)
  • Network Load Balancer(NLB)

ELBの特徴

マネージドサービスであるELBを用いるメリットとして、ELB自体のスケーリングが挙げられる。EC2インスタンス上にロードバランサーを導入する場合は、そのインスタンスボトルネックにならないように設計する必要がある。それに対してELBを用いた場合、負荷に応じて自動的にスケールする設定になっている。だが、スケーリングは瞬時に完了するわけではないことに注意が必要。急激な負担増(スパイク)が予想できる場合は、事前にELBプレウォーミングの申請が必要。もう一つELBの大きな利点としてヘルスチェック機能がある。ヘルスチェックは、設定された間隔で配下にあるEC2にリクエストを送り、各インスタンスが正常に動作しているかを確認する機能。もし、異常なインスタンスが見つかったときは自動的に切り離し、その後正常になったタイミングで改めてインスタンスをELBに紐付ける。ヘルスチェックには下記の設定値がある。

 

  • 対象のファイル
  • ヘルスチェックの間隔
  • 何回連続でリクエストが失敗したら切り離すか
  • 何回連続でリクエストが成功したら紐づけるか

Auto Scaling

Auto Scalingはシステムの利用状況に応じて自動的にELBに紐づくインスタンスの台数を増減させる機能。インフラリソースを簡単に調達でき、不要になれば、使い捨てできるクラウドならではの機能。Auto Scalingには下記の設定項目がある。

RDS(Aurora)

Relational Database Service(RDS)AWSが提供するマネージドRDBサービス。MySQL,MariaDB,PostgreSQL,Oracle,Mycrosoft SQL Serverなどのオンプレミスでも使い慣れたデータベースエンジンから好きなものを選択できる。さらにAmazon Auroraという、AWSが独自に開発したクラウドのメリットを最大限活かした新しいアーキテクチャのRDSも提供されている。バックアップやハードウェアメンテナンスなどの運用作業、障害時の復旧作業はAWSが提供するマネージドサービスを利用することで複雑になりがちなデータベースの運用を、シンプルかつ低コストに実現できる。

マルチAZ構成

マルチAZ構成とは、1つのリージョン内の2つのAZにDBインスタンスをそれぞれ配置し、障害発生時やメンテナンス時のダウンタイムを短くすることで高可用性を実現するサービス。以下の2点は利用時に注意

  • 書き込み速度が遅くなる
  • フェイルオーバに60~120秒かかる

リードレプリカ

リードレプリカとは、通常のRDSとは別に、参照専用のDBインスタンスを作成することができるサービス。2021年現在、すべてのデータベースエンジンでリードレプリカを利用可能。読み込みが多いアプリケーションにおいてDBリソースのスケールアウトを容易に実現することが可能。

Aurora

AuroraではDBインスタンスを作成するとともにDBクラスタが作成される。DBクラスタは1つ以上のDBインスタンスと、各DBインスタンスから参照するデータストレージで構成される。データストレージは、SSDをベースとしたクラスタボリューム。各ストレージ間のデータは自動的に同期され、また、クラスタボリューム作成時に容量を指定する必要がなく、Aurora内に保存されるデータ量に応じて最大64TBまで自動的拡張される。Auroraは他のRDSと異なりマルチAZ構成オプションはない。しかし、Auroraクラスタ内に参照専用のレプリカインスタンスを作成することができる。Auroraは他のRDSのリードレプリカとの違いAuroraのプライマリインスタンスに障害が発生した場合にレプリカインスタンスがプライマリインスタンスに昇格することでフェイルオーバーが実現する。

S3+S3 Glacier

Amazon S3は非常に優れた耐久性を持つ、容量無制限のオブジェクトストレージサービス。ファイルストレージとの違いとしては、ディレクトリ構造を持たないフラットな構成であることや、ユーザが独自にデータに対して情報を付与できることが挙げられる。

S3 の各オブジェクトには、RESTやSOAPといったHTTPをベースとしたWeb APIを使ってアクセスする。利用者がデータを保存するために利用するだけでなく、EBSのスナップショットの保存場所として使われるなどAWSのバックエンドサービスにも使われる。

ストレージクラス

  • S3標準
  • S3標準-低頻度アクセス
  • S3 1ゾーン-IA
  • S3 Intelligent - Tiering
  • S3 Glacier
  • S3 Glacier Deep Archive

ライフサイクル管理

S3に保存されたオブジェクトはその利用頻度に応じてライフサイクルを定義することができる。以下の二つのアクションを選択できる。

  • 移行アクション
  • 有効期限アクション

バージョニング機能

バージョニング機能を有効にすると、1つのオブジェクトに対して複数のバージョンを管理することができる。バージョニングはバケット単位で有効/無効を指定できる。バー叙任うされたオブジェクトは差分管理されるのではなく、新・旧の両方が保存されバージョンIDで区別されるため、両バージョン分の保存容量が必要。

Webサイトホスティング機能

S3では静的なコンテンツに限って、Webサイトとしてホスティングする環境を作成できる。静的コンテンツのリソースは通常のS3の利用と同様に、S3バケットへ保存することで行える。

S3のアクセス管理

S3のアクセス管理にはバケットポリシー、ACL、IAMが使える。バケットポリシーバケット単位でアクセスを制御する。そのバケットに保存されるオブジェクト全てに適用されるので、バケットの用途に応じた全体的なアクセス制御をするのに有効。ACLはオブジェクト単位で公開/非公開を制御する場合に使用。IAMでの制御はユーザ単位でS3のリソースを制御する場合に使用。

 

 

以上!!!!!!!!!!!!

シェルスクリプトで頻出コマンド~シェルの基礎~

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

<参考記事>

awkコマンドの基本 - Qiita

sedコマンドの備忘録 - Qiita

uniqコマンドについて詳しくまとめました 【Linuxコマンド集】

 

 

date

dateコマンドはコマンドを実行することで現在の「西暦」「月」「日」「時間」「分」などを表す文字を出力することができる

date +%Y_%m%d_%a_%H:%M
→2021_1015_Fri_20:14

%Y  西暦     %m  月     %d  日

%H  時間     %M  分     %a  曜日

 

awk

awkはあるフィールドの文字列を抜き出す際に使用する。

標準出力を行うawkコマンド「print」を利用し、awkで指定したフィールドを取得

echo 1 2 3 4 | awk '{print $1}'
→1

上記の例ではechoで標準出力した”1 2 3 4”の中から空白で区切られた中で一番最初のフィールドの1のみを抜き出して出力している。

echo 1 2 3 4 | awk '{print $0}'
→0

※$0は「パイプやファイルから渡された、文字列全て」

区切り文字の指定

空白(スペース)以外を区切り文字に指定する際には -Fオプションを利用します。

echo 1-23-456-78910 | awk -F'[-]' '{print $2}'
→23
echo 1-23:456~78910 | awk -F'[-:~]' '{print $2,$4}'
→23 78910

※上記のように記入することでフィールド区切り文字・フィールドは複数指定できる

 

sed

sedは文字列の置換に利用する。

cat file | sed -e 's/:/,/g'     file内の全行の":"を","に置換
sed -e '1d' file        file内の1行目を削除

 

wc

wcはファイルの文字数・単語・行数を表示するプログラム。

cat /var/log/httpd/error_log |wc -l

-c  データに含まれる文字数を数える

-w データに含まれる単語数を数える

-l     データに含まれる行数を数える

 

cut

aukと同様にフィールドを抜き出す場合に利用する。

cat /etc/shadow | cut -d ":" -f 2

-f n(数字)      第nフィールドを抜き出す対象とする。引数はカンマ(,)で区切って複数、ハイフン(-)で繋いで範囲を指定できる.

-d "区切り文字"         区切り文字の指定が可能。 

 

sort

sortは並び替えを行うフィルタープログラム。

cat /etc/passwd | sort      行先頭の文字コード順に並び替えて表示

-n         行頭の文字列を数字として評価し、昇順で並び替える。

+n        第nフィールドを並び替えの対象とする

 

uniq

重複する行になんらかの処理を行う。

uniq file                fileから重複行を削除
uniq file1 file2 file1から重複した行を削除した結果をfile2に出力

-c     重複した行数もターミナル上に表示する

-d 重複した行のみをターミナル上に表示する

-D 重複した行をターミナル上にすべて表示する

-u 重複した行はターミナル上に一切表示しない

-f 指定した項目以降で重複を判断する

-w 指定した文字数までで重複を判断する

 

以上!!!!!!!!!