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

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

API Gateway + Lambda のCORS関連エラーの対策

API Gateway と Lambda でウェブアプリのAPIエンドポイントをつくって外部サイトのシステムから呼び出そうとしたらCORS(Cross-origin resource sharing)のエラーになってしまい、設定に躓いたのでメモ

# 基本的な対策
## API Gateway でCORS有効化
API Gateway のアクションからCORSの有効化を設定するのが基本的な対策です。
通常はこれでOKのはず。

## エラーが出て設定が反映できないとき
自分の環境で、以下のようなエラーがでてうまく設定ができませんでした。
`Invalid Response status code specified`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73833/6daf7c6f-67d3-292a-010e-60d04c2f7333.png)

### 対策(レスポンスヘッダーを手動で設定)

1. 上記画面でエラーになった内容をメモ
2. リソースからエラーになっている

元記事を表示

EKSを経由してS3 Static Websiteにアクセスする

## はじめに
静的サイトをサーバレスで公開したいときの選択肢の1つとしてS3のStatic Website Hostingがあります。
今回は独自ドメインでアクセスさせたいときやプライベート空間でアクセスさせたいときに使用できる例としてEKSを経由する方法を紹介します。

概観は次のようになります。ALB Ingress ControllerとNGINX Ingress Controllerを共存させる理由は後述します。

![20200621_eks_s3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307853/6eceb539-26c2-95a5-6c8c-8594d6ebd966.png)

## 環境情報
macOS Mojave 10.14.6
EKS 1.16
Helm 2.14.3

## 手順

ここでは手順を説明していきます。EKSとHelm Tillerは既に構築済みであるものとします。

### 1. S3バケットの作成

