AWS関連のことを調べてみた2021年08月15日

AWS関連のことを調べてみた2021年08月15日
目次

【AWS・EC2】unicornを起動の際のエラー文master failed to start, check stderr log for detailsの解決法・rails6 master.key周りの解決法も

したいこと

unicornの起動を成功させたい。(エラー文master failed to start, check stderr log for details)

経緯

本番環境としてEC2を使ってポートフォリオをデプロイしようとしています。
rails6で作成したアプリです。
下記記事を参考にしています。

https://qiita.com/Yuki_Nagaoka/items/dbb185feb6d4f051c2f2
https://qiita.com/naoki_mochizuki/items/5a1757d222806cbe0cd1#unicorn%E3%81%AE%E8%A8%AD%E5%AE%9A

出ているエラー

下記コマンドを実行し、

$ bundle exec unicorn_rails -c /var/www/rails/アプリ名/config/unicorn.conf.rb -D -E production

以下の様にエラーが表示される。

master failed to start, check stderr log for det

元記事を表示

【AWS API Gateway】エラー解決方法 〜「blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header 」

##症状
AWS API Gateway で作成した APIに GET通信したら、動かなくなったので、Chromeの検証画面を見ると、こんなエラーが出ていた。

“`
Access to XMLHttpRequest at ‘https://xxxxxxx.execute-api.ap-northeast-1.amazonaws.com/xxxxx/xxxxx’
from origin ‘http://xxxxx.co.jp’
has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header
is present on the requested resource.
“`

##解決方法

AWS API Gateway でCORSを有効にする。

