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

AWS関連のことを調べてみた2020年11月25日
目次

API Gatewayのリソースポリシーでホワイトリスト設定を行う

特定のIPアドレスからのみ接続を許可する設定をしたく、API Gatewayのリソースポリシーを利用して、ホワイトリスト設定を試したのでその際のメモを残しました。

###設定手順
1.API Gateway > APIを選択 > リソースポリシーを選択
2.リソースポリシー欄に以下を記載

“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: “*”,
“Action”: “execute-api:Invoke”,
“Resource”: “< リソース>リソースを選択>メソッドリクエストに記載のARNをコピーして貼り付ける>”,
“Condition”: {
“IpAddress”: {
“aws:SourceIp”: “<ここに許可したいIPアドレスを記

元記事を表示

【AWS】 Route 53 + ACM + CloudFront + S3 構成の構築でハマったこと

# この記事の対象者

– Route 53 + ACM + CloudFront + S3 構成を構築しようと試みている人
– AWS で独自ドメインで HTTPS 通信でWebサイトを配信したい人
– AWS 初心者

# はじめに

AWS で Web サイトを独自ドメインで配信するにはどうしたらいいのか調べてたところ、どうも Route 53 + ACM + CloudFront + S3 の構成がスタンダードのようでした。

【参考】
・[AWSにおける静的コンテンツ配信パターンカタログ(アンチパターン含む)](https://dev.classmethod.jp/articles/static-contents-delivery-patterns/)

そして、この構成についての参考になるサイトがたくさん存在します。

以下リンクになります。

・[AWSで独自ドメインのhttpsな静的Webサイトを構築する(ACM+S3+CloudFront+Route53)](https://t-dilemma.info/static-website-hosting-by-aws

元記事を表示

M1 MackbookでAmazon EBSをマウントする

我がM1 MackBookの、蓋開けから画面点灯まで速すぎるとか、Safariの動作が爆速過ぎるとか、電池が長持ちし過ぎて電源ケーブルつけてないことを忘れるとか、色々快適すぎて毎日macをいじる今日この頃。今回は、SSHFSを使ってAWS EC2ボリュームをマウントしたので、その時のメモです。ちょうどApple Silicon対応したDeveloper Previewがあったので、ありがたく使わせていただきました。

#FUSE for macOSをインストール

https://osxfuse.github.io

Apple Silicon対応のDeveloper Preview macFUSE 4.0.0以降をダウンロード&インストール

※SSHFSだけに用があったのですが、FUSE for macOS(macFUSE?)も必要とのことで先にインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556119/7006201a-4005-1fa3-53dc-c25ef

元記事を表示

Advanced Architecting on AWSを受講しました

公式サイトの説明はあまりに情報が少ないので、
受講を検討している方の一助となればと思い記録を残します。

# Advanced Architecting on AWSとは
Architecting on AWSの応用編コースになっています。
様々な要件に基づいて複雑で難易度の高いアーキテクチャを設計できることを目指します。
受講者のターゲットは次の通り。要求されるレベルは高いです。

* ソリューションアーキテクトアソシエイトを取得した方
* 業務でAWSを利用していて一通りのサービスを熟知している方

[Advanced Architecting on AWS](https://aws.amazon.com/jp/training/course-descriptions/advanced-architecting/)

# 実施概要
* 講師: 1名
* 受講者: 十数名くらい
* 形式: オンライン
* 日数: 3日間

# 講義内容
※ 内容は時期や講師によって変更となる可能性があります

## 1日目
* Well-Architectedフレームワーク
* AWSアカウントの管

元記事を表示

千葉県Go To EAT向けに店舗検索BOT(AI LINE BOT)を作った話(2)【概要】

千葉県Go To EAT向けに店舗検索BOT(AI LINE BOT)を作った話(1)の続きです。

システム構成は、以下の通りです。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/896062/2c41870f-d8f2-3078-dff8-10aff382cf13.png)

【フロー】
1.スマホでLINEのBOTを操作し、検索したいお店に関連するワードを入力します。
2.入力するとLINEのMessageing APIを経由してAI検索サーバ上のWEBサーバへhttpsリクエストが飛びます。
3.リクエストは、flaskで受け付け、検索ワードと類似度の高いお店をAIで判別します。
4.AIで判別した結果をもとに、データベースからお店に関する情報を返却します。

AI検索サーバはお金をかけないために、AWSで無料枠として提供されているt2.microを

元記事を表示

【Android】ObjectMetadata.setContentEncoding で文字化け【AWS】

**AWS(s3)** の **Android** サンプルコードを試していたのですが、
アップロードしたファイルの文字化けで手間取ったのでメモ。

“` java:文字化けしたコード
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(“text/plain”);
metadata.setContentEncoding(“UTF-8”); // “utf-8″も”UTF8″も試したけどダメ
“`

“` java:うまくいったコード
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(“text/plain;charset=utf-8”);
“`

**setContentEncoding**なんて、期待しちゃうにきまってるじゃないですか。

元記事を表示

【AWS】SysOpsアドミニストレーター-アソシエイト(SOA)合格記

#はじめに
AWS認定試験-SysOpsアドミニストレーター-アソシエイト(SOA)に合格した(2020-08-10)ので、合格までの道のりを残しておこうと思います。
CLF合格記は以下をご覧ください。
【AWS】クラウドプラクティショナー(CLF)合格記

SAA合格記は以下をご覧ください。
[【AWS】ソリューションアーキテクト-アソシエイト(SAA)合格記](https://qiita.com/nnydtmg157/items/5705410a0b31f1d5a89d)

SOAはSAA合格後すぐに勉強を始めました。

#What’s SOA?
まずは、SOA試験について
[AWS 認定 SysOps アドミニストレーター – アソシエイト](https://aws.amazon.com/jp/certification/certified-sysops-admin-associate/)

上記サイトによると、認定によって検証される能力は以下のようです。

* スケーラブルで、高可用性および高耐障害性を備えたシステムを AWS でデプロイ、管理、運用する
* AWS との間のデ

元記事を表示

【原因と対策】An error occurred (InvalidClientTokenId) when calling the GetCallerIdentity operation: The security token included in the request is invalid.

AWS-CLIで

An error occurred (InvalidClientTokenId) when calling the GetCallerIdentity operation: The security token included in the request is invalid.

というエラーが出た時の備忘録。

#原因

そのままGoogle翻訳にぶち込んでみる。

“`
GetCallerIdentity操作の呼び出し中にエラーが発生しました(InvalidClientTokenId):要求に含まれているセキュリティトークンが無効です。
“`

セキュリティトークンが無効だとおっしゃっている。

では「aws configure list」を入力してアクセスキーとシークレットキーを確認してみよう。

“`
Name Value Type Location
—- —– —- —-

元記事を表示

CloudFrontでアクセスログを有効にするとS3のACLに見慣れない外部アカウントの権限がつくのでビビった話

長いですが題の通りです。

# 起きた事

AWSの設定を見ていたら、S3のACL(権限周りの設定ね)に見慣れない外部アカウントに対して権限がついている!これはセキュリティにやばいのでは(゚A゚;)ゴクリ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32169/0d46d7f6-1fa7-004d-0129-ed558f629fb5.png)

# 種明かし

CloudFrontでLogの出力先をS3にすると、自動でこうなります。なので安全です。大丈夫です。

CloudFrontのログは`awslogsdelivery` という**AWSアカウント(!)**を経由して出力される仕組みになっています。で、この`awslogsdelivery`のアカウントIDが `c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0` なのです。

[AWSのdocの該当部分](https://docs.aws.amaz

元記事を表示

Amazon SageMakerとAzure MLにおける機械学習モデルのサービング技術比較(後編)

初版: 2020年11月24日
著者: 橋本恭佑、柿田将幸, 株式会社 日立製作所

## はじめに
本連載では、ストリーム型の機械学習システムをサービングする技術について、
Amazon SageMakerとAzure Machine Learningを比較した結果を紹介しています。
後編では、実際にストリーム型の機械学習システムを両クラウドでサービングして、本投稿で紹介した違いが現れること、
また、SEがAmazon SageMakerとAzure Machine Learningのいずれかの利用を、どのような基準で選択するべきかについて議論します。
なお、本連載に記載のAmazon SageMakerまたはAzure MLの情報は2020年9月末日現在のものであり、今後のアップデート等によって内容が変わることがあります。

### 投稿一覧
1. [Amazon SageMakerとAzure MLにおける機械学習モデルのサービング技術比較(前編)](https://qiita.com/kyosuke_hashimoto/items/48a4e050d6d2504d1e5c

元記事を表示

The security token included in the request is expiredとなった時の対応方法

# 事象 : Secrets Managerからシークレット値を取得しようとしたら怒られた
– 環境
– AWS Cloud9
– Python 3.6.12

はじめてSecrets Managerにシークレット値を設定してCloud9からシークレット値を取得しようとした。
取得するコードは超親切にシークレット値を設定した時に表示されるのでほぼコピペで使った・・・が`ExpiredTokenException`・・・

“`py
def get_backlog_api_key():

secret_name = ‘シークレットの名前’

session = boto3.session.Session()
client = session.client(
service_name=’secretsmanager’,
region_name=’リージョン’
)

try:
get_secret_value_response = client.get_secret_value(

元記事を表示

Code PipelineでJekyllをビルドしてS3+CloudFrontで静的配信する

# はじめに
## 概要
Civichat([https://civichat.jp](https://civichat.jp))をJekyllに変更し、S3+CloudFrontで配信するために調べていた時に記事が昔すぎ(2016年とか…)or英語だったのでせっかくだしCodePipelineやり方をまとめようと思った次第です

———————
>Civichatとは:あなたにぴったりの助成金などの公共制度がLINEでわかるサービスです。
https://civichat.jp/

———————–

## Jekyllってなに?
>Jekyllは、個人、プロジェクト、または組織のサイト向けの、シンプルなブログ対応の静的サイトジェネレーターです。 GitHubの共同創設者であるTom Preston-WernerによってRubyで書かれ、オープンソースのMITライセンスで配布されています。 (by [Wikipedia](https://en.wikipedia.org/wiki/Jekyll_(software)))

元記事を表示

【備忘録】AWSでCakePHP4の環境構築

# 1. EC2のインスタンス作成 ~ PHP7.4インストール
「EC2立ち上げ→Apacheインストール→PHP7.4インストール」の流れはこちらの記事を参考にしました。
[AWS(EC2)を立ち上げてPHPを動かす話](https://qiita.com/daichi_sugiyama/items/623218b6e9173d5e7ed7)

# 2. PHP拡張モジュールのインストール
“`shell
$ sudo yum -y –enablerepo=remi-php74 install php74-php-intl php74-php-mbstring php74-php-pdo
“`
apache再起動

“`shell
$ sudo systemctl restart httpd
“`

# 3. composerのインストール

“`shell
$ curl -sS https://getcomposer.org/installer | sudo php
$ sudo mv composer.phar /usr/local/bin/composer

元記事を表示

CDKでクロスアカウントアクセス可能なS3バケットを作成しようとしてハマったので解決方法

# ハマった流れ

1. CDKでのインフラ構成に初挑戦
2. S3バケットを作成、別のAWSアカウントからの書き込みを許可したい
3. できたと思ったら、別アカウントからアクセスできない事態が発生
* ブロックパブリックアクセスをオフにした→アクセスできたが、セキュリティ面に不安
* [公式doc](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/access-control-block-public-access.html)見る限り、ブロックパブリックアクセスをオンにしたままクロスアカウントアクセス許可できるはず…
4. バケット作成した→できた。
5. そのS3バケットを `Bucket.fromBucketName(…)` で利用し、別サービスをデプロイしたら、クロスアカウントアクセスがまた不可に。
* 見ると、バケットポリシーが消えている
6. `addToResourcePolicy`で再付与 → できない
7. 混乱

# ブロックパブリックアクセスをオンにしたままクロスアカウントアク

元記事を表示

AWS S3に保存しているオブジェクトを1度に1000件削除する。

# やりたいこと
 削除するオブジェクトのキー名が記載されたファイルを読み込んで、ポチッと実行するだけで、削除できるようにしたい。

# 方針
・削除するオブジェクトのキーがかかれたファイルを用意する。
・S3のAPI(delete_objects)を利用して、ループしながらキーを指定削除する。

参考リンク
・[S3の削除について](https://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingObjects.html)
・[pythonのdelete_objects APIについて](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.delete_objects)

# やったこと
・削除するオブジェクトのキーリストを作成する。

“`text:削除するオブジェクトのキーリスト
hoge/fuga/hoge.jpg
hoge/fuga/hoge.png
hoge/hoge/hoge.gif
ho

元記事を表示

AWS認定試験の合格特典を紹介してみた

# 前書き

意外とQiita上ではAWS認定試験の特典に関する記事が見受けられなかったので記してみます。

なお、自分が受かったのはSAA(ソリューションアーキテクトアソシエイト)となります。
よければ[こちら](https://qiita.com/YU-TA-9/items/fd1cdff57c0fb039a268)の合格体験の記事もご参考に!

# 特典内容

## ①認定デジタルバッジの取得

ざっくり合格の証ですね。(バッジと聞くとなんかテンション上がりますよね・・・!)
現在は、Acclaim (アクレーム)というサービス上で付与されるようです。

※Acclaim:様々な資格に関するデジタルバッジを管理するサービス(?)、LinkedInなどの別SNSと連携できるので、このサービスでより簡単に資格の証明を共有できるようになったみたいです。

## ②AWS認定の本試験料金の半額クーポン

めちゃくちゃでかいですね。
アソシエイトレベルで税込16,500円、プロフェッショナルで税込33,000円とかするので。。

## ③AWS認定の模擬試験料金の無料クーポン

こちらも

元記事を表示

【AWSアカウント不要】ローカル環境でAWS CDKのデプロイ&動作確認をするチュートリアル

# 1. はじめに

## 1-1. この記事で行うこと

– [LocalStack](https://github.com/localstack/localstack)コンテナをセットアップし、動作確認
– Node.js環境コンテナ内に[AWS CDK](https://aws.amazon.com/jp/cdk/)プロジェクトを作成
– AWS CDKプロジェクトをLocalStackへデプロイし、動作確認

## 1-2. この記事の対象者

– AWS CDKを本物のAWSを使わずに動かしたい方
– AWS CDKをすぐに捨てられる環境で色々と試してみたい方
– AWS CDKをブラウザのみで気軽に始めてみたい方

## 1-3. 動作環境

このチュートリアルはブラウザだけでDockerを使用可能な[Play with Docker](https://labs.play-with-docker.com/)を使用しております。詳細な説明は以下の記事をご参考ください。
[Docker 入門にはインストールなしで使える「Play with Docker」がいいと思う](http

元記事を表示

【ほぼ無料】FreenomとLet’s Encryptを使って0円でドメインとSSL証明書を手に入れて、AWS EC2にdockerを入れてnginxコンテナを起動してドメインで繋がるHTTPS WEBサービスを立ち上げる方法

# 経緯
何か業務で使う技術や新しい技術を試したいときにAWS上にWebサーバーを立ててAPIとかテストページとか用意して、ローカルのChromeやAndroid端末からhttpで繋いでごにょごにょやるってのを結構やる。
RestAPIの疎通確認ぐらいならそれでいいんだけど、WebRTCやWebSocketの検証で使いたい場合、SSL化されたサイトでないとエラーになって接続できないため動作確認が出来ない問題があった。
どうにかこうにか安価でオレオレ証明書じゃないWebサーバーを立てられないかなーと調べたところ、FreenomとLet’s Encryptを使えばほぼ無料で独自ドメインのhttpsサーバーを立てられそうだと判明。

Freenomでのドメイン取得方法やLet’s EncryptでのSSL証明書取得方法、それらをAWSで設定するやり方等は探せば断片的にはあるけど、全部まとまった記事は無かったので、備忘録もかねてここに残しておく。

# やること
1. 【無料】Freenomで無料ドメインを取得する
1. 【条件付無料】AWS EC2インスタンスを作成してdockerをインスト

元記事を表示

S3の画像データを無理やりBlob型に変換する方法

# なにこれ
S3の画像データをBlob型にしたい!っていう珍しい状況になった時の解決策です。
Vue(Nuxt)で下記のように`’Content-Type’: ‘multipart/form-data’`で送りたい!って時に遭遇する可能性が高そうです。
“`test.js
const response = await this.$axios.put(`/hoges/${this.hoge.id}`, req, {
headers: {
‘Content-Type’: ‘multipart/form-data’
}
})
“`

# どうやるか
### axiosを利用します
axiosでs3のURLをgetして、その時にresponseをblobで受け取ります。
受け取ったresponseを使って、new BlobでBlob型に変換します。

“`test.js
import axios from ‘axios’

// 〜省略〜
const req = new

元記事を表示

AWSでクソアプリのアーキテクチャを2週間でガチガチに改修した

AWS雰囲気使いを卒業するために、既存アプリのアーキテクチャを
2週間で結構強固なものに改造してみたので改造前と改造後、そして将来的に実装したいFuture workを書き残しておこうと思います。

(ほとんど自己満足で行ったので、必要以上のことをしてしまっている部分があったり、説明を省いている部分があります。)

##既存アプリの詳細
今回改造することにしたアプリケーションは非同期でチャットができるようなwebアプリで、いわゆるL○NEやカカ○ークのようなチャットアプリのwebブラウザバージョンと思っていただけたらと思います。

改造前は、2つのAZ上のpublic subnetにおいたEC2(t2micro)をロードバランサーに設定したうえ、単一のRDSをprivate subnetに置いただけの設計で、ストレージもそれぞれのEC2インスタンス(Ruby on Rails内)が保持し、DBに画像ファイルのパス名を格納しているというもはや完全に不具合とも捉えられる状態でした。

このままではユーザー数が増えた際のEC2インスタンスのサーバーダウンが容易に考えられ、またDBのフェイルオ

元記事を表示

OTHERカテゴリの最新記事