今回は`static-website-test0

元記事を表示

DynamoDB作成時のCloudFormation とSAM CLIの使い分け

## 概要
DynamoDBを使用するときにLambdaから読み書きさせるためSAM(Serverless Application Model)を使おうとしたときにうまくいかなかったのでその時の

## 発生した問題点
Lambdaを作成するついでにDynamoDBの定義も記載しようとしたところ `GlobalSecondaryIndexes` を指定することができませんでした。
[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html)を見るとなかった・・・

## 対応
DynamoDBで `GlobalSecondaryIndexes` を使用するときはCloudFormationを使用する。
今回作成予定のDynamoDBはSAMで登録しようとしたLambda以外にも別にLambdaを作成する予定だったためほかの更新に引っ張られないようにするためにも別にするのは良かったかなと

元記事を表示

AWS日記11 (SQS)

# はじめに
今回は Amazon SQS (Simple Queue Service)を試します。
サポートされているキュータイプの 「FIFO キュー」 を試します。

# 準備
[Lambda , API Gatewayの準備をします。]
(https://qiita.com/tanaka_takurou/items/3f93295de6cff060ec09)
SQSの準備をします。「FIFO キュー」を作成し、キューURLを確認します。

[Amazon SQSの資料]
[Amazon Simple Queue Service](https://aws.amazon.com/jp/sqs/)
[【AWS】楽々SQS解説〜5分で理解〜](https://qiita.com/UpAllNight/items/7c5022661a1eadc8a88a)

# WEBページ・API作成
GO言語のAWS Lambda関数ハンドラー aws-lambda-go を使用してHTMLやJSONを返す処理を作成します。
また、SQS を使用するため aws-sdk-go を利用します。

[参

元記事を表示

Lambdaのトリガーの作成中にエラーが発生しましたの対処法

#Lambdaでトリガーを指定したい

###エラー内容

LambdaでS3のputをトリガーを指定しようとした時

#####trigger の作成中にエラー が発生しました: Configurations overlap. Configurations on the same bucket cannot share a common event type. (Service: Amazon S3; Status Code: 400; Error Code: InvalidArgument; Request ID: 8659097E5FCA60E1; S3 Extended Request ID: 2PrYTEd8BysODQscbugs/nK2CtkwOQPjw4JXuWgP6rF18PrrvTkq7cgsbs5gDDwKZdB+9qXAE1o=; Proxy: null)

というエラーが出ました。

同じバケットで同じイベントタイプでは作れませんよ的な内容です。

##同じトリガーの関数を消すだけではダメ

消しても同じエラーでした。

##解決策

トリガーで指定していた

元記事を表示

Nuxt.js で作成した静的サイトを S3 + CloudFront でホスティングするパターン

Nuxt.js で SSR を使わない静的サイトを生成(`nuxt generate`)して S3 で安価にホスティングする場合、「各ページに対して index.html ファイルが生成されるが、リンクの URL では index.html は省略されるため、そのままでは Not Found になってしまう」という課題がある。通常の Web サーバーには、例えば Apache では `DocumentIndex`、nginx では `index` というように、ファイル名が省略された場合にデフォルトのファイル名を配信する設定があるが、それ相当の動作が必要となる。

実現方法にはいくつかパターンがあるようなので、詳細はそれぞれの解説ページに任せるとして、それらを整理してみた。

参考

– [CloudFront + S3 で静的サイトを運用する際の注意点 – Qiita](https://qiita.com/ooxif/items/d28b7caf72bf5290588c)

## 構成パターン

### 1. S3 で Static website hosting をおこなう

元記事を表示

【AWS】AmazonLinuxのNTP設定確認&日本語時刻設定方法

# はじめに
AWS上にZabbix環境を個人的な学習で構築しようとしています。
その中で**AmazonLinuxのNTP確認&日本語時刻設定**を実際にやりました。
今回は、こちらの手順についてアウトプットしていきたいと思います。

# 自宅環境

| 項目 | 説明 |
| —- | —- |
| 自宅PC | Windows10 |
| ターミナル | TeraTerm |

# クラウド環境

| 項目 | 説明 |
| —- | —- |
| PublicCloud | AWS |
| OS | Amazon Linux 2 AMI (HVM), SSD Volume Type |

**※自宅PC→構築したEC2に接続できるようにVPC設定済み**

# 手順

## 「Amazon Time Sync Service」設定確認

①rootユーザーへ移行する。

“`bash
[ec2-user@ip-192-168-8-74 ~]$ sudo su
[root@ip-192-168-8-74 ec2-use

元記事を表示

S3 MFA Delete

# S3 MFA Deleteとは
S3でオブジェクトを削除(※)する際にMFA認証を必須とする機能。
※ ここでいう削除は特定バージョンの削除。表面的なファイル削除は可能。

– 該当S3バケットのバージョニングが有効になっていることが前提条件
– マネジメントコンソール上でMFA認証は行えないため、同設定を行った場合、CLIからのみしか操作ができない
– 利用可能なMFA認証はrootアカウントのMFAデバイスのみとなる
– MFA Deleteが有効になっている際はバージョニングの無効化不可

ユーザの誤操作でバージョンが消失することを防ぎたい場合に有効か。

# やってみる
**注意:rootアカウントのアクセスキー/シークレットアクセスキーは作業完了次第、消す!**

###1.事前準備
rootアカウントのアクセスキーID/シークレットアクセスキーをIAMから発行。またMFAデバイスのARNを控えておく。

###2.設定用profileの作成
rootアカウントで操作するための設定用profileを用意する(終わったら速やかに消す)

“`
% aws configur

元記事を表示

【AWS】用語を整理しながら学ぶAWS – part2

# はじめに

この記事では
AWSのあんなことやこんなことについて
まとめた記事です。
ベストプラクティスや間違いがあれば
書き直していく予定です。
今回はAmazonEC2とそれを扱う上で重要な用語について整理してみました。

参考図書:[さわって学ぶクラウドインフラAmazon Web Services 基礎からのネットワーク&サーバー構築](https://www.amazon.co.jp/dp/B084QQ7TCF/ref=cm_sw_r_tw_dp_U_x_-vD5EbQCMD1A9)

——————————–
# Amazon EC2とは

Amazon ECS(Amazon Elastic Container Service)で動作する
インスタンスのこと

[AmazonEC2開発者ガイドより](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/Welcome.html)

単にEC2インスタンス呼ぶことが多い。

————-

元記事を表示

AWSインスタンスをコマンドラインで起動・停止する

AWSのEC2インスタンスをシェルで起動するのをやりたかったのですが、とりあえず今回はコマンドで起動できるところまでを確認しました。ので、備忘録。

#AWS-CLIをインストール

参考は[こちら](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-mac.html#cliv2-mac-install-confirm)。

“`
$ curl “https://awscli.amazonaws.com/AWSCLIV2.pkg” -o “AWSCLIV2.pkg”
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 20.7M 100 20.7M 0 0 14.6M 0 0:00:01 0:00

元記事を表示

EC2のインスタンスメタデータ確認

EC2インスタンス上で実行。169.254.169.254/latest/meta-data/にアクセスする。REST形式のAPIになっているので、取得したい要素を指定する

“`console
% curl http://169.254.169.254/latest/meta-data/
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
events/
hibernation/
hostname
iam/
identity-credentials/
instance-action
instance-id
instance-life-cycle
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups
services/
“`

例)hostnameを取得したい

