- 1. AWSサービス一覧(2021年) 気になったやつだけ インフラ編(1/2)
- 2. PHP:Laravel Strageを利用した複数画像uploadする方法1つとFlysystem-aws-s3で複数画像をuploadする方法2つとその処理速度
- 3. AWS CLIのプロファイルを簡単切り替え
- 4. VPCフローログを設定してみた
- 5. 【AWS】EC2にSSH接続する
- 6. AWS(EC2)にデプロイをして、SSL化するまでに参考にした記事を紹介します
- 7. AWSのSESを使ってCakePHP4からメールを送信するための設定方法
- 8. 全てのエンジニアが知っておきたいサーバ入門
- 9. EC2で自身が所属しているVPCのIDを調べるワンライナー
- 10. 【AWS】EC2インスタンスの認証方式
- 11. 【AWS IAM】MFA認証の設定方法
- 12. AWSアカウント間でRoleを引き渡す方法(assume Role)
- 13. AWS IoT Core 初級ハンズオンを実施してみて。
- 14. AWS CloudFrontについて
- 15. Kintone WebhookとAWS Lamdaの連携方法をより詳しく説明する!
- 16. LambdaでJava入門しようとしてハマった
- 17. aws lambda で UnauthorizedOperation エラー
- 18. windowsからawsのcodecommitにつなぐ
- 19. 【AWS】AWSのアカウント作成から初期設定 まとめ
- 20. ECS Exec を有効化する手順(Fargate/Terraform の場合)
AWSサービス一覧(2021年) 気になったやつだけ インフラ編(1/2)
##今回のフォーカス
下記ページのインフラに関わるサービスを簡単にサマリー。できれば1-2行でまとめたい。
長くなりそうなので、2回に分けます。
【2021年】AWS全サービスまとめ
https://dev.classmethod.jp/articles/aws-summary-2021/#toc-196## 1. コンピューティング
– EC2
– IaaSの一つ。Linux,Unix,Windows,macOS(いつの間に!?)対応。
– EBSやELBと統合。EC2の場面から設定できるという意味かなと。
– Lambda
– サーバレスサービス。
– アプリコードorコンテナイメージをデプロイして、**`イベント駆動でコード実行できるサービス。`**
– 最大実行時間:15分
– Elastic Beanstalk
– PaaS。
– **`Java、.NET、PHP、Node.js、Python、Ruby、Go および Dockerで開発されたWebアプリやサービスを、Apache、Nginx、Passenger、II
PHP:Laravel Strageを利用した複数画像uploadする方法1つとFlysystem-aws-s3で複数画像をuploadする方法2つとその処理速度
## 前提
・AWSアカウントが存在していてS3バケットが作成済である。
https://qiita.com/Yorinton/items/bdf5f9bc05629c9a0df7
・laravel Strageが利用できる。
https://readouble.com/laravel/8.x/ja/filesystem.html
・Flysystem-aws-s3をインストール済みである (AWS SDK for PHP laravelでもよいかな?)
https://www.ritolab.com/entry/8
https://qiita.com/ucan-lab/items/61903ce10a186e78f15f## laravel Strageを利用したupload方法
**upload方法その1**
“`PHP
foreach (Storage::disk(‘public’)->files(‘TARGET_DIR’) as $fileName){
$contents = Storage::disk(‘public’)->get($fileName);
AWS CLIのプロファイルを簡単切り替え
AWSのアカウントを複数使用している場合など、プロファイルを切り変えることがあるかと思います。
コマンド実行時に指定したり、
“`sh
$ aws s3 ls –profile test
“`環境変数に指定して切り替えが可能です。
“`sh
$ export AWS_DEFAULT_PROFILE=test
“`今回、コマンドから簡単にプロファイル切り替えられるようにしてみました。
[awsp](https://github.com/johnnyopao/awsp)というnpmのライブラリをフォークして実装しています。## コマンドを使用可能にする
[こちら](https://github.com/itouuuuuuuuu/awsp)から、必要なソースをcloneします。
“`sh
$ git clone https://github.com/itouuuuuuuuu/awsp.git
“`cloneした `awsp`ディレクトリ内でパッケージをインストールします。
“`sh
$ cd awsp
$ npm i
“`最後に、`.zshr
VPCフローログを設定してみた
## 目次
VPCフローログは VPC、サブネット、ネットワークインタフェースごとにキャプチャが可能です。
今回はVPCのキャプチャを行います。1. 実施環境準備
2. cloudwatchでロググループの設定
3. フローログの設定
4. 確認## 1. 実施環境準備
VPC・サブネットインターネット・ゲートウェイを作成し、インターネットゲートウェイをアタッチ・ルートテーブルに追加を行いました。
また、 [こちら](https://qiita.com/miyuki_samitani/items/61e1548cb61f4053e78d) を参考にEC2インスタンスを作成作成できました。
![2021-05-171インスタンス _ EC2 Management Console – Google Chrome 20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/d037d821-64c2-6a89-a801-c21d44895c49.png)
ログインも出来ました。
【AWS】EC2にSSH接続する
#プログラミング勉強日記
2021年5月18日#SSHとは
SSHはSecure Shellの略で、ネットワークに接続された機器を遠隔で操作して管理するためのツール。SSHは、クライアントとリモートマシンの間の通信を暗号化するプロトコル。SSHコマンドを使ってLinuxサーバーの操作を行える。SSHクライアントでは、SSHによる遠隔操作を支援するコマンドプロンプトタイプのソフトウェア。“`:基本的な書式
ssh[オプション]ホスト名[コマンド]
“`#SSH接続
EC2インスタンスに接続するためには、基本的にLinuxであればSSHプロトコルを利用してEC2インスタンスに安全な接続を実施する。この接続にはクライアント側でSSHソフトウェア、EC2インスタンス側でSSHサーバーとしてのソフトウェアを設定する。そのときにはポート22番のプロトコルの場所を指定して接続する。#EC2にSSH接続する方法(Windows)
WindowsからSSH接続するためには、まずTera TermやputtyなどのSSHのクライアントソフトをインストールする必要がある。(私はTe
AWS(EC2)にデプロイをして、SSL化するまでに参考にした記事を紹介します
AWSへデプロイをして、SSL化を行った際に参考にした記事を共有させていただきます。
これからAWSへのデプロイを考えてる方の参考になったら嬉しいです:relaxed:
(RDSは使用してません。)【デプロイ】
以下の動画を参考に作業を進めました。2点ほど躓いた点があり、解決するために参考にした記事も載せさせていただきます。
1. MySQLのインストール
動画内で選択されているEC2インスタンスがなかったため、「AmazonLinux2」を選択しました。
こちらのインスタンスにはデフォルトではMySQLが入っていないため、下記に記事を参考にインストールしました。https://qiita.com/miriwo/items/eb09c065ee9bb7e8fe06
2.Nginxのインストール
こちらもAmazon Linux2にはnginxのyumが無いので、下記の記事を参考にインストールしました。https://qiita.com/tamorieeeen/items/07743216a3662cfc
AWSのSESを使ってCakePHP4からメールを送信するための設定方法
## 本文について
自分でやっているサイトにSESを導入して新規登録ユーザーにメールが届くシステムの導入をするため、行ったAWSのSESの設定方法を記載しておきます。(備忘録程度に)CakePHP4での設定になりますが、ruby on rails側でもrailsガイドのここら辺を参考に設定をすればおそらくメールの設定ができるはずなので、ポートフォリオ作成の参考になるかと思います。
また、さくらインターネットのサーバーでAWSのSESの設定方法でAWSとドメインの設定方法を記載しておりますので、もし、AWSとドメインの設定が終わっていない場合は、、全てのエンジニアが知っておきたいサーバ入門
# 初めに
現在 [AWS CloudTech](https://aws-cloud-tech.com/) でAWSについて学んでいますが、AWSについて学ぶ前に**「サーバとは」**について纏めようと思い本記事を作成しました。こちらの記事に対して、質問や間違っている点などありましたら是非コメント頂けたら嬉しいです。# 1.サーバとは
**サーバ**という用語について誰しも一度は聞いた事があるかもしれないですが、一言でサーバといっても実際は複数の種類のサーバが存在します。例えば身近な例でいうと以下のような物。* インターネットで何か調べたい物がある時に情報を提示してくれる**Webサーバ**
* 家族や友人などとメールの送受信をする時に利用される**メールサーバ**
* 情報を蓄積・管理を行う**データベースサーバ**今回は上記3つの中で、**Webサーバ**と**データベースサーバ**の仕組みについて深堀していきます。
## 1-1.Webサーバへのアクセス
最初に例として[Yahoo](https://www.yahoo.co.jp/)のWebサーバにアクセスしてみま
EC2で自身が所属しているVPCのIDを調べるワンライナー
タイトルの通り、EC2上で自身が所属しているVPC IDを取得するワンライナーです。
“`sh
aws ec2 describe-instances –query “Reservations[].Instances[?InstanceId == \`$(curl -s 169.254.169.254/2021-01-03/meta-data/instance-id)\`].VpcId” –output text
“`変数に入れて使いたい場合。
“`sh
$ vpcid=$(aws ec2 describe-instances –query “Reservations[].Instances[?InstanceId == \`$(curl -s 169.254.169.254/2021-01-03/meta-data/instance-id)\`].VpcId” –output text)$ echo $vpcid
vpc-xxxxx
“`
【AWS】EC2インスタンスの認証方式
#プログラミング勉強日記
2021年5月17日#EC2インスタンスの認証
EC2インスタンスを立ち上げるときにキーペアを作成して、PEMファイルをダウンロードできる。メモ帳などのテキストでキーペアを見ることができ、キーペアはアルファベットや数字の羅列になっていて大量の文字がランダムに生成されている。キーペアは、作成したEC2インスタンスのサーバー内にアクセスするときに使う。作成したEC2インスタンスが自分のものであるという証明をするために、PEMという鍵を使用する。キーペアなので、EC2インスタンス側にもついになる鍵を持っている。(南京錠のように鍵と鍵穴があるイメージ)
この認証方式を公開鍵認証方式という基本的な暗号方式。ダウンロードする鍵が秘密鍵で、EC2側に設定されているものが公開鍵になっている。EC2側に設定されている方は、AWS側で渡されていて公開されている(特に秘密にしていない・AWSと共有している)ので、公開鍵。ダウンロードするPEMファイルは、ダウンロードしたユーザしかしらないので秘密鍵となっている。秘密鍵は名前の通り、むやみに渡したりコピーし
【AWS IAM】MFA認証の設定方法
#はじめに
本記事では「Google Authenticator」という認証アプリをiPhoneにインストールし、IAMユーザーにMFA認証を設定する手順を紹介します。
※Androidでも基本操作は同じですが、アプリ側の画面や表示に異なる点があるかもしれませんので、ご留意ください。– **MFA認証とは**
Multi-Factor Authentication(多要素認証)のこと。
パスワード以外の要素を用いることで、セキュリティを高める認証方法です。#手順
1.MFAデバイスとして使用するiPhoneに「Google Authenticator」をインストールしておく
(アプリのインストール方法については本記事では割愛します。)2.AWSマネジメントコンソールにサインイン、IAMの管理画面にアクセスし、MFA認証を設定したいユーザー名をクリック
![スクリーンショット (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/494752/bf543c91-2b49-a3d4-4a
AWSアカウント間でRoleを引き渡す方法(assume Role)
#アカウントAの管理者ロールをアカウントBで引き受ける(assume)する方法
roleをassumeするとアカウントBからアカウントAへのリソースにアクセスすることができます。基本的なやり方は、こちらを参考にします。
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html
主な流れとしては
1.アカウントAの管理者がアカウントBがassumeするロールを作成
2.アカウントBにログインして、ロールの切り替えを行う。
の2ステップです。
#手順
アカウントAでアカウントBがassumeするロールを作成します。1.IAMのAWSコンソール画面よりロールの作成を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/659469/464e7408-3d3c-b656-45bc-144b5f2c8205.png)2.別のAWSアカウントを
AWS IoT Core 初級ハンズオンを実施してみて。
[AWS IOT CORE 初級ハンズオン](https://aws-iot-core-for-beginners.workshop.aws/)の感想
## 実施前に
– AWSの各種サービスの概要は少しでも知っておいた方が良い
– 主に cloud9、Kinesis、DynamoDB、MQTT などの用語の意味くらいは知っておく、でないとハンズオンがやっただけになってしまい、理解度が深まらない
– AWSに関連しないITの用語として ルート証明書、公開鍵、秘密鍵
– ハンズオン前に自身がAWSで知っていたこと
– EC2 / cloud9 / Lambda / DynamoDB / API Gateway / RDS / Kinesis Data Stream / Elasticsearch など
– Pythonは知らなくても実施できる
– コマンド(ターミナル)相当の使い方は知っていること、cloud9の操作に必要。
– 使うリージョンはAWS IoT Coreが動くリージョンならば良い、バージニア、東京、オレゴンどれでも良い## Elasticsearchについ
AWS CloudFrontについて
#CloudFrount
HTMLファイルやCSS、画像、動画といった静的コンテンツをキャッシュし、オリジンサーバーの代わりに配信するCDN(Contents Delivery Network)サービスです。サーバーの負荷を下げながら安定したサービス提供ができる。
提供者・利用者のにもメリットになる。・世界中に120のエッジロケーションがある。
・利用者から最も近いエッジロケーションからコンテンツを高速に配信することができる。
・オンプレミスサーバーにも使用が可能で、今のシステム構成を変更することなくCloudFrontを導入することで、イベントなどによる一時的なアクセス増加に備えることができる。
・URLの指定をすることで、1つのドメインで複数のサービスを統一して使用もできる。##キャッシュを使用する
拡張子やURLパスごとにキャッシュ期間を指定できる。
静的にはキャッシュ期間を短くし、動的には長くする設定が可能。キャッシュとは・・・訪問した “ ウェブページの情報 ” を一時的に保存する仕組み(またはその一時的なデータそのもの)のことで、よく訪問するページの表示ス
Kintone WebhookとAWS Lamdaの連携方法をより詳しく説明する!
# はじめに
業務でFormBridgeからkintoneに対してデータを登録した際に、条件によってメールを通知するというシステムを作りました。FormBridgeからメール通知のシステムに対してAPIの呼び出しができなかったため、kintone WebhookとAWS Lamdaを連携するようシステムの構築を行いました。
今回はkintone WebhookとAWS Lamdaの連携方法についてより詳細に説明していきます!
※メール通知はSendGridを使用しました。ここでは紹介しません。# Lamdaの環境準備
## 関数の作成
1. Lamda>関数から関数の作成ボタンを押下する。
2. 以下内容を入力し、関数の作成ボタンを押下する。| 項目 | 値 |
| ————- | ————- |
| オプション | 一から作成 |
| 関数名|任意 |
| ランタイム|使用言語|
| アクセス権限|既存のロールを使用する |## レイヤーの作成
### ■初回作成時
1. Lamda>レイヤーからレイヤーの作成ボタンを押下する。
2. 以下
LambdaでJava入門しようとしてハマった
# 経緯
普段はNode.jsで開発していますが、LambdaでJavaを使うテストをしている方がエラーで行き詰っていたので一緒に調査しました。# 結論
Lambdaのハンドラー設定が間違っていました。
デフォルトでは、`example.Hello::handleRequest`
だったのを、
`com.example.Hello::handleRequest`
に変更したところ実行できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1162215/f1710c19-7996-6947-61f9-eb0eed391293.png)
[こちら](https://qiita.com/niwasawa/items/69bba64d7cd2d6277473)の記事を参考にしました。# 何しようとしてたの?
LambdaでJavaを使用するのが初めてだったので、まずは[こちら](https://blog.mmmcorp.co.jp/blog/2020/03/29/lambda-ha
aws lambda で UnauthorizedOperation エラー
aws の lambda で EC2 のリストを生成したく、describe_instances(python3.8/boto3)を実行したら以下のエラー。
“`
Response
{
“errorMessage”: “An error occurred (UnauthorizedOperation) when calling the DescribeInstances operation: You are not authorized to perform this operation.”,
“errorType”: “ClientError”,
“stackTrace”: [
” File \”/var/task/lambda_function.py\”, line 8, in lambda_handler\n response = ec2client.describe_instances()\n”,
” File \”/var/runtime/botocore/client.py\”, line 357, in _api_call\n
windowsからawsのcodecommitにつなぐ
windows git
https://qiita.com/s_Pure/items/8fc15670133870a20280
https://prog-8.com/docs/git-env-win
awsでwikiを世界公開してハマる
https://qiita.com/ky7ieee/items/db5872ae8f0d1f01bd41
【AWS】AWSのアカウント作成から初期設定 まとめ
# はじめに
以下のAWSのアカウント作成から初期設定はあくまで、これからAWSを触っていく人たちを対象にして書いています。書き始めたきっかけとしては身近な友人たちに触ってもらえるために書いています。
記事は、
**アカウント作成、セキュリティ、アカウント設定、監視** と4つに分けて書いてます。# AWSのアカウント作成から初期設定
あくまで最低限の設定ですので、公式ドキュメントを読むことが一番良いと思います。AWSの主流のサービスのドキュメントはほとんど日本語化がされているので1回くらいは目を通すと良いと思います。
[【AWS】AWSのアカウント作成方法 – Qiita](https://qiita.com/Suzuki09/items/88afebdcaacf38752c05)
[【AWS】AWSのアカウント作成後にやるべき初期設定 セキュリティ編 – Qiita](https://qiita.com/Suzuki09/items/157cf07b29a7125afbfa)
[【AWS】AWSのアカウント作成後にやるべき初期設定 アカウント編 – Qiita](ht
ECS Exec を有効化する手順(Fargate/Terraform の場合)
とっくの昔ですが、ECSにECS Exec機能が追加されています。
– デバッグに Amazon ECS Exec を使用する – Amazon Elastic Container Service
– [[アップデート] 実行中のコンテナに乗り込んでコマンドを実行できる「ECS Exec」が公開されました | DevelopersIO](https://dev.classmethod.jp/articles/ecs-exec/)# ECS Execとは?
ECSサービス経由で起動したECSタスクの中でコマンドを実行できる機能です。`docker exec`, `docker-compose exec` と同様です。
なお、単発で実行したECSタスクでは利用できないみたいです。
# ECS Exec を有効化する必要はあるの?
以下に示す通り、ECS Execを有効化するのは難しい作業で