AWS関連のことを調べてみた2020年09月01日

AWS関連のことを調べてみた2020年09月01日

AWS EC2 インスタンスにセキュリティグループを追加する

# 目的

– すでに起動しているインスタンスにセキュリティグループを後から追加する方法をまとめ

# 前提条件

– AWS EC2でAmazonLinux2インスタンスが起動していてssh接続をすることができること。

# 前提情報

– 本記事で実行するコマンドはインスタンスにssh接続を行い実行する物とする。
– 下記の方法で構築したインスタンスを元に説明を行う。
– [AWS EC2 をMacで使ってみよう!](https://qiita.com/miriwo/items/a1ab84c098008e43d042)

# 読後感

– 既存のインスタンスにセキュリティグループを追加することができる。

# 概要

1. aws config設定
1. セキュリティグループの追加
1. 確認

# 詳細

1. aws config設定
1. インスタンスにssh接続して下記コマンドを実行する。

“`terminal
$ aws configure
“`
1. 下記情報を入力する。
1

元記事を表示

EFSでマウントできない時に確認すること

#確認事項
* セキュリティグループが正しいか確認をする
* VPCのDNS設定を確認する
→DNS解決・DNS ホスト名を有効化する
* マウントポイントが作成されているか確認をする

無い場合は作成をする。

“`
mkdir /mnt/efs
“`

↓EFSのアタッチにあるコマンドをそのまま使う場合はデフォルトでefsでした。

“`
mkdir efs
“`

それでも解決できない場合
[マウントの問題のトラブルシューティング](https://docs.aws.amazon.com/ja_jp/efs/latest/ug/troubleshooting-efs-mounting.html)

#ECS・FargateでEFSマウント設定後にタスク起動できないとき

タスク設定を完了後、タスク起動が出来ずエラーが出た時

>タスクを実行できません
>One or more of the requested capabilities are not supported.

プラットフォームのバージョンを、1.4.0にすることで回避できました。

元記事を表示

#3 AWSのEC2インスタンス(ubuntu18.04)でPython(Django)環境を構築する part2

#はじめに
私はプログラミング言語の初学者です。
その為、読み間違いや理解不足の部分があると思います。
その場合はコメントで教えて頂けると幸いです。

「ゴール」は事前に作成したPythonのwebアプリケーションをデプロイする所まで行きたいと思います。出来るだけ初学者向けに書くつもりです。

作成手順

* AWSのEC2でインスタンスを構築後に、SSH通信をする 
* 構築したインスタンスの中にPythonの環境を構築する
* インスタンスの中に仮想環境を構築し、Django等をインストール(フレームワーク) ←**現在はここです。**
* PostgreSQLを設定する(データベース)
* インターネット上にアプリケーションが接続出来るように設定する(デプロイ前半)
* NginxとGunicornの設定する(デプロイ後半)

##仮想環境を構築し、Djangoをインストールします。

* Django等をインストールします。
* Git Hubからファイルをクローンします。

###ステップ1(インストール編)

“`
pip3をアップデート
$ sudo -H pip3 i

元記事を表示

Amazon API Gatewayが更新されない場合

Amazon API Gatewayがテストではうまくいくのに本番環境が変わらずハマった話

# Amazon API Gateway のデプロイには注意

Amazon API GatewayでエンドポイントのURLを発行したあと、プログラム修正したら反映されずハマってしまったのでメモ。

## API GatewayではテストとステージのエンドポイントURLは切り離されているのでがLamdaと違い手動デプロイが必要

Lamda Node.JSを使っているとテスト・保存が直感的なためデプロイを意識することがない
しかし、API Gatewayではデプロイを指定したあとは、いくら設定変えようが、指定時のデプロイを参照して実行結果が返ってくる。

LamdaとAPI Gatewayを交互に作業していると、Lamdaのテスト結果もAPI Gatewayのテスト結果も変更を反映しているのにURLを(再デプロイせずに)叩くと古い結果が返り続け、悩むことになる

タチの悪いことに、API GatewayのエンドポイントURLが確認できるステージという画面内には再デプロイのためのボタンもそれを促

元記事を表示

メモ:EB/ECSのデプロイ失敗がfstrimで解消した件

この記事は
===

* AWSのElastic BeanstalkのマルチコンテナDocker(ECS)環境で、デプロイに失敗する事象が継続的に起きていて、色々調べて解消できたのでその記録です

結局なんだったの?
===

* 一言でいえばディスクフルによる異常動作です
* なぜディスクフルになっていたかというと、コンテナ上で削除されたブロックが解放されない事象が起きていました
* これを、fstrimコマンドで強制解放させたら解決しました

事象&原因
===

eb deployに失敗

* まずeb deployするとリリースに失敗していました
* で、下記のログが出ていました
* どうもローリングアップデートのBatch1は成功しているようなのですが、2でこけているようです
* 書いてある通り、ELBからのヘルスチェックに返答ができず、デプロイに失敗しているようです

“`
INFO Command execution completed on 2 of 3 instances in environment.
INFO Batch 2:

元記事を表示

#2 AWSのEC2インスタンス(ubuntu18.04)でPython環境を構築する

#はじめに
私はプログラミング言語の初学者です。
その為、読み間違いや理解不足の部分があると思います。
その場合はコメントで教えて頂けると幸いです。

「ゴール」は事前に作成したPythonのwebアプリケーションをデプロイする所まで行きたいと思います。出来るだけ初学者向けに書くつもりです。

作成手順

* AWSのEC2でインスタンスを構築後に、SSH通信をする 
* 構築したインスタンスの中にPythonの環境を構築する ←**現在はここです。**
* インスタンスの中に仮想環境を構築し、Django等をインストール(フレームワーク)
* PostgreSQLを設定する(データベース)
* インターネット上にアプリケーションが接続出来るように設定する(デプロイ前半)
* NginxとGunicornの設定する(デプロイ後半)

##環境を構築して行きます。
###ステップ1(接続編)
まずはじめに、環境構築する場所に移動します。
前回の記事に書いてあったSSH接続でubuntuサーバの中に入ります。
入り方は

“`
$ ssh -i xxx.pem ubuntu@’usern

元記事を表示

デフォルトVPCのDNSについて

AWSに既に設定されているVPCですが、予め用意されているがために見落としがちな用語とその存在意味をかいてみた。
特に「なぜデフォルトのVPC,サブネットにEC2インスタンスを建てると、インターネットに接続できたりするのか?」と考えてみるとわかりやすいかも。

#VPC
デフォルト VPC 内にインスタンスを起動すると、パブリック IPv4 アドレスとプライベート IPv4 アドレスに対応するパブリック DNS ホスト名およびプライベート DNS ホスト名がインスタンスに割り当てられる。

![スクリーンショット 2020-08-31 17.28.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593689/4a845159-2d86-2e53-6a47-d20798a7596f.png)

### DNS解決(DNS resolution)
DNS解決とは、EC2インスタンスのDNSホストネームをIPアドレスに解決するかどうかの設定。
デフォルトVPCでは「有効」。

###DNSホスト名(DNS

元記事を表示

AWS CLIでWAFのCloudWatchメトリクスを取得するときにはまったはなし

## はじめに
■ やりたかったこと。
Cloudwatchにアラームを設定して、アラーム状態になったときにSNSを使って通知がいくようにしたい => WAFのCloudWatchメトリクスの値をとらないと。

ということでaws cliでwafのメトリクスを取ってこようとしたのですが、なかなかうまくいかなくて半日費やしたので解決方法をまとめました。

## 失敗したやり方

▼ コマンド

“`
root@xxxxxxx:/home# aws cloudwatch get-metric-statistics \
–namespace AWS/WAFV2 \
–metric-name CountedRequests \
–start-time 2020-08-29T23:40:00 \
–end-time 2020-08-31T10:00:00 \
–period 300 \
–statistics Sum \
–dimensions Name=Rule,Value=Allow-Env-IP Name=WebACL,Val

元記事を表示

Ubuntu 18.04 LTSにMoodleをインストールする

パッケージアップデート

“`sh
sudo apt update
sudo apt upgrade -y
“`

必要なパッケージを追加

“`sh
sudo apt-get install -y zip lamp-server^ php7.2-curl php7.2-zip php7.2-xml php7.2-mbstring php7.2-gd php7.2-intl php7.2-xmlrpc php7.2-soap
“`

パーミッションの設定

“`sh
sudo usermod -a -G www-data ubuntu
sudo chown -R ubuntu:www-data /var/www
sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;
“`

コードを取得

“`
cd /var/www/html
git clone -b MOODLE_39_

元記事を表示

【PHP・AWS】AWS Cognitoを通してS3にアップロードする方法

# はじめに
PHPでAWS Cgnito認証を通してAWS認証情報を所得してS3を使用する記事が少なかったので、自分の備忘録としても記事に残したいと思います。
※あると程度AWSやCognitoを知っている程でいきます?

# 環境
下記のものをcomposerでインストールしておきます。

“`
aws/aws-sdk-php: 3.26.3
pmill/aws-cognito: ^0.2.11
“`
PHPのバージョンは 7.4.1 です。
## Cognito
### ユーザプールの作成
![スクリーンショット 2020-08-27 23.42.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649661/e6038939-29ce-1ea6-825f-0d26b2643498.png)
適当にプール名を入れて、「ステップに従って設定する」を選択しましょう。

![スクリーンショット 2020-08-29 13.27.06.png](https://qiita-image-store.s

元記事を表示

【AWS EC2】ec2-userと同様にsudo可能なユーザーを追加する

# 概要
Amazon Linux2のデフォルトユーザーec2-userの他にsudo可能なユーザーを追加する

# 環境
– EC2 Amazon Linux2
– Windows10
– Ubuntu(WSL: Windows Subsystem for Linux)
– RLogin(sshクライアント)

# 手順
## 1. AWSマネジメントコンソールからキーペアを作成する
1. EC2 > ネットワーク&セキュリティ > キーペア
2. キーペアを作成
![key_pair.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265229/a3c0cd53-9149-cd8e-1df2-49cd0fd68c38.png)
3. 名前にキーペア名を入れて、pem形式でキーペアを作成
4. pemファイルがダウンロードされるので、ローカルPCの適切な場所に保管

## 2. キーペアから公開鍵を取得する
1でダウンロードしたpemファイルから公開鍵を取得する。
`ssh-keygen`を使いたい

元記事を表示

SQSの可視性タイムアウトよりもLambdaのタイムアウトを長く設定したい

## 概要
CDKにてSQSキューをトリガーに実行するLambdaを初回deployする際、
キュー側の可視性タイムアウト時間よりもLambda実行のタイムアウト時間の方が長いと、

“`
Invalid request provided: Queue visibility timeout: X seconds is less than Function timeout: X seconds
“`

のエラーがでて、deployに失敗する。

エラー文言に従い可視性タイムアウト時間を長くすれば良いのだが、
Lambda側でキューを取得後にすぐに削除して別で処理のステータス管理をするケースなど、可視性タイムアウトを長くする必要がない場合がある。

また、ドキュメントでも
https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html
> 通常、可視性タイムアウトは、アプリケーションがキューのメッセージを処理して削除するまでの最大所要

元記事を表示

AWS認定クラウドプラクティショナー(CLF)を取得しました

AWS認定クラウドプラクティショナー(CLF)を受験し無事合格しました。
資格取得までに参考にしたものを投稿します。

![ 2020-08-31 10.04.37.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/290588/0fe373b6-fc04-6eb8-c303-7cf00c2da002.jpeg)

## 私のAWSの知識
2週間前にデベロッパーアソシエイトに合格しました。
https://qiita.com/gdtypk/items/4cfcf3c74b9faf3893aa

半年前にソリューションアーキテクトに合格しました。
https://qiita.com/gdtypk/items/52d96a5af0a05f06ebc4

業務では、EC2,RDS,Lambda,S3を軽く触っている程度になります。

## やったこと
2週間、毎日30分~1時間程度、勉強していました。

### 試験範囲の確認
https://aws.amazon.com/jp/certification/ce

元記事を表示

AWS はじめてのCodeDeploy

CodeDeployを設定したので備忘録的に残そうと思います。

#IAM作成
毎回悩まされる権限周り
CodeDeployに必要なIAMとデプロイ先のEC2インスタンス用のIAMをそれぞれ作成する

#CodeDeploy用のIAM
`AWSCodedeploy`をアタッチ
AutoScalingを利用する場合には、AutoScaling関連の権限もアタッチ。
・ロールタイプ
 AWSサービスロール→EC2
・ポリシーのアタッチ
 AWSCodeDeployRole

#EC2用のIAM
`AmazonS3ReadOnlyAccess`をアタッチ
・ロールタイプ
 AWSサービスロール→EC2
・ポリシーのアタッチ
 AmazonS3ReadOnlyAccess

#EC2のセットアップ
#EC2インスタンス用意
デプロイするEC2インスタンスを作成。
この時、上記で作成したEC2用のIAMロールを割り当てる
(ロールを割り当てていないとデプロイ失敗のもととなる。体験談。。)

#CodeDeploy-agentの導入
EC2インスタンスを立てたら、次はCodeDeploy-ag

元記事を表示

[AWS]Amazon Comprehendを使って、自然言語処理をしてみた。

## サービス概要

 Amazon Comprehend は、機械学習を使用してテキスト内でインサイトや関係性を検出する自然言語処理 (NLP) サービスです。
[https://aws.amazon.com/jp/comprehend/](https://aws.amazon.com/jp/comprehend/)
自然言語処理については、クラスメソッドさんの動画がわかりやすかったです。

### テキスト分析ってどんなことできるの?(日本語対応している機能)
– テキストから出現頻度の多いキーワード(名称)を抽出できる。
– テキストの感情分析ができる。
– 言語を判定できる(日本語、英語など)

## **使ってみた**
1.AWSのマネジメントコンソールの検索画面からサービス画面にアクセスしてください。
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550295/f9f9f033-aa57-f60c-b41b-08384d6aafc9.png)

2.`Launch A

元記事を表示

【AWS】S3改めてまとめてみた

#S3(Simple Storage Service)とは
ユーザがデータを容量制限なく保存可能なマネージド型で提供されるオブジェクト型ストレージ

##特徴
– 高い耐久性:99.999999999%
– 安価なストレージ:月額1GB/約2.5円
– スケーラブルで安定した性能:データは冗長化されて保存されデータ容量に依存しない性能がAWS側で保証される
– 暗号化:データ転送中や保存時にデータを暗号化可能

##データ保存形式
– バケット:オブジェクトの保存場所、バケット名はグローバルでユニークな必要がある
– オブジェクト:S3に格納されるファイルでURLが付与される。バケット内でオブジェクト数は無制限。URLはkey(オブジェクト名)、Value(データそのもののバイト値)、バージョンID(バージョン管理に用いるID)で一意になる。オブジェクトに付随する属性の情報をメタデータという。
– データサイズ:0KB~5TBまで保存可能

##ストレージクラス
S3には用途に応じて5つのストレージクラス分けされています。
###STANDARD
デフォルトのストレージクラス。低レイテ

元記事を表示

AWS運用のノウハウ

# 概要

AWSを始めとするパブリッククラウド環境でインフラ運用を始めると、サーバ構築からインフラ監視、セキュリティ対策、コスト管理まで考えなければならないことがたくさん出てきます。
ここではAWSを初めて運用するインフラエンジニア、SRE向けにスモールスタートな環境構築からスケーラビリティの高いインフラ構成まで、様々なノウハウを公開していこうと思います。

# 初めにやること

## アカウント設計

システムを運用する上で、本番環境以外に開発環境や検証環境を作成するケースは多いと思います。AWSでサービスを運用する場合は大まかに次のパターンに分かれることが多くなります。

* 1つのAWSアカウント、1つのVPC (ネットワーク) に全ての環境を構築
* 1つのAWSアカウント、VPCごとに環境を分けて構築
* AWSアカウントを環境ごとに分けて作成

どのパターンが最適かは、システム構成や規模によって変わりますし、運用コストにも影響があります。インフラを設計する上では初めに考えるべきポイントとなるでしょう ([^1])。

## 命名規則の設計

インフラを設計するに辺り、プロ

元記事を表示

nginxのconfigファイル設定後の再起動(リロード)方法

nginxにて、各種configファイル編集後
彼らを有効化するために再起動(リロード)する方法です。

“`
$ sudo service nginx reload
“`

以上です。

▼参考:Nginx – ログフォーマット、アクセスログについて!
https://www.mk-mode.com/blog/2013/01/16/nginx-access-log/#

元記事を表示

AWSで動画配信(オンデマンド動画配信)をするための手順

WEBサイトに動画を埋め込む必要があり、実際にやってみたのでその備忘録になります。

## 対象者

– 自分のWEBサイトに動画を埋め込みたい方
– WEBサーバー内に動画を置きたくない場合

### やること

– Youtubeのよう好きなタイミングで動画を視聴できるオンデマンド配信
– 自サイトからS3の動画ファイルを読み込み、再生

### やらないこと

– 生放送のようなリアルタイムのライブ配信
– 動画の自動変換

## 構成

![Untitled Diagram (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165191/0d9ce89f-91aa-c8bd-f6ea-a66447411f7b.png)

ユーザー目線で行くと、WEBサイトを経由してCloudFrontを介し、動画ファイルを閲覧する流れになります。
また、AWS内では動画をS3に動画をアップロードし、ElementalMediaConvertにて動画を変換します。
各詳細については後述。

## 料金

この

元記事を表示

Amplify ConsoleのカスタムドメインをValue-DomainからRoute53へ移管する

前回「[AWSにフルサーバーレスなWebサイト運用環境を作る(Gatsby + Amplify + CodeCommit)](https://qiita.com/yoskoh/items/785a643d153f526be365)」で、Amplify Consoleを使ってフルサーバーレスで爆速Webサイトを作りました。

—-

その時はAmplifyのカスタムドメインの管理を外部レジストラ(実はValue-Domain)にCNAME設定したのですが、今回はそのAmplifyで利用中のドメイン管理をValue-DomainからAWS Route53へ移管します。

—-

といってもほとんど公式ガイドの手順の通りなのですが、多少Amplify特有の部分もあるので記載します。1〜2週間かかる可能性があると公式には記載がありましたが、やってみると半日程度でスムーズに移管できました。

—-

# Value-Domain側の移管手順を確認する

まずはValue-Domainのドメイン移管手順をざっと確認します。

参考 https://www.value-domain.co

元記事を表示

OTHERカテゴリの最新記事