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

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

DBのパフォーマンスチューニングについて

#はじめに
AWSにはNoSQLも含めて、様々なDBサービスが展開されています。
その中でも運用していく段階で、トラフィックの増大などによって上手くDBが機能しない場合があります。(DBへの受信リクエストの急増により、WEBサイトが表示されないなど)
そのような場合にスループットやIOPSを向上させることにより以上のような問題を解決できますが、具体的にどのような対処によりパフォーマンスが向上するのか、少しまとめてみたいと思います。

#そもそも
そもそもの話として、スループットならびにIOPSの詳細についてから入りたいと思います。
###スループット
スループットとは、「単位時間あたりの処理量」になります。
単位時間というところがポイントで、「○○あたり」という限定された範囲内の話です。
具体的には、一定時間内でどれだけデータ量を転送できたかを表し、単位としては「bps」、「kbps」などで、よくネットワーク機器などの性能表記に書かれていることが多いです。
###IOPS(Input/Output per second)
IOPSは「1秒あたりに処理できるI/O(読込・書込)アクセス数

元記事を表示

API GatewayをS3のプロキシとして作成してみる。

## はじめに
先日の記事で `Lambda` と `API Gateway` を利用したREST API経由のS3内のファイルダウンロードは試してみたが、`API Gateway` のみでも同じ事はできそうと聞いたので、そちらの方も今回試してみた。
 ※先日の記事は[**こちら**](https://qiita.com/smiler5617/items/660f549137fc6851b391)

## 作成の流れ
基本的には以下の公式サイトをベースに作成しているが、いくつか分かりづらかったところは勝手に手順をアレンジしている。
また、公式サイトではバケット内の一覧情報の取得などの方法も含まれているが、今回の記事では**バケット内の指定オブジェクトをダウンロードする** ところのみに絞った内容にしている。

https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html

① IAMロールの作成
② API Gatewayの作成

元記事を表示

冗長構成を構築する

__<記事の目的>__
EC2インスタンスを2台構築し、冗長構成を構築する。

__<イメージ図>__
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2052920/f36131e6-7bca-48a7-cf50-893b1e4145e7.png)

__<構成内容>__
各Public subnetのEC2②はAutoScalingでCPU使用率が70%以上、30%以下でインスタンスが1台増減するように設定。
ELBで冗長を構成し、どちらかのPublic subnetがダウンしてもサービスが継続出来るようにしている。
※サービスはテストとしてwordpressを導入。

__<構築中に発生した問題>__
1.wordpressインストール中にエラーが発生。
wget http://ja.wordpress.org/latest-ja.tar.gz ~/
tar zxvf ~/latest-ja.tar.gz
上記、コマンド実行中にエラー発生。
rootでコマンドを実行したのが原因。

元記事を表示

【AWS】自分のインフラ構成図のそれぞれの役割を1つ1つ調べていく

#はじめに

自分でインフラ構成図を作成しましたが、
それぞれの箇所がどんな役割を持っているのか
わからなかったので記事にしてみることにしました。

#目的

* インフラ構成図の構成を知ること

![スクリーンショット 2021-09-25 7.38.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1681213/4731e200-fcdb-e995-5f63-2954b9a3f761.png)

#インフラ構成図概要

* ロードバランサーとAWS Certificate Managerでhttps化
* GitHubアクションによる自動デプロイ
* データベース:MySQL
* アベイラビリティゾーン2つ
* サブネット3つ

###1.Internet Gateway

* VPCと外部のインターネットをつなぐための接合点。
* VPC内のシステムがグローバルIPを使えるようになります。(外部のインターネットとやりとり可能になる)

###2.ルーティング

* AWS上の仮想

元記事を表示

3分でわかるAWSの導入方法

# 対象
– AWSとは何か説明できる人
– [3分でわかるAWS](https://qiita.com/meshi0323/items/8f6d810fa7e3d63ad1c2)
– 具体的にどうやって導入するのかを知りたい人

# この記事を読むと
AWSの導入方法が理解できる

# 解説
## 移行戦略

AWSでは移行戦略を6つに分類している

– Rehost
– オンプレミスと同じ構成をAWSで再構築する
– Replatform
– AWSサービスを利用して一部最適化する
– DBをAmazon RDBにするなど
– Refactor
– アーキテクチャから変えて、再構築する
– Lambdaを使ってサーバレスにするなど
– Retire
– 不要なアプリケーションなどを削除する
– Retain
– 一部をオンプレミスで保持する
– Reqpurchase
– SaaSに移行する

## AWSベストプラクティスのポリシー

– 単一障害をなくす
– 複数インスタンス

元記事を表示

Amazon SNS 暗号化の有効化の注意点

#暗号化の有効化

以下の設定のこと。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224973/ed65ca8c-e8a2-0879-2957-a0a3cb27ab18.png)