アクション > メソッドの作成
[![Image from Gyazo](https://i.gyazo.com/5b4b4163542d493fffc9d75e7370ec53.png)](https://gyazo.com/5b4b416354

元記事を表示

Terraformを使ってEC2インスタンス構築

##概要
TerraformのインストールからAWSでのEC2インスタンスの作成までの手順をまとめました。

・Terraformをどう始めるか
・AWSリソースをコードからどうやって作成するのか
上記の2点にフォーカスをあてているため、細かい設定等は省きます。
Terraform学習の一歩目として参考にどうぞ。
##環境や前提条件
###OS
・macOSを使用
・homebrewがインストール済みであること
###AWS
・AWSアカウントが作成済みであること
・IAMユーザーを作成しアクセスキー、シークレットキーを取得済みであること

##目次
1. AWS CLIをインストール
1. Terraformをインストール
1. EC2インスタンスの構築
1. EC2インスタンスの更新

##1. AWS CLIのインストール
###AWS CLIとは?
AWS CLI(コマンドラインインターフェース)とは、コマンドラインからAWSのサービスを管理・操作するためのツール。
使用するメリットとしてはマネジメントコンソールでのGUI操作を自動化できることが挙げられる。

###インストー

元記事を表示

autovacuum、autoanalyzeの実行頻度を調整

#背景
PostgreSQLを使用しているのですが、本番環境でパフォーマンス劣化が顕著に現れてきました。
調査の結果、autovacuumとautoanalyzeが動いていなかったので、vacuum周りを調整しました。

#環境
DB:Amazon Aurora for PostgreSQL 10.16

#vacuum・analyzeの状況確認
##SQLで現状の情報を取得する
PostgreSQLの公式ドキュメントより、vacuum・analyze実行有無はpg_stat_all_tablesビューで最終確認時刻が確認出来ます。

[こちら](http://fdays.blogspot.com/2011/06/postgresql-vacuum-analyze-sql.html)のページに良いSQLが記載されていましたので、参考にさせて頂きました。

“`sql
SELECT relname, n_live_tup, n_dead_tup, last_vacuum, last_autovacuum, last_analyze, last_autoanalyze
FROM pg_s

元記事を表示

$0.12 per GB-month of General Purpose SSD (gp2) provisioned storageの解決策

概要

8ドルほどAWSの請求が発生したので原因を調査したところEC2の
$0.12 per GB-month of General Purpose SSD (gp2) provisioned storage
という項目で費用が発生しているとのこと。

解決方法

下記全て実行しました。使っていないEC2インスタンスを削除のみでは
解決しなかったのでご注意下さい。

  • 使っていないEC2インスタンスを削除
  • EC2のサイドバーメニューの「ボリューム」項目で、使っていないボリュームを削除
  • ![EC2の料金請求原因(ボリューム).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/630191/8f07c9e8-b5af-f9b5-1158-fb5fa7389fd8.png)

元記事を表示

Amazon EC2(Amazon Linux2) でWeb Proxy(squid利用)を構築する

そこそこのIT環境がある企業だとWebアクセスにProxyを利用しているところも多いと思います。最近だとi-fileterやZscalerなんかのクラウド型Proxyが流行りみたいですが、なかなか良いお値段します…そこでさくっとお試しできるOSSのProxyサービスのsquidを設定・検証してみます。

#squidとは
>Squid(スクウィッド)とは、HTTP/1.0と、(ほぼ全ての)HTTP/1.1 の仕様を満たし、HTTP、HTTPS、FTPなどをサポートするオープンソースのWebプロキシサーバです。
>Squidは、複数のWebサーバの前段に配置し、クライアントからの重複したリクエストをキャッシュし、Webサーバの代わりにレスポンスを行うことでサーバの負荷を分散させ、クライアントの要求に対して高速で安定したパフォーマンスを提供することができます。
また、ネットワーク内のクライアントからのアクセスを、Squidが中継することによって、アクセス制御や、ロギング環境を提供します。

[出典]

[Squid とは?](https://openstandia.jp/oss_i

元記事を表示

Swapファイルを消したい

“`terminal
E325: 注意
次の名前でスワップファイルを見つけました “/etc/nginx/conf.d/.rails.conf.swp”
所有者: root 日付: 土 8月 14 04:18:47 2021
ファイル名: /etc/nginx/conf.d/rails.conf
変更状態: あり
ユーザー名: root ホスト名: 略
プロセスID: 略
次のファイルを開いている最中 “/etc/nginx/conf.d/rails.conf”
日付: 土 8月 14 09:22:51 2021
スワップファイルよりも新しいです!

(1) 別のプログラムが同じファイルを編集しているかもしれません.
この場合には、変更をしてしまうと1つのファイルに対して異なる2つの
インスタンスができてしまうので、そうしないように気をつけてください.
終了するか、注意しながら続けてください.
(2) このファイルの編集

元記事を表示

Terraformざっくりめも:環境構築、モジュール形式のTerraform定義、既存リソースのImport

業務でTerraformを数ヶ月使用しました。内容を忘れた時に見返す用としてメモします。
業務ではモジュールを使用したフォルダ構成を主に扱ったため、それらを中心に記載しています。
(Workspacesの記載はありません。)

#環境構築
##AWSCLIインストール

以下を参考にAWSCLIをインストールします。

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html

##awsプロファイル設定
`~/.aws`フォルダに以下のような`credencal`,`config`ファイルを作成します。

“`:credencal
[dev]
aws_access_key_id = アクセスキーを設定
aws_secret_access_key = シークレットアクセスキーを設定
“`

通常は以下のように記述します。

“`:config (通常)
[dev]
output = json
region = ap-northeast-1
“`

スイッチロールを使用する場合は以下の

元記事を表示

AWSデプロイ後、we are sorry…のエラー画面が出てしまった

![エラー画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1727249/4343cc80-d1f6-a629-79c3-bdca38710ba5.png)

### AWSでデプロイ後、エラー画面が出てしまった。

### 解決した方法
色々試してみたが
githubの内容をEC2へ反映させ、プロセスを確認、プロセスのkill、再起動で解決出来た。

“`terminal
① git pull origin master
②    ps aux | grep unicorn
③ kill プロセス番号 (unicorn_rails masterと書かれている一番上の行の左から二番目の5桁の数字)
④   RAILS_SERVE_STATIC_FILES=1 unicorn_rails -c config/unicorn.rb -E production -D
“`

元記事を表示

【SAA-C02試験対策】セキュリティグループとネットワークACLの違い

#まえがき
SAA-S02の試験対策となります。

#前提知識
掲題の機能が提供される目的としては以下の内容となるようです。
“「ネットワークレベル(IP, TCP/UDP レベル) で通信を許可 / 拒否し、トラフィックを制御するファイアウォールとして機能する。」“
いずれもファイアウォール(パケットフィルタリング)機能にあたり、上記だけを見ると同じもののように見えますね。

#では何が異なるのか
対象や設定評価の方式が微妙に異なるようです。

| | セキュリティグループ | ネットワークACL |
| —- | —- | —- |
| 紐付け対象 | インスタンス | サブネット |
| ルール設定 | 許可ルールのみ | 許可 / 拒否ルール |
| ステート | ステートフル
戻りの設定は不要| ステートレス
両方向の設定が必要|
| デフォルト | インバウンド通信は拒否 | 双方向に許可 |

例えば、インスタンス間(A→B)のhttp通信が行われる場合、以下のルートを通るようです。

| | 通信方向 | 適用 |
| —-

元記事を表示

Terraformで Fargateのサービスに日付と時刻に基づいたスケジュールを設定する

##はじめに
本記事では、Terraformで Fargateのサービスに、日付と時刻に基づいてスケールイン/アウトするスケジュールを設定するサンプルについて記載しています。

サービスのスケジュールの設定自体は、 AWS CLIでも設定可能です。
参考:

https://gist.github.com/toricls/fea9d8a4eb606a27f6666a1abc6a6fd8

##Terraform で構築するサンプルの全体構成図
![00_fargate-autoscaling-sched.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283246/3c6649ad-497d-6f3b-e9b5-9747761d9f22.png)

#Terraform のサンプルコードと構成
https://github.com/okubo-t/aws-tf-fargate-autoscaling-sched.git

“`
$ tree aws-tf-fargate-autoscaling-sche

元記事を表示

Route53 + Cloud Front + S3 でWebサイトを構築する

# はじめに
サーバーレスで静的ウェブサイトを構築する機会がありましたので、
備忘録も兼ねて手順等についてまとめたいと思います。
AWSでWebサイトの構築を考えている人の参考になれば幸いです。

# アーキテクチャー
Cloud Front + S3 で 静的ウェブサイトを構築する場合、主に2つの方法があります。
今回は、Cloud FrontとS3間の接続にSSLを利用したかったので、①を採用しました。

① S3のREST API エンドポイントを使用する + Cloud FrontのOAIでアクセス制限する
② S3のウェブサイトエンドポイントを使用する

S3のウェブサイトエンドポイントとREST APIエンドポイントの主な違いは、下表の通りです。
※「[ウェブサイトエンドポイントと REST API エンドポイントの主な違い](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/WebsiteEndpoints.html#WebsiteRestEndpointDiff) 」より一部抜粋。

|項目|REST

元記事を表示

AWSのCLIを設定してみる

[zenn](https://zenn.dev/mo_ri_regen/articles/aws-cli-setting)にも同様の記事を書いています。更新頻度はzennのほうが多めです?

## この記事の目的

aws configure を使ってCLIの設定方法を学ぶ?

## はじめに

AWSではコンソール画面からクリックすることでいろいろ設定ができます。
しかし、画面が定期的にアップデートされるため参考にしていた画面が今の画面と異なることがよくあります。

AWSのCLIを使えばAWSの画面のアップデートに左右されずに、ターミナル上で設定を行うことができます。

## 実行環境

Macbook Air(M1)
ターミナル:fish ver 3.2.2

※WindowsでもCLIはインストールできますが、動作確認はしていません

## 準備

AWSでIAMユーザを作成してください。(過去にIAMユーザを作成した[記事]([過去](https://zenn.dev/mo_ri_regen/articles/aws-iam-with-administrator-rights

元記事を表示

php wordpress 対応バージョンに関するエラー

## はじめに

AWSの下記教材の演習で、EC2にwordpressを公開する際にエラーが発生した。

`・ゼロからわかる Amazon Web Services超入門`

解決できたので、対応方法を簡単にまとめる。

## 事象

同誌の181ページに従い
`http://パブリックIP/wp-admin/install.php`をブラウザに入力するも
`httpステータス:500のエラー`が返される。

ここに至るまで
`・EC2インスタンス作成`
`・ssh接続でリモート(Webサーバ)に繋ぐ`
`・apache, mariaDB, phpをインストール`
を完了している。

## 原因

何となく、教材に写っているデモ画面のURLを
ブラウザに入力してみると、エラー文が出てきた。
そこでインストールしているphpのバージョンが原因だと判明する。

・打ち込んだURL
`http://自分のパブリックIPアドレス/wp-admin/setup-config.php`

・エラー文
`Your server is running PHP version 5.4.16 bu

元記事を表示

【AWS DOP学習】CodePipelineを使用してLambdaを作成するチュートリアルを、CloudTrailを覗きながらやってみた

# はじめに

DOP学習にあたり、CodePipelineのイメージを掴むためにチュートリアルを行います。

# 対象チュートリアル

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/applications-tutorial.html

# チュートリアルの構成図

![codepipeline_tutorial_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/344711/6926f0a6-3e4f-9653-d2b9-da8c4c925e53.png)
※チュートリアル中、Lambdaの箇所にDynamoDBも追加されます。

# やってみた

## Lambdaからアプリケーションを作成

まず、Lambdaのアプリケーションを`一から作成`します。

![スクリーンショット 2021-08-12 19.09.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

ec2-userでディレクトリ移動が出来なくなった

AWSでのデプロイ中

.ssh から 「ec2-user」へログインし、ホームディレクトリからリポジトリ名ディレクトリまで移動したいのに、急に出来なくなった!

“`terminal
$ cd /vim/www/リポジトリ名(アプリ名)
“`

## 解決した方法

“`terminal
$ cd /var/www/リポジトリ名
“`

#### 超シンプル。「vim」じゃなくて「var」だった・・・。

## 解決方法

* Linuxコマンドを検索
* 使えそうなコマンドを探していた所、「find」が使えそう
* `$ find / -name リポジトリ名` を実行。

沢山ファイルが表示された後に最後の方に `/var/www/furima-35496`の文字が。

##### 見つかって良かった〜

※初学者です

元記事を表示

SSHとは (メモ)

AWSを利用してデプロイする方法を勉強中。
EC2のセッティングをしていた際に・・・
EC2のインタンスにディレクトリを変更する際に、ホームディレクトリから入ろうとしたら移動出来なかった。 一度、 sshに移動してから入る必要があるのだ。

## そもそも「ssh」って何?

私達の使っているパソコンから、サーバーを遠隔操作する。
遠隔操作する際に使う通信手段がSSH

昔はtelnet(何これ?テルネットって読むの??) を通信手段として使っていたが、
内容を暗号化したりよりセキュリティ面を強くしたのが `SSH` だ!

#### SSHクライアント(英:SSH client)とは

* SSHで接続「する方」のコンピュータのこと     あるいは
* SSHで接続するときに使うプログラムのこと     だそうです。 

> https://wa3.i-3-i.info/word17546.html
(参考記事) めっちゃ分かりやすかった!

しょうもない内容ですが、メモ。

元記事を表示

AWS API Gateway REST API カスタムドメインを使用する

# 初めに

以下のドキュメントを参考にやってみました。

https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/how-to-custom-domains.html

# 手順

## 1. ACM にサーバ証明書をインポートする

途中で聞かれる Common Name にドメイン名を入力します。(e.g. example-20210811.com)

“`
openssl genrsa -out server.key 2048
openssl req -new -sha256 -key server.key -out server.csr
openssl x509 -req -in server.csr -signkey server.key \
> -set_serial 01 -out server.crt -days 3650 -sha256
aws acm import-certificate –region us-east-1 \
> –certificate fileb://serv

元記事を表示

AWS StepfunctionsでCloudFormationスタックをシリアルに実行する

## はじめに

AWS StepfunctionsとLambdaでCloudFormationスタックをシリアルに実行するステートマシンを作成しました。(実行したスタックが完了するまで次のスタックは実行しません)
これは[以前作成したスクリプト](https://qiita.com/suo-takefumi/items/2bbcc3fd9af02acbeb26)をサーバレスで実行できるように改善したものになります。

## ソース

作成したソースはgithubに格納しました。

https://github.com/zgw426/AWS-StepFunctions_CreateStacks

## Stepfunctions ステートマシン

作成したステートマシンと各フローの処理概要です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274270/e8e3c747-8b8b-bf9b-9bb7-044fbc4410fc.png)

余談
Stepfunctionsっ

元記事を表示

Amazon Relational Detabase Serviceとは?

##はじめに
こちらの記事は、AWS-CLF取得にむけての自身のメモ、アウトプット記事となります。

##RDSとは?
RDSとは**Amazon Relational Detabase Service**の略称である。
RDSはリレーショナル型データベースであり、行と列の2軸を表形式で管理するデータベースのことを指す。

データベースは、特定の条件に基づいて複数のデータを管理し、必要に応じて目的のデータ検索・編集を行うために必須である。

##RDBMSとは?
RDBMSとは**Relatinal Detabase Management System**の略称である。

コンピュータ上で、リレーショナルデータベースを構築する際には、
リレーショナルデータベースを管理するためのソフトウェアを使う必要性がある。

##AWS RDSで利用できるRDBMS

①**Amazon Aurora**
→MySQL/PostgreSQL互換のクラウドに最適化されたリレーショナルデータベース

②**MySQL**
→オープンソース型のリレーショナルデータベース
シンプルなデータベースでの利用

元記事を表示

OTHERカテゴリの最新記事