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

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

Kinesis Data AnalyticsのApache Beamチュートリアルをやってみた

以下のチュートリアルをやってみた際、主に依存ライブラリのバージョンの問題で、提供されているサンプルコードがそのままではうまく動作しなかったので、正常動作させるにあたり変更した部分をメモしておきます。

https://docs.aws.amazon.com/kinesisanalytics/latest/java/examples-beam.html

## 動作環境
“`
IntelliJ IDEA 2021.2 (Community Edition)
Build #IC-212.4746.92, built on July 27, 2021
“`

“`sh
$ java -version
openjdk version “11.0.12” 2021-07-20
OpenJDK Runtime Environment Homebrew (build 11.0.12+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.12+0, mixed mode)

$ mvn -version
Apache Maven 3.6.3 (cece

元記事を表示

AWSでAIサービスを使ってみる〜第12回personalize編その②〜

##前回まで
前回まではpersonalizeのレコメンデーション機能を試すために、データの前準備とデータセットを登録するためのpythonファイルを確認しました。

前回記事です。
[AWSでAIサービスを使ってみる〜第11回Personalize編〜](https://qiita.com/AInosukey/items/1939cbac0ac5085f6463)

今回はAWSにpersonalizeで用いるロールの作成と、データの取り込みについて試して行きます。

##ロールを作成する
購入履歴のデータをPersonalizeに取り込むためにS3を利用します。Personalizeに対してS3にアクセスする許可を与えるためにロールを作成します。

以下はロールを作成するプログラムの全体です。

“`pers_create_role.py
import boto3
import json

