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

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

CircleCIにてAssumeRoleを用いたECR、ECSのデプロイ方法

## はじめに

私は業務でAWS上にAPIサーバを作成しています。
そして、そのAPIサーバのソースコードはGuthubで管理しており、CircleCIと連携してGithubにプッシュすると自動的にAWS上のECSへデプロイされます。
昨今ではよくみる構成かもしれません。特段珍しいものでもないでしょう。

その中でセキュリティ向上のために AWS の Assume Role 機能を使うようになりました。

AssumeRole の対応方法を調べましたが、ネット上では情報が足りない(日本語の中では「Assume Role 機能を試してみました!」で止まっているような情報が多い。今回の要件を満たすような記事は私には見つけられなかった)ので、備忘録として残しておきます。

## 注意事項
この記事は以下の点に注意して参照してください。

* 記事の内容は2022年1月に作成したものです。その後に CircleCI 提供の orbs にアップデートが入り、このような回りくどいことしなくても大丈夫になっている可能性もあります。
* CircleCI 提供の orbs の処理内容に依存しています

元記事を表示

【AWS】RDS自動停止設定を行ってみた

## 【AWS】RDS自動停止設定を行ってみた

### はじめに
インフラ環境の運用を行っているマエザトです。
こちらの記事はAWSで管理している社内環境でのお話となります。

AWSサービスは起動していると課金される仕組みが多く、
EC2(サーバー)は必要な際に起動停止を行って費用を抑えておりましたが、
RDS(DB)に関しては使用していない時に停止を行っても7日後には
自動起動してしまうという仕様※となっており、困っていました。
ネット記事を参考にRDSの自動停止設定を行ってみることにしました。

※RDSの停止と自動起動について
https://aws.amazon.com/jp/about-aws/whats-new/2017/06/amazon-rds-supports-stopping-and-starting-of-database-instances/

### 環境
■操作環境
OS:Windows 10 Pro(64bit)

■使用プラットフォーム
Amazon AWS

■使用サービス
IAM
CloudWatch Events
Lambda

###

元記事を表示

未経験でもAWS認定全11資格を10ヶ月で取得できたので学習方法をまとめました

# はじめに
僕がAWS認定資格を学習している時にこんな疑問・不安がありました。

* 未経験者でも合格できるの?
* 各認定資格はどのくらい難しいの?
* 11個も試験があるけど、どの順番で勉強していけば良いの?
* 何を勉強すれば良いの?
* そもそも資格を取得する意味ってあるの?

上記不安・疑問に対して、未経験でAWS認定資格を11個取得できた僕だからこそお伝えできる内容があるかと思い、記事にまとめる事にしました。

現時点(2022年1月23日)でAWS認定資格は全11個あり、全て取得することができたので学習方法など、皆様の学習の一助にしていただけますと幸いです。

#目次