#発生した事象その1

上記の暗号化を有効にしたまま、`CloudWatch `→`SNS` を実施したが通知されなかった。

#対処方法

以下の `SNS トピックの暗号化が原因で、トリガーアクションが失敗している場合:` にある通り、 `alias/aws/sns` を
使用するのではなく、 `カスタマーマネージドキー` を使用すべきだった。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/cloudwatch-receive-sns-for-alarm-trigger/

その際、以下のキーポリシーを設定する。

“`shell-session
{
“Sid”: “Allow_CloudWatch_for_

元記事を表示

[検証]性能観点でパラメータ情報はAWSサービスのどこに保存するのが良い?

こんにちは

某SIerでソリューションアーキテクトをしております、たくまです。

Lambdaなどの処理で実行するパラメータ等の情報はどこに格納していますか?
SSMパラメータストア?S3?DynamoDB?

色々なサービスがあると思いますが、それぞれの性能観点。主にレイテンシーを考えた時に各サービスに違いはあるのか?という事が気になり検証してみました。

比較したサービスは、以下サービスです。

– AWS Systems Manager Parameter Store (以降SSMパラメータストア)
– AWS Systems Manager Parameter Store KMSを有効にした場合
– AWS Secrets Manager
– Amazon S3(以降S3)
– DynamoDB

それぞれのサービスでの性能に関わるマニュアルは以下辺りです。

####AWS Systems Manager Parameter Store
特に上限についての記載は見当たりませんでしたが、スループットの引き上げが可能な様です。
[Parameter Store のスループットを

元記事を表示

TerraformでAWS SNSのファンアウトイベントを作ってみる

# はじめに
AWS SNSは複数の宛先に配信をするような仕組みを簡単に作れるマネージドサービスだ。
その中でも、ファンアウトはよく使われるデザインパターンの例なので、使い方を覚えておいて損はない。
※「ファンアウト」というSNSの設定があるわけではない。

前提知識として以下がある。

– Terraformをある程度書いたことがある
– SNSに関して基本的な用語(トピック、サブスクライブ、パブリッシュ程度で良い)を理解している
– SQSのイベントソースマッピングを触ったことがある([参考記事はこちら](https://qiita.com/neruneruo/items/367de78995536890d648))

# 構成図
今回は以下の構成図とする。
ファンアウトイベントの通知先はSQSにして、SQSからイベントトリガでLambdaを起動してみてどのようなイベント内容になるかまで確認してみよう。
また、今回はイベント通知の成否をCloudWatch Logsに出力して確認できるようにもしてみる。

![構成図2.drawio.png](https://qiita-image

元記事を表示

ハンズオン2_冗長性のあるブログサービスを構築する(冗長構成)

この記事を書いている私について

インフラ系PMO歴半年でAWSクラウドプラクティショナーを取ったばかりの私が
AWS CloudTechという動画学習サービスに参加し、AWSエンジニアを目指すための備忘録です:fire:
AWSを使った運用から開発まで極めるため日々精進:fire:

この記事を書こうと思った経緯

前回の記事[AWSを使ってシングル構成のブログサービスを構築しました](https://qiita.com/zetzetn/items/197c2ddd2839d499faf7 “AWSを使ってシングル構成のブログサービスを構築しました”)の続きです。

本記事の目標

前回の構成だと、EC2に障害が発生した場合にサービス全体が停止してしまうリスクがあります。
その為、ブログサービスに冗長化を持たせるためAZ 1cにEC2とRDSを新たに実装します。
クライアントはどちらのEC2からでも最新のブログ投稿記事を確認することが出来るようになります。

今回の構成図

![ブログサービス.png](https://qiita-image-store.s3.ap

元記事を表示

S3へのレプリケーションをトリガーにCloud Frontのキャッシュ削除を実行

## 以下の記事を参照して頂ければと思います

https://note.com/shift_tech/n/n4834b01fe4dc

**※Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です**

## 補足
ソースコード全体は以下です。

https://github.com/yuta-katayama-23/cloudfront-create-invalidation

元記事を表示

terraformにおけるAWS Providerの認証あれこれ

terraformでAWS Providerを使用されている方は多いのではないでしょうか?

こちらの記事では、AWS Providerを使用する際に、認証情報の設定方法の選択肢について概要をまとめています。
認証情報の取り扱いは一歩間違えると、重大なインシデントに繋がりかねないため、重要な設計観点となるかと思います。
本記事がみなさんの安全なterraform×AWSの利用に貢献できれば幸いです。

基本的には[公式ドキュメント](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)の情報をかいつまんで説明しつつ、また追記もしつつ、書いたものになります。
説明に誤っている部分などあれば編集リクエストなどいただけると嬉しいです。

# 設定方法
## 1. 認証情報のハードコーディング
AWS providerのブロックに直接記載する方法です。
下記の要領で設定を行います。

“`terraform
provider “aws” {
region = “us-west-2”
access_

元記事を表示

AWS認定試験のバウチャーが紙屑になった話

# あらすじ

シアトルからのプレゼントで AWS認定試験 のバウチャーをもらいました。
バウチャーとはAWS認定試験を無料で受験できるチケットのようなものです。
有効期限前日、これが紙屑になった話。

# バウチャー利用はお早めに

バウチャーには有効期限があります。
自分は有効期限内に試験の申し込みをすれば良いと思っていました。
ところが違った。

# バウチャーの有効期限は試験最終日

だったのです。
来週の試験を申し込もうとすると…

“`
バウチャーの有効期限を過ぎています
“`

と出て申し込めません。
有効期限は明日ですから仕方ない、明日の申し込みを試みます。
しかしこれまた出来ませんでした。。

# AWS認定は24時間以上前に申し込み要

だったのです。
AWS認定サイトでの申込時に `事前承認済み試験` というメニューから試験を選択しますね。
事前承認とは事前承認が必要な試験という意味だったのでしょうか、夕方の段階で翌日の試験は申し込めません。
かくして33000円相当のAWS認定試験バウチャーは紙屑になったのでした。

# まとめ

– AWS認定は試

元記事を表示

AWS 認定データベース –専門知識(DBS-C01)取得するまでにやったこと

![20210923_screenshot_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/5f1028e6-1a07-9d4f-5472-647a2714c6e5.png)

## はじめに

DX 技術本部の yu-yama です。

AWS 認定データベース –専門知識(DBS-C01)を取得したので取得までの流れを記します。

https://aws.amazon.com/jp/certification/certified-database-specialty/?ch=sec&sec=rmg&d=1

## 受験前の AWS 経験

AWS 経験は 4, 5 年で、コアサービスは開発側/運用側一通り触っており、以下の認定を取得しています。

1. SAA (2020 年 6 月)
– [AWS 認定ソリューションアーキテクトアソシエイト\(SAA\-C02\)取得するまでにやったこと](https://qiita.com/yu-yama-sra-airline-erp/i

元記事を表示

AWS Direct Connect 障害対策を考える

# 0. はじめに
2021年9月2日、AWS Direct Connect (以下DX) に障害が発生しました。
概要は東京リージョンでパケットロスが多く発生するというものでした。
完全に接続が切断されるのではなくパケットロスというのが厄介ですね。
どうすれば対策できたのでしょうか。

# 1. DXの基本

– 必ず2本以上の回線を接続する
– 複数のDirect Connect ロケーションへ
– 異キャリア異ルートで
– インターネットVPNへのバックアップは要注意

## 1.1. 必ず2本以上の回線を接続する

AWS自体がたとえ開発ワークロードであろうと2つ以上の接続を推奨しています。
これはDXがそもそも障害以前に拒否不可能な計画停止が定期的に行われますから、1本では確実にダウンタイムが発生するからです。
また、2つ以上の接続が無いとSLAも適用外となります。(後述)
AWS推奨事項は以下でおさらいを。

https://aws.amazon.com/jp/directconnect/resiliency-recommendation/

## 1.2. 複数のDir

元記事を表示

9/13の週間AWSアップデートまとめ

### 9/13週のAWSアップデート
[週間AWS](https://aws.amazon.com/jp/blogs/news/tag/%E9%80%B1%E5%88%8Aaws/)というAWS公式が該当週に行われたアップデート内容をまとめているブログがあります。
弊社では毎週のアップデート内容を担当者が調査してチームのメンバに報告するという取り組みがあるのですが、予習と復習も兼ねて今週から自分なりにまとめておこうと思います。
**個人の見解や間違った内容が含まれる可能性があるのでご注意ください。あくまで自分のメモ的なまとめです。**

#### 2021年9月13日週の主要なアップデート
– [Contact Lens for Amazon Connectが日本語をはじめとする8言語への対応を強化](https://aws.amazon.com/jp/about-aws/whats-new/2021/09/contact-lens-amazon-connect-adds-languages/)

Contact Lens for Amazon Connectで通話後とリアルタイムに

元記事を表示

AWS LambdaとGlue、どっちを選ぶ?

## はじめに

こんにちは、情報戦略テクノロジーの小林と申します。
今回は初めて記事を書くということで、私が最も実務で触れているバッチ処理におけるlambdaとglueについてまとめることにしました。
ちょっとだけAWSを触ったことがある方に向けて、このふたつの違いを説明し、「じゃあどっちを使えばいいの?」に答えたいと思います。
前提条件として、どちらも時間起動でpythonコードを動かしているものとしています。

根本的にlambdaとは、glueとはなにかを知りたい方は以下のリンクをご参照ください。
https://aws.amazon.com/jp/lambda/
https://aws.amazon.com/jp/glue/

というだけだと寂しいので、キャラクターに見立てて一言書いていきます。
せっかくなので、この子たちはこの後も説明に登場させようと思います。
ちなみにこれらはラノベツクールMVというソフトと、サンプルでもともと入っているデータを使用して作っています。
興味がある方は検索してみてください。

Lambdaちゃん
![スクリーンショット (29).png](h

元記事を表示

EC2インスタンスの自動割当パブリックIP(Auto-assign Public IP)について

## EC2インスタンスを新規作成時に設定するパラメータ 自動割当パブリックIP(Auto-assign Public IP)について。

2021年現在、AWSマネージメントコンソール上だとEC2インスタンス起動時(作成時)に下記のように設定できる箇所となっています。
※`aws-cli`では`run-instances`コマンド`–network-interfaces`の`AssociatePublicIpAddress`で指定。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/0953f15d-e061-187f-de85-cc538563435c.png)

こちらの設定はEC2インスタンス起動時にPublicIPアドレスを自動的に割り当てるかどうかを決定するパラメータになりますが。

この設定については今現在はあとから参照したり変更したりできない項目になるようです。
(AWSマネージメントコンソール上には表示されないし、AWS-CLIでも項目はなし)

実際に

元記事を表示

MySQLでパスワードなしでログイン

テストしたいだけなのに、MySQLでパスワードを求められたりして大変だったので、パスワードなしでログインできるようにするためのメモ。

環境
Amazon Web Service Lightsail
AmazonLinux2

インストールされていることを確認。
“`
mysql –version
“`

Macなどで、MySQLをインストールした場合は、よく`mysql.server start`コマンドで起動するようですが、私の環境ではmysqldをインストールしたので、systemdで起動します。

“`bash
$ sudo systemctl start mysqld.service
“`

起動確認

“`bash
$ sudo systemctl status mysqld.service

● mysqld.service – MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active:

元記事を表示

Terraform Cloud の Variables 設定 (認証情報)

## [AWS](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#environment-variables)

– `AWS_ACCESS_KEY_ID`
– `AWS_SECRET_ACCESS_KEY`

![AWS](https://github.com/s-myk/terraform-cloud-variables/raw/main/images/TerraformCloud_AwsVariables.png)

## [Azure](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/service_principal_client_secret#configuring-the-service-principal-in-terraform)

– `ARM_TENANT_ID`
– `ARM_SUBSCRIPTION_ID`
– `ARM_CLIENT_ID`
– `ARM_CLIENT_S

元記事を表示

Auto Scalingに触れてWebサーバのサステナビリティを考えてみた

#0.はじめに
##0.1.筆者について
元々ITエンジニアとしてキャリアを積んできましたが、ここ数年は構築やプログラミングをせず、現在はとあるBtoBtoCサイトのディレクションをしています。具体的には、ビジネスサイドと討議を重ね、要件をまとめ、何よりもビジネスをグロースするための開発施策を最優先に推進している立場です。

しかし、エンハンスを重ねるごとに、アーキテクチャが徐々に歪んでいくのを目の当たりにしており、それが僕としてはジレンマに感じられてしまいます。施策と並行してリファクタリングを進めたいのですが、そのような作業はビジネス視点で重要視されないためなかなか工数が取れません。

そんなある日、社内のSREから「AWSを広めていきたい」という話を持ちかけられました。もちろん興味はありましたが、最初は上述の経緯もあって、「本当に実現できるのかな」と不安でした。しかし、会話を重ねるごとに、「これはBiz側にも刺さるかも!」と直感したのです。

##0.2.このテーマに決めた理由
現在では担当プロダクトの大部分がAWSへマイグレーションを終え、改めてクラウドサービス(以下、当記事では

元記事を表示

OTHERカテゴリの最新記事