iam = boto3.client(‘iam’)
role_json = {
“Version”: “2012-10-17”,
“Statement”: [
{

元記事を表示

terraformのstate管理用にdynamodbとs3をプロビジョニングする

## どんな記事か

terraformのtfstate管理用のリソースを作成するのと格闘している記事です。
(まだ手探りでやっているので、こちらよりも公式ドキュメントを参照したほうがいいかもしれません)

## 参考

こちらを参考にさせていただきました、ありがとうございました。

https://takelg.com/terraform-tfstate_manage/

## tfstate管理用のリソース作成

ディレクトリ構成は以下のようになっています。

“`
tfstate-management git:(feature/terraform) ✗ tree
.
├── backend.tf
├── provider.tf
└── variable.tf
“`

リソースを`backend.tf`に書きます。

“`tfstate-management/backend.tf
resource “aws_s3_bucket” “terraform-xxx-remote-state” {
bucket = var.s3_bucket_name

lifec

元記事を表示

Windows Server 2022 のTCPパフォーマンス向上について,実機計測してみた

# はじめに
2021年9月1日に WindowsServer2022 がリリースされました.
いくつか新機能がリリースされていますが,今回は「TCPパフォーマンスの向上」について,検証していきたいと思います.

# Windows2022変更点の概要
[Windows Server 2022 の新機能](https://docs.microsoft.com/ja-jp/windows-server/get-started/whats-new-in-windows-server-2022)
上記でも紹介されていますが,サーバサイドの変更点は下記3つが大きいと思います.

– HTTPS と TLS 1.3を既定で有効化
– Microsoft Edge ブラウザーの追加
– TCPとUDPのパフォーマンス向上

TCPパフォーマンスの向上には [HyStart++](https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-hystartplusplus-00)というMS製技術が採用されています.
また,UDPについても[UDP

元記事を表示

fzfを用いてAWS CLIプロファイル簡単切り替え

# 簡単に aws cli のプロファイルを変更したい

表題の件について調べたところ、該当する npm パッケージを発見。
https://github.com/johnnyopao/awsp

しかし当方の`node v14`環境で正常に動作しなかったので、fzf で関数自作しました。

## fzf

fzf とは、cli 上でのあいまい検索および結果選択が可能になる、GO 製の CLI ツールです。
peco とよく比較されます。
詳細は以下記事等参照
https://qiita.com/kamykn/items/aa9920f07487559c0c7e

### fzf のインストール

“`bash
$ git clone –depth 1 https://github.com/junegunn/fzf.git ~/.fzf
$ ~/.fzf/install
“`

## シェル設定ファイルに関数追加

`~/.aws/config`を参照して、profile 一覧を取得し、その中からプロファイルを fzf で選択する、という挙動の関数を作成します。
`.bashr

元記事を表示

使用していないIAMロールを一括削除するシェルスクリプトを作成したけど、コンソールから削除した方がいいと思った件

# スクリプト作成の背景

AWSの個人アカウントで不要なIAMロールが増えてきたので、IAMロールの整理を考えたのが切っ掛けです。
コンソールからでも一括削除はできますが、数が増えた場合でも楽に削除できるようにしたいと思い作りました。

AWS SDKの方が楽にできそうだと思いましたが、長めのシェルスクリプトを書いたことがなかったのでチャレンジしてみました。

# コンソールから削除した方がいいと思った理由

長期間使用していないけど必要なIAMロール(*)があると思いますが、その調査をするのにコンソールを使用することが多いと思うので、それならコンソールからIAMロールを一括削除した方が早いのでは?と思った次第です。

必要なIAMロールが存在しない(削除しても深刻な問題にならない)私的アカウント等であれば、スクリプトを使用して削除していいと思います。

*機会がなくて使用されていないIAMロールのことで、Configルール違反時の自動修復で利用されるロールや、EventBridgeルールのターゲットであるLambdaのロールなどが当たります。
違反時やイベント発生時にはそのロールが

元記事を表示

Terraformで作るAWSシステムパターン② 高可用性構成

#本記事の目的
Terraformを用いて、AWS上での定番システムパターンを作成し、アウトプットとして記録する。
今回は高可用性を重視するシステム構成を作成してみる。

#設計
###システム要件
・APサーバー及びDBサーバを冗長化し、ロードバランサーで通信を振り分ける。
・ロードバランサーはパブリックサブネットに配置し、APサーバー及びDBサーバはプライベートサブネットに配置する。
・ロードバランサーのアクセスログは別途保存する。

###構成図
![availability_configuration.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/559588/1ff3eaaf-583d-3327-e09b-251501345059.png)

#事前準備
###ソフトウェア要件
– [AWS CLI](https://aws.amazon.com/cli) – v2.1.26 ※1
– [Terraform](https://www.terraform.io/downloads.html)

元記事を表示

AWSエンジニアのためのAzure Fundamentals対策

#はじめに
この度、Microsoft Certified: Azure Fundamentals(AZ-900)に合格しました。

私は仕事上AWSに携わることが多くAWS認定資格も保有していますが、他のパブリッククラウドは未経験でした。
しかし世のトレンドはマルチクラウド。
シェア第2位のAzureもやっとくかぁと思い、受験に至りました。

###AWSとAzureってサービスの内容に大きな違いはないやろ? サービスの名前が違うだけやろ?

・・・と上司に言われ、自分でもそう思っていました。
ですが、いざ勉強してみると、そんなことはなかったです。
AWSでは提供されていないようなサービスもありましたし、似ているけど使い方が微妙に違うようなサービスもありました。
AWSの考え方が染み付いている私にとって、Azureの学習は異文化交流のようなものでした。
本稿では、その異文化交流の中で得た知見を残しておこうと思います。

#AWSエンジニアがAzureを勉強するメリット
Azure勉強してよかったと思うポイントを2つ紹介します。

##①クラウドエンジニアとしての成長
「AWSしか使え

元記事を表示

Cognitoをローカル環境で動かしてみる

# 結論 (Cognitoをローカルで起動するコマンド)

“`bash
docker run -d -p 5000:5000 –name cognito-idp-local motoserver/moto:latest cognito-idp
“`

# 注意事項

[moto](https://github.com/spulec/moto)というAWS Serviceを擬似環境で動かせるライブラリを使用しておりますが、全ての操作はサポートされておりませんのでお気をつけください。
(以下の「簡易的なチュートリアル」で行う操作はサポートされていることを確認済です。)

# 簡易的なチュートリアル

## 前提条件

– Dockerがインストールされていること。
– AWS CLIがインストールされていること。

## 大まかな流れ

– ローカル用のAWS CLIプロファイル設定
– Cognitoの起動
– ユーザープールの作成
– アプリクライアントの作成
– ユーザーの作成
– ユーザーの認証

## 手順

### ローカル用のAWS CLIプロファイル設定

“`

元記事を表示

Amazon EFSのパフォーマンス概要

#Amazon EFSを構築するには
Amazon EFSを構築するには以下の設定を実施する。
・ファイルシステムの作成
・接続先のマウントターゲットの作成
・パフォーマンスモードおよびスループットモードの選択

以上の中の一つであるパフォーマンスモードとスループットモードの選択について、まとめていきたいと思います。

#パフォーマンスモード
パフォーマンスモードには、汎用モードと最大I/Oモードの2種類があります。
###汎用モード
ファイルサービスのような一般的な用途を想定したモードであり、レイテンシーを優先する場合に使用するモードです。
デフォルトでは汎用モードが設定されており、推奨の設定となっている。
###最大I/Oモード
ファイル操作のレイテンシが汎用モードと比べて、若干長くなる代わりに、何十〜何千台のクライアントから同時にアクセスするような、合計スループットを優先する場合に使用するモードです。
2つのモードの具体的な違いは以下のホワイトペーパーに記載があります。
https://aws.amazon.com/jp/premiumsupport/knowledge-cent

元記事を表示

AWS Beanstalk(Docker) 事始め

# 背景

ちょっとAWS上でサービスをデプロイしたいと思う時があります。本格的にデプロイするとするとCloudFormationでインフラ作ってCodeDeployなどででアプリをデプロイするという形になると思います。将来的に本番で使うならいざしらず、開発の初期や何かのテストという場合はやりたいことの割には大掛かりになりがちです。
そんな用途の時にはAWS Beanstalkがお手軽そうに感じたので、ちょっと調べてみることにしました。

# AWS Beanstalkって?

[公式ページ:AWS Elastic Beanstalk](https://aws.amazon.com/jp/elasticbeanstalk/)から引用します。

> AWS Elastic Beanstalk は、Java、.NET、PHP、Node.js、Python、Ruby、Go および Docker を使用して開発されたウェブアプリケーションやサービスを、Apache、Nginx、Passenger、IIS など使い慣れたサーバーでデプロイおよびスケーリングするための、使いやすいサービスです。

元記事を表示

EC2 に SoftEther VPN Server をインストールして AWS VPC 内のリソースに自宅から安全にアクセスする

## はじめに

AWS VPC 内のリソースに安全にアクセスするために、VPC 内の EC2 に [SoftEther VPN Server](https://ja.softether.org/) をインストールし、VPN 経由でリソースにアクセスできるようにする。VPN プロトコルは、通信にあたり特別なクライアントソフトウェアをインストールする必要がない L2TP/IPsec を採用し、認証方式は事前共有鍵による認証とした。

ところで、VPN 通信には「フルトンネリング方式」と「スプリットトンネリング方式」がある。「フルトンネリング方式」は、すべての通信が VPN サーバを経由する方式で、「スプリットトンネリング方式」は、VPN 接続が必要な宛先への通信のみ VPN サーバを経由させ、それ以外の通信は直接通信させる方式である。EC2 では、インスタンスからインターネットへのデータ転送量に応じて費用が発生するため、可能な限りコストを抑えるべく「スプリットトンネリング方式」で設定を行うこととした。

なお、今回の目的は AWS が提供する [AWS Client VPN](https

元記事を表示

EC2(RHELv8)でAWS CLIを利用するための設定

AWSでAmazon Linux2ではなく、RedhatEnterpriseLinux(RHEL)のEC2インスタンス構築する際にAWS CLIをインストールして利用しようしたらなかなか設定できず、ハマったので備忘録がてら記事にします。きっと体系的に学んでいる方はすんなりと解決できるのでしょうが、私はトライ&エラーで学ぶ人なもので結構時間がかかりました(´・ω・`)

#やりたかったこと(今回のゴール)
EC2(RHELv8)でAWS CLIを使いたかった。(AWS CLI でS3からファイルのDLをしたかった)
とりあえず[aws –version]してバージョン情報などが表示されて、インストールおよび動作していることが確認できれば今回はOKとします。

#ハマったこと
EC2(Amazon Linux2)は最初からAWS CLIがインストールされていて、使える状態だったが、RHELv8だと初期設定のままだと使えない。勝手が違うらしい…
EC2を起動するときに選択したAMIは以下画像のやつです。
![image.png](https://qiita-image-store.s

元記事を表示

未経験から実案件やったら見事に苦労した件〜実務案件体験記〜

## はじめに
こんにちは、未経験からエンジニア転職を目指している27歳です。
エンジニア転職を目指す際、ふと「未経験とプロのエンジニアの違いってなんだ?」と思ったことはないでしょうか?私もそのうちの1人です。もちろん明らかに違うこと自体はわかっているのですが具体的に言語化ができていませんでした。

なるべく入社前後のギャップを埋めたいと感じていた当時の私は実務を体験をすることによってそのギャップを少しでも埋めることができ、入社後の成長スピードを高めることが出来るのではないかと考えていました。

そんなある日、ご縁があり実務を体験させていただく機会がありましたので、実務をする中で感じたこと、思ったこと、実際の実務内容を体験記として書き記しておきたいと思います。

同じような疑問を抱いている方の少しでも参考になれたら幸いです。

9/26日追記
実務内容詳細興味ないよって人は最後ら辺だけ読むのが良いかもしれません笑
##こんな人に読んで欲しい
・未経験からエンジニアを目指している方
・実務案件って実際どんな事やるの?と疑問に思っている方
・実務と未経験のポートフォリオとの違いってなんなの

元記事を表示

Amazon Cognito Identity Pools の認証プロバイダに Auth0 を使用するとき、Auth0 側のユーザー識別子 (sub) を IAM ポリシー内で使用する方法

## TL;DR

Auth0 のユーザー識別子(JWT の `sub` クレーム)の値には縦棒 `|` が含まれるため、IAM ポリシーの変数としてそのまま埋め込むことができない。Auth0 の Rules 機能を使用して、縦棒 `|` を別の文字に置換した新しいクレームを用意して、その値をユーザー属性にマッピングするように設定しよう。

## 背景

[Amazon Cognito Identity Pools](https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/identity-pools.html)(以下、Identity Pools)は、あらかじめ認証されている何らかのアイデンティティに対して、AWS のリソースにアクセスするための一時的なクレデンシャルを発行できるサービスである。ここで「あらかじめ認証されている」と書いた通り、Identity Pools はユーザーを認証する機能を有していないため、認証プロバイダ([Amazon Cognito User Pools](https://docs.a

元記事を表示

AWSにおける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ベストプラクティスのポリシー

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

元記事を表示

OTHERカテゴリの最新記事