– [1. AWS認定に関して](#1-aws認定に関して)
– [2. おすすめ受験順](#2-おすすめ受験順)
– [3. 学習方法](#3-学習方法)
– [4. 試験当日に向けて](#4-試験当日に向けて)
– [5. おわりに](#5-おわりに)

## 読書対象の方

* AWS認定を学習している、しようと思ってる方
* AWS認定、全11資格取得を狙っている方
* 各資格の学習方法がわから

元記事を表示

AWSの公式動画がおすすめ

## 概要

全然知らなかったのですが、AWSって公式動画が充実してるんですね。
個人的には感動するレベルで有用だったのですが、動画の再生回数を見るとそこまで多くない印象(3000~1.5万くらい)だったので、周知のため記事にしてみました。

[AWS クラウドサービス活用資料集トップ](https://aws.amazon.com/jp/aws-jp-introduction/)
[AWS 初心者向けハンズオン](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-hands-on/)
[AWS サービス別資料(AWS Black Belt Online Seminarなど)](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/)

## AWS 初心者向けハンズオン

>AWS 初心者向けに「AWS Hands-on for Beginners」と題し、初めて AWS を利用する方や、初めて対象のサービスを触る方向けに

元記事を表示

AWS SESを使いたてでメールが届かない時に確認したいこと

# サンドボックスが原因かもしれません。

# “サンドボックス” is 何

>**サンドボックス**は、通常、システム障害やソフトウェアの脆弱性の拡散を軽減するために、実行中のプログラムを分離するためのセキュリティメカニズムです。

高度に制御された環境を提供するという意味で、サンドボックスは[仮想化](https://en.wikipedia.org/wiki/Virtualization)の具体例と見なすことができます。

https://en.wikipedia.org/wiki/Sandbox_(computer_security)

# SESにおいてはどういうことだってばよ?

SESにおけるサンドボックスは、メール送受信の不正利用や悪用などを防ぐため、新規に作成されたアカウントに一定の制限が設けらた状態で提供されるSESの利用環境です。

**制限内容(2022.1.27現在)**

– Eメールの送信先が検証済みEメールアドレス・ドメイン、メールボックスシミュレーターに限定される
– 最大で24時間あたり200メッセージ
– 最大で1秒あたり1メッセージ

元記事を表示

lambdaからECS:RunTaskを使用し、Taskを起動する

業務でLambdaの実行時間に引っかかる処理を切り分けるためにLambda->ECSTask実行を行いました。
ServerlessFlameWorkを使用したNode.js/TypeScript環境でECSのTaskを実行する手順です。
Python3&boto3を使用した記事は[こちら](https://qiita.com/ken992/items/1d4ee5e33c04744d1d1c)です。

## 環境
“`
Node v14.7.0
“typescript”: “^4.1.3”
“serverless”: “^2.23.0”,
“serverless-esbuild”: “^1.17.1”,
“`

## 結論
“`typescript:ecsTask.ts
import { ECSClient, RunTaskCommand, RunTaskCommandInput } from ‘@aws-sdk/client-ecs’;

const client = new ECSClient({
region: ‘ap-northeast-1’,
});

cons

元記事を表示

FargateでNginxコンテナをデプロイする時、「worker_rlimit_nofile」の値はタスク定義で設定したulimits値以下にしなくてはならない

タイトルのままです。

# 概要
もうタイトルで伝えたいことは書ききったのですが、せっかくなので経緯を述べておきます。
AWS FargateでNginxとLaravelコンテナをデプロイしていました。
![スクリーンショット 2022-01-27 20.43.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/434874/7af3d215-e3a2-f611-2c6f-e940c5714464.png)

以前、パフォーマンスチューニングでNginxのconfigファイルの設定について、[こちらの記事](https://qiita.com/mikene_koko/items/85fbe6a342f89bf53e89)を参考にゴニョゴニョしていたのですが、それからしばらくたった後、あることに気づきました。以下はfargateにNginxコンテナをデプロイした直後のコンテナログです。
![スクリーンショット 2022-01-26 9.15.41 2.png](https://qiita-image-st

元記事を表示

Step Functions で States.ReferencePathConflict が起きたときの対処

# 概要

Step Functions の ResultPath を指定したものの、以下エラーが発生することがある。

“`json
{
“error”: “States.ReferencePathConflict”,
“cause”: “Unable to apply ReferencePath $.someTaskResult to input \”input1\””
}
“`

ここでは `someTaskResult` という key に結果を出力しようと試みている。

# 原因

ステップの入力が Object 型ではない可能性がある。
例えば、プリミティブな String が入力された場合、当然ながら `someTaskResult` という key は設定できない。例えば Map を使う場合、イテレーションの対象として List を使わなければいけないが、List の各値がプリミティブ型だった場合、イテレータに渡る入力としてこのような事態が起こりうる。

# 対策

前段の出力を加工し、Object 型にしてしまえばよい。具体的には Parameter が使

元記事を表示

複数の AppFlow を実行するワークフローを書いた

# 概要

とある案件で AWS の AppFlow を複数件スケジュール実行したいという話があった。
運用コストを極力抑えたかったので、サーバレスの Step Functions を使ってワークフローを書いた。また、本稿では記載していないが、スケジュール実行部分に関してはセオリー通り EventBridge を用いた。

# ステートマシンの全体像

## 親

![stepfunctions_graph.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49525/9b673078-079a-278d-7c9b-c72851e0253d.png)

特に複雑なことはしておらず、実行対象のフロー (ここではバックアップ処理を行うフロー) の一覧を取得し、あとは Step Functions の Map を使って逐次処理しているのみ。一覧取得は若干複雑な条件を利用してフィルタリングしているため、 Lambda で実装している。
`Run AppFlow` は別のステートマシンであり、いわゆるネストされたステ

元記事を表示

電子署名の仕組みについて

# 内容
この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の講座を参考に作成しました。
https://aws-cloud-tech.com

##### 以下に電子署名の仕組みとそれを実現するための技術である`一方向ハッシュ関数`について記載します。

#電子署名とは
・「電子データ作成者」情報を電子データに付与し、電子ファイルが改ざんされていないことを証明する技術です。
・紙の書類におけるサインや押印を電子的に実現したものになります。

#一方向ハッシュ関数とは

・電子署名を実現するために用いられる暗号化技術です。
・対象のデータから特殊技術によりランダムな英数字(ハッシュ値:長さは固定)を生成することができます。
・対象のデータが1ビットでも異なるとまったく別のハッシュ値が生成されます。
・ハッシュ値から対象のデータを生成することは現実的ではありません。

#電子署名の仕組み

1. 署名者(Aさん)は、電子ファイルのハッシュ値を計算し、`Aさんの秘密鍵`で暗号化します。
1. 上記の`電子ファイル`、`暗号化したハッシュ値`、`Aさんの証明

元記事を表示

AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID の有無による挙動の違い

# 概要

Step Functions でネストしたステートマシンを定義する場合、子のステートマシンを呼び出す際に `AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID` を渡すのが一般的。

“`json
“States”: {
“Run Another State Machine”: {
“Type”: “Task”,
“Resource”: “arn:aws:states:::states:startExecution.sync”,
“Parameters”: {
“StateMachineArn”: “arn:aws:states:ap-northeast-1:…”,
“Input”: {
“AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$”: “$$.Execution.Id”,

元記事を表示

AWS認定クラウドプラクティショナー資格】⑨請求サービス

##はじめに

今回は、AWSの「請求サービス」の概要について勉強した内容を紹介します。

「**請求ダッシュボード**」「**マルチアカウントの運用**」「**AWSサポートプラン**」「**その他の請求サポートツール**」に絞って、その特徴をまとめていきます。

##参考書籍

※ [『AWS認定資格試験テキスト AWS認定クラウドプラクティショナー』](https://www.amazon.co.jp/gp/product/B07QX45RXM/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B07QX45RXM&linkCode=as2&tag=itabashitat0a-22&linkId=9598d51e51c3843f7a25a61ef3b45475)
本記事は、本書の第9章に相当

## 項目
1. 請求ダッシュボード
2. マルチアカウントの運用
3. AWSサポートプラン
4. その他の請求サポートツール

##1. 請求ダッシュボード

ダッシュボードから、どのサービスにいくらのコストが発生してい

元記事を表示

Laravel sail AWS S3 画像をアップロードする

# 【Solved】 Laravel sail 本番環境で画像投稿 500 error
# はじめに
Laravel 初学者の私が学習した内容をアウトプットしていく記事になります。
冗長している点や軽い書き方などあれば御指南お願いいたします。。。:bow_tone5:
## 前提条件
・PHP
・Laravel sail
・Heroku
・AWS S3
## エラー
__” Missing required client configuration options: region While Trying to Implement S3 “__
と本番環境で画像投稿を試みたが、上記のエラーが出てきた。
要は、__「 画像を上げる際にクライアント設定オプションがない 」__ と注意された。。。
ローカル環境では上手くいっていたのに、本番環境でなんで!?
## 解決策
答えは、ものすごく単純、、、
デプロイ ( 今回は Heroku )に“`config:set“`( AWS )を忘れていたため。凡ミスてか詰めが甘い。

ローカル環境では、“`.env“`にそれぞれを設定していたた

元記事を表示

Amazon Elastic Block Store(EBS)自分用まとめ

テストでEC2を立ち上げてしばらくしたら、メールでEBSの無料利用枠がもうすぐ終了するとの連絡が来た。
EC2は1ヶ月立ち上げたままでも新規特典で無料で利用できると思っていた為、急いで調べた。

###◎結論
EC2を立ち上げると自動でストレージとしてEBSが起動し、立ち上げた時間分課金されることがわかった。

###◎AWS EBSとは?

https://www.fenet.jp/aws/column/aws-beginner/33/

__Amazon Elastic Block Store(EBS)__は高機能な__ストレージサービス__。
EBSはAmazonEC2に限らず、データベースや、エンタープライズアプリケーション、コンテナ化されたアプリケーションなど、多くのサービス向けに提供されている。

####「Amazon EC2」との関係性

AWSにおいて、Elastic Compute Cloud(EC2)とEBSは__仮想サーバとHDD__の関係にあります。EC2はAWS上に仮想サーバを作成するサービスです。EBSはEC2インスタンス用に準備された仮想ディスク。

#

元記事を表示

LaravelでのAmazonSES/SMTP設定

# 経緯
LaravelからAmazon SESへの接続がタイムアウトしたりエラーになって試行錯誤したときのメモです。
環境は下記の通り。SESはAPI経由でもよいですが、ひとまずSMTPで設定してみることにしました。

– 基盤構成: EC2 → Amazon SES
– PHPフレームワーク: Laravel 8.x

# 試行錯誤してるときに出たエラーたち
いずれもポートの設定などを誤っているために出力されていたものです。

“`
(Swift_IoException(code: 0): Connection to tcp://email-smtp.ap-northeast-1.amazonaws.com:465 Timed Out at /***********************/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php:166
“`

“`
ERROR: Expected response code 220 but got code “”, with me

元記事を表示

AWS Lambda は、Amazon SQS、Amazon DynamoDB、Amazon Kinesis をイベントソースとするイベントフィルタリングをサポートしました

# はじめに

https://aws.amazon.com/jp/about-aws/whats-new/2021/11/aws-lambda-event-filtering-amazon-sqs-dynamodb-kinesis-sources/

> AWS Lambda は、イベントソースとして SQS、DynamoDB、Kinesis のコンテンツフィルタリングオプションを提供するようになりました。イベントパターンのコンテンツフィルタリングでは、お客様が指定したフィルタリング条件の下で、SQS、DynamoDB、Kinesis からのみ Lambda 関数がトリガーされるような複雑なルールを書くことができます。これにより、お客様の Lambda 関数へのトラフィックを減らし、コードを簡素化し、全体的なコストを削減することができます。
>
> お客様は、SQS、DynamoDB、Kinesis をトリガーとする Lambda 関数のためにイベントソースマッピングを作成または更新する際に、最大 5 つのフィルター条件を指定することができます。フィルターの組み合わせは、デフォルトで

元記事を表示

DBとOpensearch連携手順書

###⓪事前準備
AWS aurora(別のエンジンでもOK)・EC2(OS:Amazon Linux、IAMロール→セキュリティグループは適宜お願いします)・OpensearchをAWSコンソールで作成

###①EC2にSSHログイン
###②EC2にmysqlコネクタをインストール
参考:https://qiita.com/ponsuke0531/items/3ae69a9d477809c00917
###③データベースとテーブルをEC2経由で作成
※以下を実行する前にEC2にcsvファイルをインポートすること

“`txt:ログイン→作成→切り替え→設定変更→テーブル作成→ロード→確認
mysql -h (データベースのエンドポイント) -P 3306 -u admin -p –enable-local-infile
CREATE DATABASE sampledb;
use sampledb;
SET character_set_database=utf8mb4;
SET character_set_server=utf8mb4;
create table sam

元記事を表示

SAM(CloudFormation)で修正のデプロイしたのにAPI Gatewayの変更が反映されない(REST API)

## 困っていたこと
既にデプロイ済みのAWS SAMスタックで、開発環境用にCORSの設定を緩める必要があって、API GatewayとLambdaのAllow-Originを`*`にしようとしました。(API GatewayはREST APIタイプ)

`sam deploy`した後、マネジメントコンソールで確認してみると、リソースには変更が反映されている模様。
きちんとAllow-Originが`*`になっている。

`リソース→アクション→CORSの有効化`
![スクリーンショット 2022-01-27 11.43.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/248180ff-00c6-9f5a-c300-655692c7464d.png)

## 解決!
先輩のアドバイスで、マネジメントコンソールでAPIを手動でデプロイしてみる。

`リソース→アクション→APIのデプロイ`
![スクリーンショット 2022-01-27 11.59.43.png](https://qii

元記事を表示

大量データ加工処理の高速化

## はじめに

今まで一般的なWeb開発はしてきたけど高速化についてあまり考慮せずに実装してきたエンジニアの方に向けて、筆者の大量データ ( **7億-8億レコード** ) 加工処理高速化の経験を基に、本番実行で何を目指すかということと、それまでに実際にどのようなアプローチがあるのかを提案できればと思います。
あくまで提案なので、「こうしたらもっと高速になるよ」的な箇所は多々あるかと思います。
コメントなどでご指摘いただければ幸いです。

## 本記事における前提条件

本記事における前提条件を筆者の経験した環境を参考に記載します。

### 本プロジェクトの背景及び要件

– 既存サービスで蓄積されたデータを外部のシステムに連携して有用活用するにあたってのPoVを実施する。
– 既存サービスで蓄積されたデータの一部を匿名化 (ハッシュ化) したものをCSVに書き出し、外部のシステムにPOSTする。
– 本番実行までの実装及び検証は短期間 (2-4週間程度) である。
– **加工処理はできるだけ早くする完了させる**

### 採用したテクノロジー

– Ruby on Rails

元記事を表示

GCP AnthosでAWS EKSを管理する

# はじめに
こんにちは@sk_130と申します。

本記事は、GCPのAnthosに関する学習履歴になります。
Anthosを理解したい人に役立てばと思います。
今回の記事では**ハンズオンを試したのち、EKSのクラスタを接続するところまでやってみます**

今回初めてAnthosについて投稿するため、簡単にAnthosとは?をまとめた後に
実際にやったことを整理します。

# Anthosとは
Anthosは、Kubernetesをベースにアプリケーションのマルチクラウド対応を実現する新サービス
Google Cloud上ではGoogle Kubernetes Engine(GKE)上で稼働し、オンプレミスではGKEオンプレミス上で稼働
さらにAWS上でも稼働予定のため、Google以外のクラウドサポートが見込まれている

つまり、GCPの統合管理サービスです。
GCP以外のクラウドサービスやオンプレサーバの一括管理ができるサービスです

##### 個人的には統合管理できること+サービスメッシュのマネージドサービスがあることが強いと思っています
AWSもAppMeshというものが

元記事を表示

OTHERカテゴリの最新記事