- 0.0.1. AWSのデフォルトリージョンを東京にしてみた
- 0.0.2. React + Rails + AWS Fargate の構成を実現したい – 00 全体概要編
- 0.0.3. 【AWS】S3からDynamoDBへのインポートができるようになりました!(& ちょっと検証)
- 0.0.4. Herokuアップデートエラー Aws::Sigv4::Errors::MissingCredentialsError
- 0.0.5. 【メモ】AWS boto3 & dynamoDBチートシート
- 0.0.6. PHP oci_connect で AWS(RDS) oracleDBへ接続方法
- 0.0.7. SageMaker Training JobでUploadingでエラーになる
- 0.0.8. AWSの超個人的メモ
- 0.0.9. SageMaker Training Jobでdocker run image trainがエラーになる
- 0.0.10. SageMakerでファイルを保存するときPermission Deniedになる
- 0.0.11. SageMakerのドメインが削除できない
- 0.0.12. AWSアカウントを閉鎖してから再作成した時、rootユーザーログインできないという現象が起きた。
- 0.0.13. 【AWS】チュートリアル CodeCommit リポジトリ作成・サンプルコードのアップロード
- 0.0.14. Kinesis Data FirehoseからParquetファイルでS3に書き込む
- 0.0.15. AWS IAMとは?
- 0.0.16. 備忘:macにてAWS CLIをインストール
- 0.0.17. 新卒未経験、4ヵ月間で勉強してきたこと。
- 0.0.18. aws-vaultを使ってAWS SAMのデプロイを行ってみる
- 0.0.19. .NET CoreのプロジェクトをGitLab CI/CDでECSに自動デプロイさせる
- 1. 概要
- 2. プロジェクトのフォルダ構成
AWSのデフォルトリージョンを東京にしてみた
# やってみた
コンソール画面左下にある Unified Settingsから設定画面へ移動![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/516945/4ffd6479-a4b7-d8c4-cc01-b67d9b6b42bc.png)
デフォルトのリージョンを上記の画面の様に東京リージョンに設定し保存を押せばOKです!
# 公式ドキュメント
https://docs.aws.amazon.com/ja_jp/awsconsolehelpdocs/latest/gsg/select-region.html?icmpid=docs_unified-settings_help_panel
React + Rails + AWS Fargate の構成を実現したい – 00 全体概要編
## 概要
現在正社員としてバックエンド + インフラをメインにWeb系エンジニアをしている。
技術力の向上を目的に個人開発を行いたいと常日頃考えているが、現時点で開発したいアプリケーションがない状況である。
このまま考えてるだけでは時間がもったいないため、まずはモダンかつ定番なWebサービス構成を作ることにした。
これにより、いざ個人開発でサービスを作りたいと思った時にアプリケーション開発に注力できるようにする。## 自分のスキル
– 実プロジェクトではJavaScriptをメインで使用している
– TypeScriptは使っていない
– Reactはある程度読むことはできるがガリガリ書いていない– AWSの設計・構築をメインで担当している
– ECSなどのコンテナサービスは使っていない
– CDKによるインフラコード化は経験あり
– CI/CDに関して一定の知見はある## やりたいこと
以下技術も用いた構成を実現し、いざ個人開発でサービスを作りたいと考えた時にアプリケーション開発に注力可能とする
– 共通
– Docker
【AWS】S3からDynamoDBへのインポートができるようになりました!(& ちょっと検証)
## きっかけ
ネットサーフィンしていたら、AWS公式からDynamoDBでS3からのインポートをサポートしました!というブログポストが出ていたので、以前はちょっとしたLambdaとか書いてたなぁと思いつつ、便利っぽいので動作確認しようと思いました。https://aws.amazon.com/jp/blogs/database/amazon-dynamodb-can-now-import-amazon-s3-data-into-a-new-table/
(流石のクラメソさん、以下でとてもわかりやすくまとめてくれております!)
https://dev.classmethod.jp/articles/amazon-dynamodb-import-amazon-s3-data-into-a-new-table/
### 前提
#### 移行前テーブル: before_migrate_table
– 項目: ttl項目についてTTL設定なし, alt_nameはLSI設定時に使用想定
– id: Number, PK
– name: String, SK
Herokuアップデートエラー Aws::Sigv4::Errors::MissingCredentialsError
# エラー内容
Heroku上にアップデートしていたアプリの画像の保存場所をLocal環境からAWS S3に画像に変更した後、
Heroku上にアップデートしたサイトにアクセスするとapplication errorの表示。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2672823/279d6446-b764-2ae9-cc17-2eeaff75950e.png)
Herokuのエラー指示通りにコマンドラインでheroku logs –tailのコマンドを打つと以下のエラーが含まれているようでした。
“`
Aws::Sigv4::Errors::MissingCredentialsError
“`
Credentialsエラーということで環境設定周りが間違っている??# 結論
結論から言えば、環境変数に設定するAWSの項目名が間違っていたこと。
PUBLIC KEYとSECRET KEYの環境変数設定と同じと思い込んで名称を間違って設定してしまったようです。
“`
×
【メモ】AWS boto3 & dynamoDBチートシート
# 1. はじめに
Python&Boto3経由でAWSのDynamoDBへアクセスする時によく使うメソッドたち(CRUD + COPY)をまとめてみました。[Github](https://github.com/YomamaBanana/AWS_Summary/blob/main/dynamodb/run.py)
# 2. Boto3メソッド
## API
“`main.py
dynamodb = boto3.resource(
“dynamodb”,
endpoint_url=”http://localhost:8100″,
region_name=os.environ.get(“REGION_NAME”),
aws_access_key_id=os.environ.get(“AWS_ACCESS_KEY”),
aws_secret_access_key=os.environ.get(“AWS_SECRET_ACCESS_KEY”),
)
“`## データ定義
今回のテーブルの定義とアイテムの定義は`env.yaml`と
PHP oci_connect で AWS(RDS) oracleDBへ接続方法
# AWS RDS へ接続。
## お使いのDBの値へ入れ替えてください。
#### コード
“`php:index.php// エラーを出力する
ini_set(‘display_errors’, “On”);$conn = oci_connect(‘TSU’,’TSU’,’orcl-03.cbmsqs9alrus.ap-northeast-1.rds.amazonaws.com/orcl’,’AL32UTF8′);
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e[‘message’], ENT_QUOTES), E_USER_ERROR);
}else{
echo “接続完了!”;
}?>
“`
SageMaker Training JobでUploadingでエラーになる
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
SageMaker Training JobでUploadingのタイミングでエラーになっていた
CloudWatchのログをみると以下のエラーがでていた“`
[FATAL tini (7)] exec train failed: No such file or directory
“`# 解決方法
これはSageMakerのファイルパスが正しく設定されていないのが原因
Dockerfileに以下を追加した
“`Dockerfile:Dockerfile
ENV PATH=”/opt/program:${PATH}”
“`ちなみに出力先は`/opt/ml/model`になるので出力ファイルはすべてこの中に書き出すようにする
# 参考
AWSの超個人的メモ
# 「AWSではじめるインフラ構築入門」を読む。
セミナーや業務の知識を体系的に整理したいので。https://www.seshop.com/product/detail/23455
### アカウントとユーザー
AWSを使うためには**アカウント**を作る必要がある。アカウントを作成すると**ルートユーザー**が作られ、
そのルートユーザーが個別の権限を持った**一般ユーザー**(**IAMユーザー**)をさらに作成することができる。
つまり、アカウントは1つの個人を表しているのではなく、複数のユーザーからなる組織を表しているイメージ。ユーザーに何かの作業をする権限を与えたい場合は、ユーザーそのものに権限設定をしてもよいし、
ユーザーが所属する**グループ**(**ユーザーグループ**)に権限設定してもよい。後者のほうが管理の手間やミスが少なくなる場合がある。ルートユーザーはあまりに強力な権限を持っているのでアクセスキーは発行せず、MFAを有効にして日常使いを避ける。
代わりにIAMユーザーを用途に応じて作成するようにしよう。### ポリシー
ユーザーまたはグループ
SageMaker Training Jobでdocker run image trainがエラーになる
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
Training Jobをカスタムイメージで利用したところ以下のエラーが発生した
“`
$ docker run -v $(pwd)/test_dir:/opt/ml –name sagemaker –rm ${image} train
[FATAL tini (7)] exec train failed: No such file or directory
“`# 解決方法
ローカルで動かす場合は以下のように変更したところ動くようになった
“`
$ docker run -v $(pwd)/test_dir:/opt/ml –name sagemaker –rm ${image} ./train
“`
SageMakerでファイルを保存するときPermission Deniedになる
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
SageMakerでCSVファイルをPandasで出力する以下のコードで権限エラーが発生した
“`
try:
os.makedirs(‘/opt/ml/processing/output/data’)
except:
pass
df_processing.to_csv(‘/opt/ml/processing/output/data/df_processing.csv’)
“`# 解決方法
原因はコンテナのユーザーがrootになっていることだった
ユーザーを変更することで解決した
SageMakerのドメインが削除できない
# はじめに
この記事は2021年1月にまとめていた「細かいつまずいたことをメモしておく(1月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
SageMakerを削除したときユーザープロファイルを削除したのに`ドメイン削除ボタンが押せない`
コンテナイメージをアタッチしたエラーがずっと表示されておりそれが原因かもしれない# 解決方法
CLIから削除するとうまくいった
“`
$ aws sagemaker delete-domain –domain-id [ドメインID] –region [リージョン(ap-northeast-1など)]
“`AWS CLIがない方はそれをいれるところからやってみてください
AWSアカウントを閉鎖してから再作成した時、rootユーザーログインできないという現象が起きた。
## ★経緯
2年前にプログラミング学習をはじめ、一度挫折して去年の5月ごろ?にアカウントを閉鎖しました。
2022年8月に改めてAWSを使いたいと思い、新規でアカウントを作成しました。## ★起きている問題
rootユーザーログインを試みたところ、IAMユーザーログインにジャンプしてしまい
ログインしないとわからない?はずのアカウントIDを求められる現象が起きました。## ★解決した方法
https://aws.amazon.com/jp/premiumsupport/knowledge-center/reopen-aws-account/#:~:text=%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%82%92%E9%96%89%E9%8E%96%E3%81%97%E3%81%9F%E3%81%AE,%E3%81%9F%E3%82%8A%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%
【AWS】チュートリアル CodeCommit リポジトリ作成・サンプルコードのアップロード
# はじめに
AWS ドキュメント上の
[CodeCommit チュートリアル Step1, Step2](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-simple-codecommit.html#codecommit-create-deployment)
を進めました。
日本語訳に対応していないため、本記事では日本語で手順を紹介します。本記事では、Git の操作を使わない方法で紹介します。
# 作業を進める前に
AWS アカウントが必要です。
持っていない方は作成してください。
[アカウントの作成](https://aws.amazon.com/jp/register-flow/)# Step1: Code Commit リポジトリの作成
– [Code Commit ページ](https://console.aws.amazon.com/codecommit/.)にアクセスします。
– リージョンを選択 ※今回は Asia Pacific(Tokyo) を選択しました。
– 「Re
Kinesis Data FirehoseからParquetファイルでS3に書き込む
# 背景・目的
Kinesis Datga Firehose(以降、KDFといいます。)から、S3にParquetを出力する機会がなかったので試してみました。
なお、思わぬところでハマったので、忘れないように合わせて載せておきます。# まとめ
– Firehoseだけではなく、Lakeformationの設定も必要でした。# 概要
AthenaやRedshift Spectrumで分析しやすいようにKDFでParquetフォーマットに変換しS3に出力します。今回は、S3 Selectで確認するところまでをスコープとします。# 実装
## KDFの設定1. Kinesisトップ画面で配信ストリームをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/d1ee2aa1-bc6e-b187-c305-d7c3f01f1951.png)1. KDFの画面で以下を入力すると、設定項目が変更されます。
– SourceにDirect Put
AWS IAMとは?
## IAMでできること
・IDと認証情報の管理
・アクセス権限の管理
・権限の委任
・IDとライフサイクル管理など、AWSリソースにアクセスする仕組み。
AWSリソースにアクションをする場合、ユーザーだけではなくアプリケーションだったりします。
AWSではユーザーやアプリケーション、ロールなどアクションの指示を出す役割をまとめてプリシンパルと言います。プリシンパルがリクエストを出す場合、IAMユーザ、ロールが認証されている必要があります。
プリシンパルはマネジメントコンソールであったり、AWSAPIを使用してリクエストを送信します。
リクエストには誰が?どの環境に?どんなことをしたいのか?の情報が入っています。
これらの情報をもとにリクエストを許可するのかしないのかをアクセス許可のポリシーによって決められており、これらが認可されて初めてリソースが使用できます。## AWSアカウントのルートユーザー
全てのAWSサービスとリソースを全てに完全なアクセス権を持つユーザーのことを指します。支払いオプションの変更、サポートプランの変更、IAMユーザーへのアクセス許可のリストア
備忘:macにてAWS CLIをインストール
超個人メモ
macにてAWS CLIをインストールしたので、備忘録。■実行環境
“`sh
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.7
BuildVersion: 19H512
“`■導入手順
手持ちのAWSのテキストに書かれている手順
“`sh
# pyhonのpipパッケージを入れる
$ curl “https://bootstrap.pypa.io/pip/get-pip.py” -o “get-pip.py”
$ sudo python get-pip.py
$ pip –version# AWS CLIをインストール
$ sudo pip install awscli
# 正常にインストールされたか確認
$ aws –version
“`しかし、下記のcurlコマンドでエラーになった。。少し調べてみる。
“`sh
$ curl “https://bootstrap.pypa.io/pip/get-pip.py” -o “get-pip.py”
“`■調査結果
get-
新卒未経験、4ヵ月間で勉強してきたこと。
初投稿です。
2022年4月に新卒で不動産テックの会社に入社し、4ヵ月が経ちました。
ふと、今までのやってきたことは何だったのかをまとめたくなったのでメモ書きしていきます。
まず、自分は未経験で現在の会社に入社しました。学生時代は触り程度しかプログラミングをしていません。なので、本格的に学習したのは入社してからになります。では、さっそく
1ヵ月目から3ヵ月目まで、吉祥寺にあるWeb制作会社に行き、研修?を受けていました。内容としては主に、HTML,CSS,javascript,AWS,基本情報技術者試験の対策がメインでした。
HTML&CSSは、Progateで道場編も含めて学習。その後、「1冊ですべて身につくHTML & CSSとWebデザイン入門講座」を用いて、ブログサイトの作成。そして、codeStepというサイトを参考に10個くらいコーディング練習をしました。
JavaScriptは、ProgateとYoutubeで基礎学習を行い、TechFULというサイトでコーディング練習をしました。TechFULでは、難易度2までのものをやり、週間ランキングで2位を一度取れまし
aws-vaultを使ってAWS SAMのデプロイを行ってみる
# はじめに
AWSのSAMを使うとlambda関数の開発がかなり楽になることを知りました。
本記事ではそんなsamのインストールからデモアプリのデプロイまでをまとめてみました。# AWS SAMとは
SAMとは(Serverless Application Model)の略です。AWSのサーバーレスサービス、Lambdaの関数をローカルで開発する際に非常に便利なサービスとなっています。## SAMを用いるメリット
SAMを用いてLambda関数を開発すると以下のような利点があります。
– ローカルのエディタを用いてLambda関数のコーディングが可能
– ローカル上でLambda関数に似た実行環境を用意できるためテストが簡単
– pythonのパッケージを用いる場合zipファイルなどにまとめレイヤー分けをする必要がなくなる# 使ってみる
## 準備
### 前提
本記事はarm系cpuの搭載されたmacOSでまとめています。
“`terminal
$ sw_vers
ProductName: macOS
ProductVersion: 12.5
$ uname -m
a
.NET CoreのプロジェクトをGitLab CI/CDでECSに自動デプロイさせる
概要
![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1893891/d387be99-e329-8ead-a04e-205f747ec3d4.png)
OS:Windows11
開発環境:VisualStudio2022(Docker使用)
プロジェクト:.NET Core Razor Pages
ソース管理:GitLab(セルフホスト版)
AWSの環境はTerraFormで構築しました。
TerraFormを使ったAWS環境構築については、今回の趣旨から逸れるのでここでは説明しません。
上記の環境で、GitLabにソースをプッシュしたら、ECSに自動でデプロイされるように設定していきます。
CI/CD処理は全て「.gitlab-ci.yml」というファイルに記述します。プロジェクトのフォルダ構成
“`text:
├─.git
├─.vs
├─bin
├─db
├─obj
│
├─RazorPa
AWS Synthetics Canaryで日本語フォントを設定する
これまでsyn-nodejs-puppeteer-3.4までは普通に日本語がでてきたんですが、3.5以降で日本語が豆腐になった人向けです。
AWS Synthetics Canaryの記事をよむと、日本語が豆腐になるというのを読むことがありますが、私は日本語フォントに苦労したことはなかったです。
ちなみに私はsyn-nodejs-puppeteer-3.3から始めて、3.5で豆腐になりました。
始めたときに豆腐だったら、きっと採用しなかったでしょうね。運がよかった。## 原因
fonts.conf の変更により、/opt/fonts/.fonts/ 以下においてある日本語フォントを読みにいかなくなったためです。
## 対応
canaryのスクリプトで/opt/fonts/.fonts/*.otf を /tmp/.fonts/以下にコピーして、synthetics.launch() しなおす。
## fonts.confの変更点
syn-nodejs-puppeteer-3.4 と 3.6 のfonts.confの一部を下に示します。
“`xml