元記事を表示

AWS PuTTYでのSSHファイル転送ではまったところ

# windows上からAWSで起動しているLinux2のインスタンスのディレクトリへファイルを転送したい
[参考]
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/putty.html#Transfer_WinSCP

初心者のokkumanでございます。
まあ案内にも書いている通りやればいいのですが
一応はまったので備忘録的に残していこうかと思います。

自身のPCよりAWSのインスタンスマシンにファイル転送をする際

“`windows
pscp -i C:\Users\user-name\(keyの名前).ppk C:\Users\user_name\requirements.txt ec2-user@DNSサーバーネイム:/home/ec2-user/requirements.txt
“`
pscp -i [ ppkファイルが格納されている場所のファイルFullパス ]  半角スペース  [ 転送したいファイルのファイルFullパス] 半角スペース [ linuxユーザーネーム ] @ [ AWSのDNS

元記事を表示

EKS Workshop実施メモ

# はじめに
k8s学習の第一歩として[Amazon EKS Workshop](https://eksworkshop.com/)を実施する事にしました。
本記事は自身のWorkshopの学習メモとして投稿します。
## 目的
EKSを動かしながらk8sで出来ることを理解するのが大きな目的です。

k8sに関しては現時点で[AWS公式のチュートリアル](https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/getting-started.html)を実施した程度の知識しかない為、本Workshopで手を動かしながら、k8sで出来ることを確認していきます。
その後は[Kubernetes完全ガイド](https://www.amazon.co.jp/Kubernetes%E5%AE%8C%E5%85%A8%E3%82%AC%E3%82%A4%E3%83%89-impress-top-gear-%E9%9D%92%E5%B1%B1/dp/4295004804)を読み込むことで、詳細な実装方法やパラメータについての理解を深めていく予

元記事を表示

AWS 最低限の料金調査とインスタンス作成、接続までのメモ

# 概要
数年ぶりに私的な理由でAWSを利用することになった。セットアップした際のメモ書き。

# 料金調査
* AWSでは特定のサービスについて無料利用枠が用意されている。
* EC2はt2.microで月750時間分が無料
* 対象サービスや無料利用枠の詳細について – [AWS クラウド無料利用枠](https://aws.amazon.com/jp/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc)
* 今回はオンデマンド(従量課金制)を採用
* リージョン毎に1時間あたりの料金設定が異なる – [オンデマンドインスタンスの料金](https://aws.amazon.com/jp/ec2/pricing/on-demand/)
* 東京リージョンを選択
* 念の為、無料期間終了後に発生する月額請求を簡単に計算して把握しておく。
* EC2のタイプが 「t2.micro」 だった場合の月額費用
*

元記事を表示

docker terraform実行環境を作って、仲間のterraform実行環境を尊重する

## 紹介する内容
– terraformの`環境別HOMEパス/.aws/credentials`からaws profileを取得する設定を利用します
– gitignoreとdockerのvolumesを利用してterraform実行環境を作ります
– 参考:https://www.terraform.io/docs/providers/aws/index.html#shared-credentials-file
– 主にMACにterraformインストールした仲間とdockerでterraform使いたい人(筆者)状況を想定しました

## 結論
– **同じaws profile名を設定するルール**だけ守ると、MACでterraformインストールした人、dockerでterraformインストールした人はお互いの環境を気にせずにterraform運用できると思います
– dockerコンテナの中で生成したaws profileの情報を**dockerのvolumes**でマウントしました。
– マウントしたディレクトリを消さない限りaws

元記事を表示

Cloud9をデスクトップアプリ化する(macOS 2020年版+おまけのWindows)

# 概要

[AWS Cloud9](https://aws.amazon.com/jp/cloud9/)をブラウザ(Chrome)から利用すると、Chromeにバインドされているキーボードショートカットが優先されてCloud9のキーバインドが正しく動作しません。これを回避するためにChromeをデスクトップアプリとして起動する方法です。Windowsでは簡単にできるのですが、macOSのChromeでは現状簡単にできないので、Automatorを使う方法を記述します。簡単ですが、Windowsの手順ものせますね。

# 用意するもの

* Mac (macOS Catalina)
* Google Chrome
* AWSアカウント(Cloud9設定済み)

# MacでCloud9をデスクトップアプリ化する手順

ChromeでCloud9を開き、URLをコピーしておく

アプリケーションからAutomator.appを開く
スクリーンショット 2020-06-21 16.02.50.pngECRにdockerfileをpushしたときのメモ

AWS ECRリポジトリの作成後「プッシュコマンドの表示」をクリックすると下記が表示される。
pushのための実行コマンドが表示され、macOS/Linux もしくは Windowsと環境に合わせて選ぶように表示される。

![Amazon ECR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/659747/2fbf4545-ef7a-ae6d-1db2-d856495b376b.png)

# 注意点
私はWindows環境だが、この表示される「Windows」とはホストOSを指すのではなく、使用するターミナルのことで、AWS Tools for Windows PowerShell を使用する場合という意味と思われる。
Windows環境下でもAWS Command Line Interface(AWS CTL)を使用している場合はmacOS/Linuxに表示されるコマンドを実行すること。

元記事を表示

AWS SAA資格取得 ~Code3兄弟~

##はじめに
構成管理サービスの
・Code Commit
・Code Build
・Code Deploy
についてメモ

##Code Commit
AWSが提供するGitのホスティング、リモートリポジトリを提供するサービス
プライベートGitリポジトリを簡単にホストできる。
セキュアであり管理や設定の手間を省いてくれる。

##メリット
1:完全マネージメント型のため管理や設定が不要
2:コードを安全に保存可能
-不使用時、転送中に暗号化される。
3:バージョン管理プロジェクトをスケールする
-多数のファイルや、ブランチ、大容量のファイル、
長期間のバージョン履歴に対応してリポジトリを管理することが可能

##Code Build
CI(継続的インテグレーション)を行うためのサービス
アプリケーションのテストやコンパイル、デプロイなどを自動化してくれる

##メリット
1:アップデート、管理が不要
2:EC2 S3 CodePipeline Lambdaなど他AWSサービスと連携が容易
3:CodePipelineと連携すれば テスト⇨リリースまで自動化できる

##Code

元記事を表示

Amplify Consoleのnode、yarnをバージョンアップする(Quasarアプリをビルドする)

`Amplify`は、高速でアプリを開発できる開発プラットフォームです。(`AWS`版の`FireBase`)
`Amplify`で`Quasar`(マルチプラットフォームアプリを高速で作れる`Vue.js`ベースのフレームワーク)で作成したアプリをデプロイ(`Amplify Console`利用)して少しハマったので解決方法を記載します。

# 問題

デフォルト設定のままだと、`node`と`yarn`のバージョンが古くエラーが発生します。

“`
# Starting phase: build
2020-06-20T16:01:17.980Z [INFO]: # Executing command: yarn
2020-06-20T16:01:18.130Z [INFO]: yarn install v1.16.0
2020-06-20T16:01:18.202Z [INFO]: [1/5] Validating package.json…
2020-06-20T16:01:18.204Z [WARNING]

元記事を表示

AWS CDKでEC2 Auto Scalingをデプロイしてみる

## はじめに
Auto Scalingのテスト環境の構築をAWS CDKの勉強も兼ねて行ってみました。
EC2にCPUの負荷を与えて、想定通りにEC2がスケールアウトすることを確認したかったため、作業内容を備忘録のつもりでまとめます。

## 環境
– OS: macOS Cataline 10.15.5
– VSCode: 1.46.0
– Node.js: v14.4.0
– npm: 6.14.5
– TypeScript: 3.9.5
– CDK: 1.45.0

## AWS CDKのインストール
[公式](https://docs.aws.amazon.com/ja_jp/cdk/latest/guide/getting_started.html)の情報を参考にインストールします。

“`
$ npm install -g aws-cdk
“`

インストールできているか、念のため確認します。

“`
$ cdk –version
1.45.0 (build 0cfab15)
“`

## プロジェクトの作成

CDKのプロジェクトを[公式](https://

元記事を表示

OTHERカテゴリの最新記事