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

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

Step Functionsを使ってStorage Transfer Serviceの転送ジョブを管理する

# 概要
https://qiita.com/okadarhi/items/5ff734c6472b83d51597 の続き。
AWS側で転送元のデータを作成するが、作成処理が完全に完了してから転送ジョブを実行して欲しいという要望があり、スケジュール実行ではなく、AWS側から手動で転送ジョブを実行する方法を検討した。
転送ジョブを実行するAPIがあるのだが、それは実行しかしてくれず、転送ジョブの成否は別のAPIで確認する必要があった。
実行するAPI: https://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferJobs/run
確認するAPI: https://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferOperations/get
なので、転送ジョブの実行と確認を管理するジョブを作成しようと思い、Step Functionsを採用することにした。
その時行った検証作業を備忘録としてまとめる。

# 手順
## L

元記事を表示

Workload Identity + フェデレーションIDを使用して、AWS環境からStorage Transfer Serviceの転送ジョブを作成する

# 概要
AWS環境に構築したシステムのデータを、Google Cloud環境にあるデータレイク(GCS)に格納して欲しいという依頼があり、Storage Transfer Serviceを使って、S3バケットからGCSバケットにデータ転送することにした。
また、なるべく永続的なキー情報を使用せずに対応して欲しいとの要望があり、

– Storage Transfer Serviceの環境構築するために、Workload Identityを使用すること
– Storage Transfer ServiceがS3バケットのアクセス設定でフェデレーションIDを使用すること

を提案しようと思ったが、まずはちゃんと実装できることを確認するために検証作業を行った。
その時に実施した作業内容を備忘録としてまとめる。

# 手順
## Workload Identityの設定
Workload Identityを設定して、JSONの認証情報ファイルを取得する。
手順はNRIネットコムの記事が綺麗に纏まっているので割愛。
https://tech.nri-net.com/entry/2021/07

元記事を表示

【ハンズオン】Flutter-for-webをS3でホストしてCloudFrontで配信する +aでCICDも!

## 前置き

### 想定読者
flutter-for-webをAWSのs3でホストしてCloudFrontを使用して配信したい方。
**+aでCICDも行って開発スピードを上げたい方**

### 目的
私が今回初めて参画したプロジェクトでフロントエンドをFlutter-for-webで実装をしておりその時の
– AWSを用いたSPAでのホスト
– codeシリーズ用いたCICD
– buildspec.ymlの書き方

上記で躓いたので共有したいと思いこの記事を書きました

## 準備

### ハンズオンで作成する手順

1. S3の作成
1. CloudFrontの作成
1. FlutterプロジェクトをローカルでビルドしてS3にアップロードする
**——– ここまででS3 + CloudFrontでの配信は完了 ——–**
1. IAMポリシーの作成
1. IAMロールの作成
1. GitHubと接続
1. CodePipelineの作成
1. 該当のリポジトリにbuildspec.ymlファイルを追加
1. 一旦FlutterコードをCloud

元記事を表示

Ruby on RailsアプリでAWS SESを使ってメールを送信する方法(設定から実装まで)

前はずっとSendGrid経由でメール送信機能を使っていましたが、せっかくAWSでアプリケーションをデプロイするのでAWSのサービスを使いたかったです。その為メール送信機能をSendGridからAWS SESに移動しました。

では、簡単に言うと Amazon Simple Email Service (SES) は、デベロッパーが任意のアプリケーションでメールを送信できるようにする、費用対効果の高い、柔軟でスケーラブルなメールサービスです。

# SES設定

## sandboxから移動

新規AWSアカウントではSESの制御があるます、確認済みのアドレスしか送信できなくて、1日最大200メールや1秒にあたり1メールなどの制限があります。
なので本番で使用できるにはリクエストをしなければなりません。

リクエスト方法はまずこのリンクにアクセス:http://aws.amazon.com/ses/fullaccessrequest

自分の場合は画像のように入力したら半日後で承認されました。

