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

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

【AWS EFS】 EFS導入と「自動マウントされない問題」や「マウントされたときの表示がいまいち問題」、「帯域制限を掛けながらrsyncでデータを流す」をしたときのメモ

# はじめに

EBSをEC2にマウントしていると、他のサーバからそのEBS内容を閲覧したいときにつらいので、EFSを使ってみました。
その際に、「EFSが自動マウントされない問題」とか「「$ df -h」した際に、表示されるefsが127.0.0.1とかlocalhostとかの表示になっていてわかりづらい問題」、「帯域制限を掛けながらrsyncでデータを流す」の内容も記述します。

自分用メモです。

# 内容

## EFSのマウント

これは、多くの参考記事がありますのでそちらを参考に。

・https://qiita.com/rubytomato@github/items/4a821fc9e07848a15e59
・https://qiita.com/aWdfcfG2jLr73pe/items/adb807df4c4fb305006b

ありがたいですー

## EFSの自動マウントがされない問題

これも、多くの記事がありますので参考に。

https://dev.classmethod.jp/articles/tsnote-support-efs-nfs-utils-re

元記事を表示

シナリオから学ぶ連携テスト

# シナリオ背景
連携API(VPC A)とAPIを使うサービス(VPC B)はAWSの違うVPCに存在する。
2つのシステムは**Peering設定***されて通信できる状況。
連携APIのVPCは***マルチAZ構成***になっている(2つのAZ)

**Peering**:*2つのVPC間の通信を外部ネットワーク経由でなくL3ネットワーク経由で、でVPC間の相互に通信ができるサービスです。*

**マルチAZ構成**:*クラウド上で構築・運用されるシステムの可用性を高めるためのベストプラクティスの一つであり*

![peering-intro-diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108475/7559e09c-cd36-eaa5-a3fa-5c01d9140116.png)
VPCピア機能については[こちら](https://docs.aws.amazon.com/ja_jp/vpc/latest/peering/what-is-vpc-peering.html)を参考

元記事を表示

RDSのログファイルをAWS CLIから確認する

#はじめに
RDSを利用しているとMySQLやPostgreSQLなどのエンジンのバージョンアップによる影響やパフォーマンス改善のためにスロークエリを確認するためにRDSインスタンスのログを確認することがあります。
ブラウザからでもログファイルを確認・ダウンロードすることができますが、対象のログファイル数が多くなると面倒だったのAWS CLIを利用して確認しました。

#環境
* OS:macOS Catalina 10.15.6
* AWS CLI:aws-cli/2.0.43 Python/3.7.4 Darwin/19.6.0 exe/x86_64

#前提
AWS CLIでRDSインスタンスのログを確認するにはポリシーが付与されている必要があり、以下のポリシーが必要になります。

“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“rds:DescribeDBL

元記事を表示

IaC から始まる幸せなエンジニアライフ

ここ最近忙しく、久しぶりの投稿になってしまいました。
ちょっと前から書きたかった布教用の記事を書きます。
みんなが IaC すれば、世界がちょっと happy になります。。

## IaC って何?

ここ 2-3 年、僕が注力した分野の一つが IaC です。

IaC は Infrastructure as Code の略です。
つまり、インフラ構成をコードで管理しましょう、っていうことですね。

その対極にあるのは、インフラ構成を CLI や GUI を使って、手動で作成・管理するというものです。
その場合は、しばしば手順書をドキュメントとして残すことになります。

## こんなにあるよ! IaC のメリット

IaC のメリットとして、パッと思いつくだけでも、以下のようなものがあります。
(何か語呂合わせにしたいけど、思いつかないのでいいや…)

– Easy to Reproduce (再現容易性)
– Easy to View (閲覧容易性)
– Easy to Destroy (破棄容易性)
– Easy to Share (共有容易性)

元記事を表示

最もシンプルなAWS Lambdaの実装

#はじめに
「とりあえず、AWS Lambdaを体験してみたい」人用の記事です。
初心者向けに「S3と連携して~」みたいな記事は多いのですが、
意外とシンプルな実装を投稿している人が少なかったので今回やってみました。
早ければ10分程度でAWS Lambdaを体験できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287677/65b90fb1-e052-96a5-a79f-9748ba0d8ba3.png)

今回作成するシステムの構成図↑

#全体の流れ

①AWS Lambda関数の作成