![スクリーンショット 0003-10-30 11.54.00.png](https://

元記事を表示

LocalStack を用いたAWS SQS動作確認方法メモ

* LocalStack上で動くAWS SQSをAWS CLIで操作して動作確認する。

## LocalStack準備

* `docker-compose.yml`

“`yaml
version: “3.8”
networks:
container-link:
name: docker.internal
services:
localstack:
container_name: “${LOCALSTACK_DOCKER_NAME-localstack_main}”
image: localstack/localstack
ports:
– “127.0.0.1:53:53” # only required for Pro
– “127.0.0.1:53:53/udp” # only required for Pro
– “127.0.0.1:443:443” # only r

元記事を表示

RedashをAWSで構築

# 便利なダッシュボードが使えるRedash
Re:dashはOSSで提供されているダッシュボードツール。
ユーザーは検索条件を入力するだけで、裏で動くSQLの出力結果をテーブルにしたりグラフ化し、CSVダウンロードなどもできる。非エンジニア向けの情報共有ツールとして役立つ。

## セットアップ
EC2にRedashをセットアップする。
Redashの仕様上、DBからselectしたレコードをサーバ内でキャッシュするためボリュームはケチらない方が良い。うっかりさんが数十GBのレコードを一度のselectすると悲劇が起きる。

“`
# セットアップ
$ sudo apt-get install git
$ git clone https://github.com/getredash/setup.git
$ cd setup
$ bash setup.sh
“`
これでインスタンスにredashがセットアップされた。

## 各種設定ファイルの追加と編集
続いてSSL証明書の設置と各種設定ファイルの編集。

“`
# SSL証明書ディレクトリ
$ mkdir -p /home/u

元記事を表示

NestJSでAWSCognitoからJWT指定でユーザ情報取得を行うと「ConfigError: Missing region in config」

# 現象
NestJSでAWSCognitoからJWT指定でユーザ情報取得を行うと、「ConfigError: Missing region in config」が発生する。

“`typescript:cognito.service.ts
@Injectable()
export class CognitoService {
private client: CognitoIdentityServiceProvider;
protected user: GetUserResponse;
constructor() {
this.client = new CognitoIdentityServiceProvider();
}
public async getUserByToken(token: string): Promise {
this.user = await this.client
.getUser({
AccessToken: token,
})
.pro

元記事を表示

2021/10/27開催 AWS Innovate 「モダナイゼーション」トラックの内容&感想

#概要
2021/10/27に行われたAWS Innovate- Modern Applications Editionのモダナイゼーションに関するセッションを視聴した際の、個人的に印象に残ったことを書きます。

###ステップバイステップで始めるモダナイゼーション

モダナイズはお客さんのビジネスを達成する手段
→「モダンアプリケーション作りたい!だってかっこいいから!」と思っていたが、お客さんが実験を短いサイクルで繰り返してイノベーションを起こすことで他社との差別化を図り、ビジネスの成功を納める手段だということをすっかり失念していた。Amazonは口酸っぱく言ってるけど、顧客目線で考えないと本当に道を誤りそう。でも、技術のことを勉強しつつお客さんのことも勉強するのは大変そうだ。

モダナイズは移行戦略の一部
→古いアーキテクチャは悪!絶対モダナイズすべき!というイメージを勝手に持っていたがあくまで移行戦略の一つでありリホストなども選択肢に入るという話を聞き、結局はお客さんや環境との相談になるのかぁ‥と思った。結局、顧客目線で提案することが大事?

モダナイズの手段としてコンテナを採

元記事を表示

【AWS】HTTPSでS3上のWebページにアクセス

#はじめに
独自ドメインでS3上のWebページにHTTPSでアクセスできるように構成していきます。
独自ドメインでのアクセスとするためにCloudFront経由での構成とします。
また、CloudFront – S3バケット間もHTTPS通信とするためにS3バケットではウェブサイトエンドポイントを使用せずにREST API エンドポイントを使用します。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/cloudfront-serve-static-website/

また、S3のURLに直接アクセスしてもWebページが表示されないようにするためにオリジンアクセスアイデンティティ(OAI)を使用してアクセス制御をしていきます。

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html

証明書にはACM(AWS Certificate Ma

元記事を表示

AWS 認定クラウドプラクティショナーを自宅でオンライン受験した話し

# 初めに
この記事は過日AWS認定クラウドプラクティショナー(CLF-C01)試験をオンラインで受験したので、その準備と感想を記載したものです。

###オンライン受験した理由
近隣のテストセンター(一か所のみ)を検索するが、ほとんど開催していなくて、なかなか自分の都合に合わせられないことから、自宅受験一択な感じでした。
自宅受験した方の記事を参考にしたところ、何もない部屋があれば可能(風呂場で受験した方もいましたね)と書いてありましたので、自分の部屋を整理整頓するのも兼ねてトライすることに。

###受験に向けて学習したこと
9月にクラテクに入会、永久会員となったことで資格取得を決意。
ただし、SAAレベルには程遠いのでCLFから入るため、ハンズオンのEC2講座までを。
他には、Udamyで以下を購入
・この問題だけで合格可能!AWS 認定クラウドプラクティショナー 模擬試験問題集(7回分455問)
・これだけでOK! AWS認定クラウドプラクティショナー試験突破講座(豊富な試験問題290問付き)
やり方としては、模擬試験を繰り返しインプットするスタイルでした。

###受験申込

元記事を表示

AWS yumでハマった Could not retrieve mirrorlist

AWSでyumでapacheを入れようとしてハマったメモです。
おそらく物凄いレベルの低い記事。(インフラ周り苦手。。)

#1.環境

InternetGateway → VPC → publicサブネット → EC2(linux)

ネットワークACLルール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2095609/0e5111f5-af07-019b-1c30-fbe8bab1634d.png)

#2.エラー内容

ルートになってからyumでinstall

“`sh
[ec2-user@ip- ~]$ sudo -i
[root@ip- ~]# whoami
root
[root@ip- ~]# yum install httpd
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd

Could not retrieve mirrorlist https://amazonlin

元記事を表示

[aws,ecs,terraform]ecsでtaskが立ち上がらない原因例

## 何があった?
terraformを使って画面からではなく、jsonファイルを準備してコマンドからでecsを立ち上げようとしたら下記画像のようになって、タスクが立ち上がりませんでした。また、コンソール上にもエラーはでませんでした。

さらにaws画面上のエラー文が`Task failed to start`のみという調査ハードモードでした。(通常は2枚目の画像の詳細の下にエラー文が出現するのですが今回は出ませんでした。ちなみに原因はエラーではない挙動のためであり、その理由は結論を読んでもらうとわかります。)

[ecsのタスク詳細画面]
![スクリーンショット 2021-10-30 6.20.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555157/1373bcd3-d61d-33d1-bfc6-be959a945185.png)
![スクリーンショット 2021-10-30 6.20.59.png](https://qiita-image-store.s3.ap-northeast-1.a

元記事を表示

Automation360のIQbotをAWSへ同居

AWS上のWindowsServer2016DatacenterEditionにAutomation360.21とIQBot.21を同居させて構築した。
IQBotを同居させる手順はいくつか公開されているが、AWS上はAzureに比べて癖が強くて1年掛かって構築出来たのでここにポイントと手順を記録に残そうと思う。

同居のポイント
・ポイントとしてURLを間違うとヘルスチェックはすべて正常なのに外部からのアクセスが出来なくなる。
・Windowsマシン名にアンダースコアを入れるとIQBotのヘルスチェックが謎のInternalServerエラーになるなどの弊害が出る。

事前準備
1、ポート3000を開ける
2、SQLServerをSQL・Windows認証モードでログインできるようにする。
3、SQL認証モードの管理ユーザのsaをログイン可能にし、パスワードも設定する。
4、SQLブラウザーサービスを起動する。
5、SQLServerインスタンスを再起動する。
6、Microsoft ManagementStudio18を使って、SQL・Windows認証モードで設定したsaアカウ

元記事を表示

FreeBSDで AWS Session Manager Plugin を導入してみる

# FreeBSDでAWSセッションマネージャープラグインを導入してみる

## はじめに

[AWS Systems Manager Session Manager](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager.html)とは、

– 「AWSシステムマネージャー」サービスの一つ、「セッションマネージャー」という機能である。
– これはWeb・CLi等によりEC2等のインスタンスにアクセスまたはログインするための機能である。
– インスタンスへのアクセスに当たり、(グローバルIPでの)受信ポートの維持や、踏み台サーバーの用意、SSH鍵の管理無しにサーバーにアクセスすることが可能である。
– バックエンドで稼動するインスタンスが多くグローバルに公開して無い場合や、孤立した、いわゆるプライベートネットワーク内に設置されたサーバーにアクセスする時に嬉しいあるいは必要となる機能である。
– その代わり、対となる [Session Manager Agent](https:

元記事を表示

S3に適切な権限を付与しよう

今回はAWS S3(Amazon Simple Storage Service)の適切な権限を付与して行きたいと思います。
静的なWebサイトの公開などの際に有効かと思います。

# S3のアクセス制限について

S3は必要に応じて特定のアカウント、IAMユーザー、AWSリソースにアクセス権限を設定することができます

##  アクセスコントロールリスト(ACL)
・他の特定のAWSアカウントに対してバケット・オブジェクトへのアクセス権限を付与する
・誰にでもバケット・オブジェクトへのアクセス権限を付与できる

##  バケットポリシー
・ACLより権限をもっと細かく設定できる(ex. 特定のIPアドレスからのアクセスを許可)
・主にALCよりこちらを使用していく

##  IAMポリシー
・IAMユーザーに対してS3へのアクセス権限を設定できる

##  パブリックブロックアクセス
・ACLとバケットポリシーについて、新規の公開を防ぐ設定と、既存の公開を修正する設定

以下のサイトがわかりやすいです↓↓↓
https://dev.classmethod.jp/articles/s3

元記事を表示

Amazon CodeGuruを用いて悪しきコードを撲滅したい

## ターゲット
– アプリケーション開発でコードを書いたことがあるひと
– コードレビューしてもらう相手(十分な技術・知識を備えた相手)がいないor 手が空いていない
– コードレビューをしたくても時間の確保が難しい

## はじめに
昨今、従来からあるウォータフォール開発に始まり、アジャイル開発やプロトタイピング開発などソフトウェア開発手法が体系化されたことで、開発スピードとプロダクトの質ともに向上する動きが活発となっています。
しかし、開発スピードとプロダクトの質を担保しようとする際に必ずネックとなるものがあります。

それが**コードレビュー**です。

コードを書いたことがある人は、個人の癖や経験が浅いときに誰しも悪しき習慣がコードに現れてしまう経験があると思います。

そこで、最良なコードレビューと悪しきコード撲滅する方法を考えたいと思います。

## 開発プロセスの体系化とコードレビューの関係
一般的なソフトウェア開発では各工程の粒度を如何にせよ、以下のプロセスを循環させます。
**コーディング → ビルド + テスト → デプロイ → 計測 → 改善**
開発するシス

元記事を表示

【AWS Lambda】 Lambdaで初めて環境変数を使ってみたのでその紹介とSAMでの使い方

#1. はじめに
 私はlambdaを使用する際、環境毎にlambdaを作成しテスト環境ではこの関数、本番環境ではこの関数を使う、ってことをよくやっていました。そうなってくると、本番環境ではこのDBを参照、テスト環境ではこのDBを参照といったことをやりたくなってきます。私は aws-sam-cli を用いてlambdaの管理を行っているのですが、環境毎にコードの中身を書き換えることがうまくできていませんでした。
 しかし! 今回紹介する環境変数というlmandaの機能を使用してみたところ抱えていた問題が解決したため、せっかくなんで紹介します。

#2. lambda環境変数とは
 環境変数とは何でしょうか。[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-envvars.html)には以下のように記述されています。

>環境変数を使用すると、コードを更新せずに関数の動作を調整できます。環境変数は、関数のバージョン固有の設定に保存される文字列のペアです。Lambda ランタイムは、環境変

元記事を表示

S3導入時のcapistranoエラー(ArgumentError: Missing `secret_key_base` for ‘production’ environment, set this string with `rails credentials:edit`)

#はじめに

S3導入の際に自動デプロイでエラーとなりました。
復習も兼ねて投稿します。

#S3の導入

スクールのカリキュラム通りに記述しました。(本番環境のみS3を適用させました)

#### Gemfile記述

“`:gemfile
gem “aws-sdk-s3”, require: false
“`

ターミナル内で「bundle install」を実行

“`:ターミナル
% bundle install
“`

#### production.rbを編集

“`:config/environments/production.rb

config.active_storage.service = :local

#上記で記述している画像の保存先の設定を「:local」→「:amazon」に変更します。

[変更後↓]
config.active_storage.service = :amazon
“`

####環境変数を設定(←ここでエラー)

私の場合は環境変数を`credentials`で管理しているため、S3に必要な**`Access key ID`

元記事を表示

Amazon OpenSearch Service の Cross-cluster replication

# クロスクラスタレプリケーションしてみる

基本はこちらの[ドキュメント](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/replication.html)に全部書いてあります。こちらやってみた記事です。

## 概要説明

左側のレプリの元になるクラスタをリーダーと呼ぶ。右側のレプリケーション先をフォロワーと呼ぶ
図では、リーダードメイン”demo-repli1″のインデックス”test1_index”を、フォロワードメイン”demo-repli2″のインデックス”rep_test1_index”にレプリケーションしている

![名称未設定ファイル-ページ1.drawio (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27932/f1643b7d-3f13-7286-dc97-4ca3b3a253f9.png)

だが、実際はフォロワーからPULLする方式になる。そのため、以下の図のように示すと、この

元記事を表示

AWS EKSの初期設定手順

# はじめに
参考:https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/getting-started-console.html

## VPNを作成する

“`
aws cloudformation create-stack \
–region us-west-2 \
–stack-name my-eks-vpc-stack \
–template-url https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
“`

## Roleを作成する

cluster-role-trust-policy.jsonを作成

“`/cluster-role-trust-policy.json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,

元記事を表示

OTHERカテゴリの最新記事