②API Gatewayの作成、AWS Lambdaとの接続

③テスト

#①AWS Lambda関数の作成
一から作成で、test_funcという名前の関数を作成します。
ランタイムは何でもいいですが、今回はpyhonを選択します。
![image.png](https://qiita-image-st

元記事を表示

本番稼働中のシステムでダウンタイム無しでECS on EC2からFargateに移行

## 稼働中のECS on EC2システムの構成

– クライアントリクエストはALBとターゲットグループでECSにルーティングしている
– クラスター内にサービスは2つあって1つはNginxコンテナとPHP-FPMコンテナが格納されているタスクが動いている
– もう1つはバックグラウンドで非同期処理を行うワーカープロセスのコンテナが格納されているタスクが動いている
– セッション管理はElastiCacheのRedisを使っている
– DBはRDSを使っている
– Route53でシステムのFQDNにALBのエイリアスを設定している
– アプリケーションはPHP, Laravelで実装している
– 他にもSESやSNSやS3など色々使っているがそれらリソースへのアクセス許可を付与したアプリケーション用IAMユーザを作成してアプリケーションに設定し、各リソースを利用するためのパッケージをインストールして動かしている

## 移行概要

一言でいうと、ロードバランサーとアプリケーションサーバー部分だけ新しく作成してDNSで切り替える。

以下の流れで進めることにより、ダウンタイム(移行の

元記事を表示

AWSによるネットワーク&サーバー構築(学習のまとめ)

学んだ内容を備忘録として記事にまとめます。
初学者ならではの感覚でまとめますので、同じ初学者の参考になりましたら幸いです。
*間違っている部分がありましたらご指摘いただけると助かります。。

学習教材は、ド定番のこちら!

[「さわって学ぶクラウドインフラ『Amazon Web Services 基礎からのネットワーク&サーバー構築』改訂3版」](https://www.amazon.co.jp/Amazon-Services-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E7%AF%89-%E6%94%B9%E8%A8%823%E7%89%88/dp/4296105442/ref=pd_lpo_14_t_0/355-8673716-9709823?_encoding=UTF8&pd_rd_i=4296105442&pd_rd_r=180f66

元記事を表示

AWS 認定ソリューションアーキテクト – プロフェッショナル合格(2020/9/28)

# 経緯
AWS SAPに合格した為、勉強方法を忘備録として記載します。
非常に大変でした。
以下、元々の経験値と勉強方法を記載します。
あくまで参考としてお読み下さい。

# AWS経験値
2年

## 経験のあるサービス
– Route53
– ACM
– Lambda(Python3)
– AWS Config
– GuardDuty
– Inspector
– CloudFormation
– CloudWatch Logs/Events
– S3
– RDS
– ECS
– EKS(案件ではなく、勉強がてら)
– EC2
– Fargate
– ALB
– CodeCommit
– CodeBuild
– CodeDeploy
– CodePipeline

# 学習
## 期間
6月末 参考書購入
9月末 試験受験

6月よりも前から模擬問題を解いてはいましたが、体系的に学べずモチベーションが上がりませんでした。
その為、本格的に始めたのは参考書の購入からです。
(模擬問題を2月と9月に受けたのが勿体ない・・・)

## 勉強時間
平日:0~3時間
土日:6~10時間

元記事を表示

【AWS】S3+CloudFrontでNuxt.jsから生成した静的HTMLを公開

# はじめに
こちらの記事は
S3ってよく聞くけどどうやって使うの?
CloudFrontを試しに使ってみたい!
というAWS初心者の方が対象です

### 大まかな流れ

・ [Nuxtプロジェクトを新規作成](https://qiita.com/KazutoNagano/items/0c0770e3845cda8528c6#nuxt%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E6%96%B0%E8%A6%8F%E4%BD%9C%E6%88%90)
・ [Nuxtの静的なHTMLを生成](https://qiita.com/KazutoNagano/items/0c0770e3845cda8528c6#nuxt%E3%81%AE%E9%9D%99%E7%9A%84%E3%81%AAhtml%E3%82%92%E7%94%9F%E6%88%90)
・ [S3にバケットを作成し静的HTMLファイルをアップロード](https://qiita.com/KazutoNagano/items/0c0770e38

元記事を表示

CodeDeployで、Installが延々と続いて終わらない

CodeDeployで、たまにエラーも出ず、Installが延々と続いて終わらない、という現象が発生することがあります。

エラーが出ないと割とパニくると思うのでかなり軽い内容なのですが、記事にします。

自分にもこの事象は何度か起きたのですが、

1. CodeDeployのIAM Roleに必要な権限がない
2. コンテナの設定ファイルにミスがあるなど、起動できない状態のコンテナをデプロイしようとしている

自分の場合は、いずれもこの2つのどれかが原因でした。

## 事例

参考までに、直近で自分が経験したInstallが延々と続いて終わらない事態について紹介します。

Fargateで、サイドカー構成でfluent-bitのコンテナとFireLensを使って他のコンテナのログをfirehoseに送ろうとした時、以下の制約に気づかず、

>カスタム設定ファイルを使用する場合は、FireLens が使用するパスとは異なるパスを指定する必要があります。Amazon ECS では /fluent-bit/etc/fluent-bit.conf (Fluent Bit) と /fluen

元記事を表示

AWS問い合わせ

Amazonカスタマーサービスへの電話やチャットの問い合わせはこちらです。
https://www.amazon.co.jp/gp/help/contact-us/general-questions.html

AWSに関しては電話サポートはなくチャットとメールのみの対応のようですね。
https://aws.amazon.com/jp/contact-us/aws-sales/

元記事を表示

git_remote_codecommitが突然動かなくなる

一行目にあるようにどうやらXcodeのpythonに依存しているらしい。今回はおそらくXcode12への自動更新によって、動かなくなってしまった。
`/usr/local/bin/python3` で動かすようにしたら解決した。

“`bash:git_remote_codecommit
#!/Applications/Xcode.app/Contents/Developer/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

from git_remote_codecommit import main

if __name__ == ‘__main__’:
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$’, ”, sys.argv[0])
sys.exit(main())
“`

元記事を表示

Amazon Linux 2(EC2)で時刻(タイムゾーン)と言語を日本に設定

Amazon Linuxが安いのでよく使います。が、毎回タイムゾーンと言語設定を直しています。
(日本は時差ないし、母国語は日本語だけだがら、作成したリージョンに対応したタイムゾーンと言語に設定して欲しい)

## 時刻(タイムゾーン)を日本へ

“`bash:設定
sudo timedatectl set-timezone Asia/Tokyo
“`

* ★1が日本時間
* *1がタイムゾーン

になっていれば設定完了です。

“`bash:確認
[ec2-user@ip-10-x-x-x ~]$ sudo timedatectl
Local time: 水 2020-09-30 14:29:43 JST ★1
Universal time: 水 2020-09-30 05:29:43 UTC
RTC time: 水 2020-09-30 05:29:43
Time zone: Asia/Tokyo (JST, +0900) ★2
NTP enabled: yes
NTP synchronized: no
RTC in

元記事を表示

IAMユーザー、ポリシーまとめ

# 記事について

AWS初心者が
【AWS Black Belt Online Seminar】AWS Identity and Access Management (AWS IAM) Part1

を見て内容をまとめたものです。

# IAMの概要

AWSリソースをセキュアに操作するために、認証・認可の仕組みを提供するマネージドサービス
(AWSリソース:EC2インスタンス、S3バケット等AWSサービスを利用して生成したオブジェクト)

# AWSリソースにアクセスするしくみ

プリンシパル(ユーザー/ロール/アプリケーション)からのリクエストには、
誰が、どんなアクションを、誰に対して、どんな条件下で行うのか、についての情報が載っており、
それをアクセス許可(ポリシー)によって許可/拒否を判断する
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/695430/5b6adda3-a9f2-0726-94b

元記事を表示

TerraformからCodePipelineのソースブランチの変更を無視したい

# 背景
TerraformでCodePipelineをデプロイしてる
パイプラインのソースは適宜ブランチを修正して実行する運用
修正後にTerraformからデプロイしようとすると、ブランチ部分が変更箇所として出てきてしまう
ソースブランチの変更をTerraformで無視したい

# 確認環境
“`bash
$ terraform -version
Terraform v0.12.26
“`

# やること
下記のようなlifecycleを追加してあげればOK
stageとactionの引数(下記だと両方0)はコードによって変更が必要

“`Terraform
lifecycle {
ignore_changes = [stage[0].action[0].configuration[“BranchName”]]
}
“`

# ignore_changesの中身の指定方法
下記のコードで考える

“`Terraform
resource “aws_codepipeline” “hogehoge” {

stage {
name = “So

元記事を表示

aws設定メモ(インスタンスへのElastic IP アドレスを割り当て)

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに関連付けられた自動割り当てパブリック IP アドレスが、インスタンスを停止して起動するたびに変わります。このような場合でも変わらない静的なパブリック IP アドレスを、EC2 インスタンスに割り当てるにはどうすればよいですか?
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-associate-static-public-ip/
下記サイトのElastic IP アドレスを割り当てをクリック

更に下記サイトの割り当てをクリック
AWSのインスタンスにLaravel環境を構築する

#インスタンスを作成
・EC2で行う(詳細は省略)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208640/2d0a8947-553e-0883-a296-ee27c51edaa0.png)

・インバウンドルールでHTTPポートを開放しておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208640/2f27b595-c318-9ea3-495b-6ff5d0e566bd.png)

#必要なパッケージをインストール
## Docker
“`bash
$ sudo yum update -y
$ sudo yum install docker
$ sudo service docker start
$ sudo usermod -a -G docker ec2-user
“`
## Docker-compose
“`bash
$ sudo curl -L https://gi

元記事を表示

【AWS不正利用】1日で20万円以上の請求が届いてから免除されるまで

## 結果
結果からご報告すると

**AWSスタッフのご厚意で、不正利用された分の料金は免除になりました!!**

本当にAWSさんには感謝しているとともに二度とこういったことがないようにセキュリティを見直します…

ということでこれを見ている中にも心当たりがある方がいるかもしれないので、順を追って起こったことをお話致します。

## おかしなメールにて発覚

事の発覚は免除される約一週間前

**Your AWS account has been compromissed!**

という見慣れない件名のメールが届いたことから始まりました。

もともとcloudwatchを使用し使用料が予算に近づくとアラートメールが送信されるように設定していたためメールはよくチェックしていたのですが、こんな文面でのメールは初めてでした…

ん!?

不正利用!?やばいやばい!

と思いすぐさまAWSの請求額をチェック。

すると…

特に金額の増加は無しでした。

これが罠とも知らずに

一応念のためAWSルートユーザーを削除しシークレットキーを新しく発行しました。

## 【AWS Bu

元記事を表示

10秒でwordpress環境を作れる!Amazon Lightsailを使ってみた

## Amazon Lightsailとは
AWSが提供するVPSです。
タイトルでも触れているWordPress以外にもLAMP,Node.js,GitLab,Redmine等
事前に設定されたアプリケーションまたは開発スタックをクリックして起動できます。

### メリット
– 早く簡単にできる
LightsailはおそらくAWSでwordpress環境を立ち上げるのに一番簡単なサービスです。

– 料金の見通しが立てやすい
[料金体系](https://aws.amazon.com/jp/lightsail/pricing/)は月額固定で非常にシンプルです。
データ転送枠を超えた場合はさらに課金されますが、超過分に関してもEC2等とほぼ同等の料金となっています。

– ドキュメントが易しい
Lightsailのドキュメントは[こちら](https://lightsail.aws.amazon.com/ls/docs/ja_jp/all)に
ありますが、他のAWSのサービスよりも初心者向けでわかりやすい印象を受けます。

### デメリット
– スケールしづらい
例えば、EC2の

元記事を表示

2回目でなんとか受かったAWS SAA-C02の思い出

## SAA-C02とは
[AWS 認定 ソリューションアーキテクト – アソシエイト](https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/)のことであります。
15,000 円(税別)というなかなかお値段する試験を2回目でなんとか合格できたので、まとめておこうと思います。

## 元々のAWS力と学習期間
* もともと触ったことあったサービス
* IAM : ロールとかポリシーとかどんなもんか知ってたぐらい
* EC2 : インスタンス立てて, sshぐらい
* RDS : Lambdaとつないで、RDSプロキシとか触ってた
* Lambda : [音声ファイル文字起こし](https://qiita.com/haruhiko28/items/99d3469515f567e7ef19)とかしてた
* S3 : 普通にデータ保存しとく用で使ってた
* SNS : なんかSMS飛ばして遊んだりしてた
* VPC : インタ

元記事を表示

OTHERカテゴリの最新記事